#include "../h/protosw.h"
#include "../h/socketvar.h"
#include "../netinet/in.h"
#include "../netinet/in_systm.h"
#include "../net/route.h"
register struct sockaddr_in
*sin
;
hp
->afh_nethash
= in_netof(sin
->sin_addr
);
hp
->afh_hosthash
= ntohl(sin
->sin_addr
.s_addr
);
inet_netmatch(sin1
, sin2
)
struct sockaddr_in
*sin1
, *sin2
;
return (in_netof(sin1
->sin_addr
) == in_netof(sin2
->sin_addr
));
* Formulate an Internet address from network + host. Used in
* building addresses stored in the ifnet structure.
addr
= (net
<< IN_CLASSA_NSHIFT
) | host
;
addr
= (net
<< IN_CLASSB_NSHIFT
) | host
;
addr
= (net
<< IN_CLASSC_NSHIFT
) | host
;
return (*(struct in_addr
*)&addr
);
* Return the network number from an internet address.
register u_long i
= ntohl(in
.s_addr
);
return (((i
)&IN_CLASSA_NET
) >> IN_CLASSA_NSHIFT
);
return (((i
)&IN_CLASSB_NET
) >> IN_CLASSB_NSHIFT
);
return (((i
)&IN_CLASSC_NET
) >> IN_CLASSC_NSHIFT
);
* Return the host portion of an internet address.
register u_long i
= ntohl(in
.s_addr
);
return ((i
)&IN_CLASSA_HOST
);
return ((i
)&IN_CLASSB_HOST
);
return ((i
)&IN_CLASSC_HOST
);
* Initialize an interface's routing
* table entry according to the network.
register struct ifnet
*ifp
;
if (ifp
->if_flags
& IFF_ROUTE
)
bzero((caddr_t
)&sin
, sizeof (sin
));
sin
.sin_family
= AF_INET
;
sin
.sin_addr
= if_makeaddr(ifp
->if_net
, INADDR_ANY
);
rtinit((struct sockaddr
*)&sin
, &ifp
->if_addr
, flags
);