_free_dnsquery(query);
}
+void iodns_socket_callback(struct _IOSocket *iosock, int wantread, int wantwrite) {
+ if(dnsengine && dnsengine->socket_callback)
+ dnsengine->socket_callback(iosock, wantread, wantwrite);
+}
+
void iodns_event_callback(struct _IODNSQuery *query, enum IODNSEventType state) {
if((query->flags & IODNSFLAG_PARENT_PUBLIC)) {
struct IODNSQuery *descriptor = query->parent;
/* public functions */
-struct IODNSQuery *iodns_getaddrinfo(char *hostname, int records, iodns_callback *callback) {
+struct IODNSQuery *iodns_getaddrinfo(char *hostname, int records, iodns_callback *callback, void *arg) {
if(!(records & IODNS_FORWARD) || !hostname || !callback)
return NULL;
query->parent = descriptor;
query->flags |= IODNSFLAG_PARENT_PUBLIC;
descriptor->query = query;
+ descriptor->data = arg;
query->request.host = strdup(hostname);
query->type = (records & IODNS_FORWARD);
return descriptor;
}
-struct IODNSQuery *iodns_getnameinfo(const struct sockaddr *addr, size_t addrlen, iodns_callback *callback) {
+struct IODNSQuery *iodns_getnameinfo(const struct sockaddr *addr, size_t addrlen, iodns_callback *callback, void *arg) {
if(!addr || !callback)
return NULL;
query->parent = descriptor;
query->flags |= IODNSFLAG_PARENT_PUBLIC;
descriptor->query = query;
+ descriptor->data = arg;
query->type = IODNS_RECORD_PTR;
query->request.addr.addresslen = addrlen;