sockaddr's now require length (K. Sklower);
[unix-history] / usr / src / lib / libc / net / inet_makeaddr.c
index b77fc81..e510b69 100644 (file)
@@ -1,24 +1,45 @@
-/*     inet_makeaddr.c 4.1     82/10/07        */
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char sccsid[] = "@(#)inet_makeaddr.c    5.4 (Berkeley) %G%";
+#endif /* LIBC_SCCS and not lint */
 
 #include <sys/types.h>
 
 #include <sys/types.h>
-#include <net/in.h>
+#include <netinet/in.h>
 
 /*
  * Formulate an Internet address from network + host.  Used in
  * building addresses stored in the ifnet structure.
  */
 struct in_addr
 
 /*
  * Formulate an Internet address from network + host.  Used in
  * building addresses stored in the ifnet structure.
  */
 struct in_addr
-if_makeaddr(net, host)
-       int net, host;
+inet_makeaddr(net, host)
+       u_long net, host;
 {
        u_long addr;
 
        if (net < 128)
 {
        u_long addr;
 
        if (net < 128)
-               addr = (net << 24) | host;
+               addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
        else if (net < 65536)
        else if (net < 65536)
-               addr = (net << 16) | host;
+               addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
+       else if (net < 16777216L)
+               addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
        else
        else
-               addr = (net << 8) | host;
+               addr = net | host;
        addr = htonl(addr);
        return (*(struct in_addr *)&addr);
 }
        addr = htonl(addr);
        return (*(struct in_addr *)&addr);
 }