Usermode/libnet - Starting work on DNS resolver
[tpg/acess2.git] / Usermode / Libraries / libnet.so_src / include / dns.h
diff --git a/Usermode/Libraries/libnet.so_src/include/dns.h b/Usermode/Libraries/libnet.so_src/include/dns.h
new file mode 100644 (file)
index 0000000..1f2dd61
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ */
+#ifndef _DNS_H_
+#define _DNS_H_
+
+enum eTypes
+{
+       TYPE_A = 1,
+       TYPE_NS = 2,
+       TYPE_CNAME = 5,
+       TYPE_SOA = 6,
+       TYPE_NULL = 10,
+       TYPE_PTR = 12,
+       TYPE_HINFO = 13,
+       TYPE_MX = 15,
+       TYPE_TXT = 16,
+       QTYPE_STAR = 255,
+};
+
+enum eClass
+{
+       CLASS_IN,
+       CLASS_CH,       // "Chaos"
+       CLASS_STAR = 255,
+};
+
+/**
+ * \brief Handler for a DNS record obtained by DNS_Query
+ * \param info Value passed as the last argument to DNS_Query
+ * \param name NUL-terminated name associated with the returned record
+ * \param type Record type (may not be equal to requested)
+ * \param class        Record class (may not be equal to requested)
+ * \param rdlength     Length of data pointed to by 'rdata'
+ * \param rdata        Record data
+ */
+typedef void   handle_record_t(void *info, const char *name, enum eTypes type, enum eClass class, unsigned int ttl, size_t rdlength, const void *rdata);
+
+int DNS_Query(int ServerAType, const void *ServerAddr, const char *name, enum eTypes type, enum eClass class, handle_record_t* handle_record, void *info);
+
+#endif
+

UCC git Repository :: git.ucc.asn.au