]> code.citadel.org Git - citadel.git/blobdiff - citadel/event_client.h
Fix memleaks
[citadel.git] / citadel / event_client.h
index dd334f9633311fd50c70435f7eb0eee1630843f4..7210fcb41f7f95682b9b6bfe85c461ea5f6dccb4 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef __EVENT_CLIENT_H__
 #define __EVENT_CLIENT_H__
 #define EV_COMPAT3 0
+#include "sysconfig.h"
 #include <ev.h>
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -120,6 +121,10 @@ struct AsyncIO {
        /* DNS Related */
        ev_io dns_recv_event, 
                dns_send_event;
+       ev_timer dns_timeout;           /* timeout while requesting ips */
+#ifdef DEBUG_CARES
+       short int DnsSourcePort;
+#endif
        struct ares_options DNSOptions;
        ares_channel DNSChannel;
        DNSQueryParts *DNSQuery;
@@ -130,6 +135,7 @@ struct AsyncIO {
        ReadAsyncMsg *ReadMsg;
        struct CtdlMessage *AsyncMsg;
        struct recptypes *AsyncRcp;
+
        /* Custom data; its expected to contain  AsyncIO so we can save malloc()s... */
        void *Data;        /* application specific data */
        void *CitContext;  /* Citadel Session context... */
@@ -140,8 +146,12 @@ typedef struct _IOAddHandler {
        IO_CallBack EvAttch;
 }IOAddHandler; 
 
-#define EV_syslog(LEVEL, FORMAT, ...) syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID, __VA_ARGS__)
-#define EVM_syslog(LEVEL, FORMAT) syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID)
+#define CCID ((CitContext*)IO->CitContext)->cs_pid
+#define EV_syslog(LEVEL, FORMAT, ...) syslog(LEVEL, "IO[%ld]CC[%d]" FORMAT, IO->ID, CCID, __VA_ARGS__)
+#define EVM_syslog(LEVEL, FORMAT) syslog(LEVEL, "IO[%ld]CC[%d]" FORMAT, IO->ID, CCID)
+
+#define EVNC_syslog(LEVEL, FORMAT, ...) syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID, __VA_ARGS__)
+#define EVNCM_syslog(LEVEL, FORMAT) syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID)
 
 void FreeAsyncIOContents(AsyncIO *IO);
 
@@ -149,7 +159,6 @@ eNextState NextDBOperation(AsyncIO *IO, IO_CallBack CB);
 eNextState QueueDBOperation(AsyncIO *IO, IO_CallBack CB);
 eNextState QueueEventContext(AsyncIO *IO, IO_CallBack CB);
 eNextState QueueCurlContext(AsyncIO *IO);
-int ShutDownEventQueue(void);
 
 eNextState InitEventIO(AsyncIO *IO, 
                       void *pData,