Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / sdk / lib / dnslib / addr.c
diff --git a/sdk/lib/dnslib/addr.c b/sdk/lib/dnslib/addr.c
new file mode 100644 (file)
index 0000000..b91c532
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS DNS Shared Library
+ * FILE:        lib/dnslib/addr.c
+ * PURPOSE:     Contains the Address Family Information Tables
+ */
+
+/* INCLUDES ******************************************************************/
+#include "precomp.h"
+
+/* DATA **********************************************************************/
+
+DNS_FAMILY_INFO AddrFamilyTable[3] =
+{
+    {
+        AF_INET,
+        DNS_TYPE_A,
+        sizeof(IP4_ADDRESS),
+        sizeof(SOCKADDR_IN),
+        FIELD_OFFSET(SOCKADDR_IN, sin_addr)
+    },
+    {
+        AF_INET6,
+        DNS_TYPE_AAAA,
+        sizeof(IP6_ADDRESS),
+        sizeof(SOCKADDR_IN6),
+        FIELD_OFFSET(SOCKADDR_IN6, sin6_addr)
+    },
+    {
+        AF_ATM,
+        DNS_TYPE_ATMA,
+        sizeof(ATM_ADDRESS),
+        sizeof(SOCKADDR_ATM),
+        FIELD_OFFSET(SOCKADDR_ATM, satm_number)
+    }
+};
+
+/* FUNCTIONS *****************************************************************/
+
+PDNS_FAMILY_INFO
+WINAPI
+FamilyInfo_GetForFamily(IN WORD AddressFamily)
+{
+    /* Check which family this is */
+    switch (AddressFamily)
+    {
+        case AF_INET:
+            /* Return IPv4 Family Info */
+            return &AddrFamilyTable[0];
+        
+        case AF_INET6:
+            /* Return IPv6 Family Info */
+            return &AddrFamilyTable[1];
+        
+        case AF_ATM:
+            /* Return ATM Family Info */
+            return &AddrFamilyTable[2];
+        
+        default:
+            /* Invalid family */
+            return NULL;
+    }
+
+}
+