Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / base / services / dhcpcsvc / dhcp / compat.c
diff --git a/base/services/dhcpcsvc/dhcp/compat.c b/base/services/dhcpcsvc/dhcp/compat.c
new file mode 100644 (file)
index 0000000..31aec07
--- /dev/null
@@ -0,0 +1,65 @@
+#include <rosdhcp.h>
+
+size_t strlcpy(char *d, const char *s, size_t bufsize)
+{
+        size_t len = strlen(s);
+        size_t ret = len;
+        if (bufsize > 0) {
+                if (len >= bufsize)
+                        len = bufsize-1;
+                memcpy(d, s, len);
+                d[len] = 0;
+        }
+        return ret;
+}
+
+// not really random :(
+u_int32_t arc4random()
+{
+       static int did_srand = 0;
+       u_int32_t ret;
+
+       if (!did_srand) {
+               srand(0);
+               did_srand = 1;
+       }
+
+       ret = rand() << 10 ^ rand();
+       return ret;
+}
+
+
+int inet_aton(const char *cp, struct in_addr *inp)
+/* inet_addr code from ROS, slightly modified. */
+{
+       ULONG Octets[4] = {0,0,0,0};
+       ULONG i = 0;
+
+       if(!cp)
+               return 0;
+
+       while(*cp)
+       {
+               CHAR c = *cp;
+               cp++;
+
+               if(c == '.')
+               {
+                       i++;
+                       continue;
+               }
+
+               if(c < '0' || c > '9')
+                       return 0;
+
+               Octets[i] *= 10;
+               Octets[i] += (c - '0');
+
+               if(Octets[i] > 255)
+                       return 0;
+               }
+
+       inp->S_un.S_addr = (Octets[3] << 24) + (Octets[2] << 16) + (Octets[1] << 8) + Octets[0];
+       return 1;
+}
+