/*
+ * Acess2 Networking Toolkit
+ * By John Hodge (thePowersGang)
+ *
+ * dns.h
+ * - DNS Protocol Interface
*/
#ifndef _DNS_H_
#define _DNS_H_
+#include <stddef.h>
+
enum eTypes
{
TYPE_A = 1,
enum eClass
{
- CLASS_IN,
- CLASS_CH, // "Chaos"
- CLASS_STAR = 255,
+ CLASS_IN = 1,
+ CLASS_CH = 3, // "Chaos"
+ QCLASS_STAR = 255,
};
/**
* \param class Record class (may not be equal to requested)
* \param rdlength Length of data pointed to by 'rdata'
* \param rdata Record data
+ * \return Non-zero terminates parsing
*/
-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);
+typedef int 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);