X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FIOHandler%2FIODNSLookup.h;h=61966d83363b54d502cf0b43455e5a3a04087b23;hb=acc7f60740ab12e2410fd3187fcb9a27995c0638;hp=72ac5dc9110dcc27b499b7dbf212515d9bb1049b;hpb=ff504c46f70bde2d66a42fb814d91008891742e6;p=NextIRCd.git diff --git a/src/IOHandler/IODNSLookup.h b/src/IOHandler/IODNSLookup.h index 72ac5dc..61966d8 100644 --- a/src/IOHandler/IODNSLookup.h +++ b/src/IOHandler/IODNSLookup.h @@ -45,10 +45,10 @@ extern struct _IODNSQuery *iodnsquery_last; #define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE #endif #define IOTHREAD_MUTEX_INIT(var) { \ - pthread_mutexattr_t mutex_attr; \ - pthread_mutexattr_init(&mutex_attr);\ - pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_VAL);\ - pthread_mutex_init(&var, &mutex_attr); \ + pthread_mutexattr_t mutex_attr; \ + pthread_mutexattr_init(&mutex_attr);\ + pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_VAL);\ + pthread_mutex_init(&var, &mutex_attr); \ } #define IOSYNCHRONIZE(var) pthread_mutex_lock(&var) #define IODESYNCHRONIZE(var) pthread_mutex_unlock(&var) @@ -71,7 +71,7 @@ struct _IODNSQuery { unsigned int flags : 8; unsigned int type : 8; - union { + union { struct IODNSAddress addr; char *host; } request; @@ -84,12 +84,12 @@ struct _IODNSQuery { }; struct IODNSEngine { - const char *name; - int (*init)(); + const char *name; + int (*init)(); void (*stop)(); - void (*add)(struct _IODNSQuery *query); - void (*remove)(struct _IODNSQuery *query); - void (*loop)(); + void (*add)(struct _IODNSQuery *query); + void (*remove)(struct _IODNSQuery *query); + void (*loop)(); void (*socket_callback)(struct _IOSocket *iosock, int readable, int writeable); }; @@ -115,8 +115,8 @@ struct sockaddr; typedef IODNS_CALLBACK(iodns_callback); enum IODNSEventType { - IODNSEVENT_SUCCESS, - IODNSEVENT_FAILED + IODNSEVENT_SUCCESS, + IODNSEVENT_FAILED }; #define IODNS_RECORD_A 0x01 @@ -129,29 +129,31 @@ enum IODNSEventType { struct IODNSQuery { void *query; - iodns_callback *callback; - void *data; + iodns_callback *callback; + void *data; }; struct IODNSResult { - unsigned int type : 8; - union { + unsigned int type : 8; + union { struct IODNSAddress addr; char *host; } result; - struct IODNSResult *next; + struct IODNSResult *next; }; struct IODNSEvent { - enum IODNSEventType type; - struct IODNSQuery *query; + enum IODNSEventType type; + struct IODNSQuery *query; struct IODNSResult *result; }; -struct IODNSQuery *iodns_getaddrinfo(char *hostname, int records, iodns_callback *callback); -struct IODNSQuery *iodns_getnameinfo(const struct sockaddr *addr, size_t addrlen, iodns_callback *callback); +struct IODNSQuery *iodns_getaddrinfo(char *hostname, int records, iodns_callback *callback, void *arg); +struct IODNSQuery *iodns_getnameinfo(const struct sockaddr *addr, size_t addrlen, iodns_callback *callback, void *arg); void iodns_abort(struct IODNSQuery *query); +int iodns_print_address(struct IODNSAddress *addr, int ipv6, char *buffer, int length); + void iodns_free_result(struct IODNSResult *result); #endif