126818Skarels /* 226818Skarels * Copyright (c) 1983 Regents of the University of California. 333676Sbostic * All rights reserved. 433676Sbostic * 5*42626Sbostic * %sccs.include.redist.c% 626818Skarels */ 78359Ssam 826818Skarels #if defined(LIBC_SCCS) && !defined(lint) 9*42626Sbostic static char sccsid[] = "@(#)inet_makeaddr.c 5.5 (Berkeley) 06/01/90"; 1033676Sbostic #endif /* LIBC_SCCS and not lint */ 1126818Skarels 128359Ssam #include <sys/types.h> 139192Ssam #include <netinet/in.h> 148359Ssam 158359Ssam /* 168359Ssam * Formulate an Internet address from network + host. Used in 178359Ssam * building addresses stored in the ifnet structure. 188359Ssam */ 198359Ssam struct in_addr 208370Ssam inet_makeaddr(net, host) 2136232Ssklower u_long net, host; 228359Ssam { 238359Ssam u_long addr; 248359Ssam 258359Ssam if (net < 128) 2621762Skarels addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST); 278359Ssam else if (net < 65536) 2821762Skarels addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST); 2936232Ssklower else if (net < 16777216L) 3036232Ssklower addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST); 318359Ssam else 3236232Ssklower addr = net | host; 338359Ssam addr = htonl(addr); 348359Ssam return (*(struct in_addr *)&addr); 358359Ssam } 36