#define IODNSFLAG_PARENT_SOCKET 0x08
struct IODNSResult;
+struct _IOSocket;
struct _IODNSQuery {
void *query;
void (*add)(struct _IODNSQuery *query);
void (*remove)(struct _IODNSQuery *query);
void (*loop)();
+ void (*socket_callback)(struct _IOSocket *iosock, int readable, int writeable);
};
void _init_iodns();
/* call only from engines! */
enum IODNSEventType;
void _free_dnsquery(struct _IODNSQuery *query);
+void iodns_socket_callback(struct _IOSocket *iosock, int wantread, int wantwrite);
void iodns_event_callback(struct _IODNSQuery *query, enum IODNSEventType state);
-
void iodns_poll();
#endif
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);
void iodns_free_result(struct IODNSResult *result);