126818Skarels /* 2*61150Sbostic * Copyright (c) 1983, 1993 3*61150Sbostic * The Regents of the University of California. All rights reserved. 433676Sbostic * 542626Sbostic * %sccs.include.redist.c% 626818Skarels */ 78359Ssam 826818Skarels #if defined(LIBC_SCCS) && !defined(lint) 9*61150Sbostic static char sccsid[] = "@(#)inet_makeaddr.c 8.1 (Berkeley) 06/04/93"; 1033676Sbostic #endif /* LIBC_SCCS and not lint */ 1126818Skarels 1246604Sbostic #include <sys/param.h> 139192Ssam #include <netinet/in.h> 1446604Sbostic #include <arpa/inet.h> 158359Ssam 168359Ssam /* 178359Ssam * Formulate an Internet address from network + host. Used in 188359Ssam * building addresses stored in the ifnet structure. 198359Ssam */ 208359Ssam struct in_addr inet_makeaddr(net,host)218370Ssaminet_makeaddr(net, host) 2236232Ssklower u_long net, host; 238359Ssam { 248359Ssam u_long addr; 258359Ssam 268359Ssam if (net < 128) 2721762Skarels addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST); 288359Ssam else if (net < 65536) 2921762Skarels addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST); 3036232Ssklower else if (net < 16777216L) 3136232Ssklower addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST); 328359Ssam else 3336232Ssklower addr = net | host; 348359Ssam addr = htonl(addr); 358359Ssam return (*(struct in_addr *)&addr); 368359Ssam } 37