126818Skarels /* 226818Skarels * Copyright (c) 1983 Regents of the University of California. 333676Sbostic * All rights reserved. 433676Sbostic * 542626Sbostic * %sccs.include.redist.c% 626818Skarels */ 78359Ssam 826818Skarels #if defined(LIBC_SCCS) && !defined(lint) 9*46604Sbostic static char sccsid[] = "@(#)inet_makeaddr.c 5.6 (Berkeley) 02/24/91"; 1033676Sbostic #endif /* LIBC_SCCS and not lint */ 1126818Skarels 12*46604Sbostic #include <sys/param.h> 139192Ssam #include <netinet/in.h> 14*46604Sbostic #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 218370Ssam inet_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