/*
+ * $Id: at_control.c,v 1.2 2001-06-29 14:14:47 rufustfirefly Exp $
+ *
* Copyright (c) 1990,1991 Regents of The University of Michigan.
* All Rights Reserved.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif /* HAVE_CONFIG_H */
+
#include <sys/param.h>
#include <sys/systm.h>
#ifdef ibm032
#include <sys/dir.h>
-#endif ibm032
+#endif /* ibm032 */
#include <sys/user.h>
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/mbuf.h>
#ifndef _IBMR2
#include <sys/kernel.h>
-#endif _IBMR2
+#endif /* ! _IBMR2 */
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <net/if.h>
#include <netinet/if_ether.h>
#ifdef _IBMR2
#include <net/spl.h>
-#endif _IBMR2
+#endif /* _IBMR2 */
#include "at.h"
#include "at_var.h"
(a)->sat_family == (b)->sat_family && \
(a)->sat_addr.s_net == (b)->sat_addr.s_net && \
(a)->sat_addr.s_node == (b)->sat_addr.s_node )
-#else BSD4_4
+#else /* BSD4_4 */
atalk_hash( sat, hp )
struct sockaddr_at *sat;
struct afhash *hp;
}
return( sat1->sat_addr.s_net == sat2->sat_addr.s_net );
}
-#endif BSD4_4
+#endif /* BSD4_4 */
at_control( cmd, data, ifp )
int cmd;
#ifdef BSD4_4
struct at_aliasreq *ifra = (struct at_aliasreq *)data;
struct at_ifaddr *aa0;
-#endif BSD4_4
+#endif /* BSD4_4 */
struct at_ifaddr *aa = 0;
struct mbuf *m;
struct ifaddr *ifa;
return( EADDRNOTAVAIL );
}
/*FALLTHROUGH*/
-#endif BSD4_4
+#endif /* BSD4_4 */
case SIOCSIFADDR:
#ifdef BSD4_4
if ( suser( u.u_cred, &u.u_acflag )) {
return( EPERM );
}
-#else BSD4_4
+#else /* BSD4_4 */
if ( !suser()) {
return( EPERM );
}
-#endif BSD4_4
+#endif /* BSD4_4 */
sat = satosat( &ifr->ifr_addr );
nr = (struct netrange *)sat->sat_zero;
aa->aa_ifa.ifa_addr = (struct sockaddr *)&aa->aa_addr;
aa->aa_ifa.ifa_dstaddr = (struct sockaddr *)&aa->aa_addr;
aa->aa_ifa.ifa_netmask = (struct sockaddr *)&aa->aa_netmask;
-#endif BSD4_4
+#endif /* BSD4_4 */
/*
* Set/clear the phase 2 bit.
case SIOCGIFADDR:
#ifdef BSD4_4
*(struct sockaddr_at *)&ifr->ifr_addr = aa->aa_addr;
-#else BSD4_4
+#else /* BSD4_4 */
ifr->ifr_addr = aa->aa_addr;
-#endif BSD4_4
+#endif /* BSD4_4 */
break;
case SIOCSIFADDR:
}
m_free( dtom( aa0 ));
break;
-#endif BSD4_4
+#endif /* BSD4_4 */
default:
if ( ifp == 0 || ifp->if_ioctl == 0 )
struct sockaddr_at netsat;
int error;
u_short net;
-#endif BSD4_4
+#endif /* ! BSD4_4 */
if ( aa->aa_flags & AFA_ROUTE ) {
#ifdef BSD4_4
return( error );
}
aa->aa_ifa.ifa_flags &= ~IFA_ROUTE;
-#else BSD4_4
+#else /* BSD4_4 */
if ( ifp->if_flags & IFF_LOOPBACK ) {
rtinit( &aa->aa_addr, &aa->aa_addr, SIOCDELRT, RTF_HOST );
} else {
}
}
}
-#endif BSD4_4
+#endif /* BSD4_4 */
aa->aa_flags &= ~AFA_ROUTE;
}
return( 0 );
struct netrange nr, onr;
#ifdef BSD4_4
struct sockaddr_at oldaddr;
-#else BSD4_4
+#else /* BSD4_4 */
struct sockaddr oldaddr;
-#endif BSD4_4
+#endif /* BSD4_4 */
struct sockaddr_at netaddr;
int s = splimp(), error = 0, i, j, netinc, nodeinc, nnets;
u_short net;
if ( ifp->if_flags & IFF_LOOPBACK ) {
#ifdef BSD4_4
AA_SAT( aa )->sat_len = sat->sat_len;
-#endif BSD4_4
+#endif /* BSD4_4 */
AA_SAT( aa )->sat_family = AF_APPLETALK;
AA_SAT( aa )->sat_addr.s_net = sat->sat_addr.s_net;
AA_SAT( aa )->sat_addr.s_node = sat->sat_addr.s_node;
aa->aa_netmask.sat_family = AF_APPLETALK;
aa->aa_netmask.sat_addr.s_net = 0xffff;
aa->aa_netmask.sat_addr.s_node = 0;
-#endif BSD4_4
+#endif /* BSD4_4 */
if ( ifp->if_flags & IFF_LOOPBACK ) {
#ifndef BSD4_4
rtinit( &aa->aa_addr, &aa->aa_addr, (int)SIOCADDRT,
RTF_HOST|RTF_UP );
-#else BSD4_4
+#else /* ! BSD4_4 */
error = rtinit( &(aa->aa_ifa), (int)RTM_ADD, RTF_HOST|RTF_UP );
-#endif BSD4_4
+#endif /* ! BSD4_4 */
} else {
#ifndef BSD4_4
/*
}
}
}
-#else BSD4_4
+#else /* ! BSD4_4 */
error = rtinit( &(aa->aa_ifa), (int)RTM_ADD, RTF_UP );
-#endif BSD4_4
+#endif /* ! BSD4_4 */
}
if ( error ) {
aa->aa_addr = oldaddr;
#ifdef BSD4_4
aa->aa_ifa.ifa_flags |= IFA_ROUTE;
-#endif BSD4_4
+#endif /* BSD4_4 */
aa->aa_flags |= AFA_ROUTE;
splx( s );
return( 0 );