Index: fusl/src/network/inet_legacy.c |
diff --git a/fusl/src/network/inet_legacy.c b/fusl/src/network/inet_legacy.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..621b47b05086d98843a71b6b2a4589ef9238fb17 |
--- /dev/null |
+++ b/fusl/src/network/inet_legacy.c |
@@ -0,0 +1,32 @@ |
+#include <sys/socket.h> |
+#include <netinet/in.h> |
+#include <arpa/inet.h> |
+ |
+in_addr_t inet_network(const char *p) |
+{ |
+ return ntohl(inet_addr(p)); |
+} |
+ |
+struct in_addr inet_makeaddr(in_addr_t n, in_addr_t h) |
+{ |
+ if (n < 256) h |= n<<24; |
+ else if (n < 65536) h |= n<<16; |
+ else h |= n<<8; |
+ return (struct in_addr){ h }; |
+} |
+ |
+in_addr_t inet_lnaof(struct in_addr in) |
+{ |
+ uint32_t h = in.s_addr; |
+ if (h>>24 < 128) return h & 0xffffff; |
+ if (h>>24 < 192) return h & 0xffff; |
+ return h & 0xff; |
+} |
+ |
+in_addr_t inet_netof(struct in_addr in) |
+{ |
+ uint32_t h = in.s_addr; |
+ if (h>>24 < 128) return h >> 24; |
+ if (h>>24 < 192) return h >> 16; |
+ return h >> 8; |
+} |