aboutsummaryrefslogtreecommitdiff
path: root/ares/ares_private.h
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2006-05-03 06:11:44 +0000
committerDaniel Stenberg <daniel@haxx.se>2006-05-03 06:11:44 +0000
commitdd06c60ada039faafd937a136e3dc7ff9c41159a (patch)
tree5e5337faa1571a343b4c643da651ca817afc7802 /ares/ares_private.h
parent6ca627ae742816cfca67d7e2ad3b59c269e5651d (diff)
Nick Mathewson added the ARES_OPT_SOCK_STATE_CB option that when set makes
c-ares call a callback on socket state changes. A better way than the ares_getsock() to get full control over the socket state.
Diffstat (limited to 'ares/ares_private.h')
-rw-r--r--ares/ares_private.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/ares/ares_private.h b/ares/ares_private.h
index df51266dc..8d5af0817 100644
--- a/ares/ares_private.h
+++ b/ares/ares_private.h
@@ -176,13 +176,22 @@ struct ares_channeldata {
/* Active queries */
struct query *queries;
+
+ ares_sock_state_cb sock_state_cb;
+ void *sock_state_cb_data;
};
void ares__send_query(ares_channel channel, struct query *query, time_t now);
-void ares__close_sockets(struct server_state *server);
+void ares__close_sockets(ares_channel channel, struct server_state *server);
int ares__get_hostent(FILE *fp, int family, struct hostent **host);
int ares__read_line(FILE *fp, char **buf, int *bufsize);
+#define SOCK_STATE_CALLBACK(c, s, r, w) \
+ do { \
+ if ((c)->sock_state_cb) \
+ (c)->sock_state_cb((c)->sock_state_cb_data, (s), (r), (w)); \
+ } while (0)
+
#ifdef CURLDEBUG
/* This is low-level hard-hacking memory leak tracking and similar. Using the
libcurl lowlevel code from within library is ugly and only works when