]> code.citadel.org Git - citadel.git/blobdiff - citadel/event_client.h
libev migration; relaying implementation
[citadel.git] / citadel / event_client.h
index 208a716616a7122ca8340490d2fa2511ffcc9d15..9abda5329aa9f27d927d3fcdd223db25ce8e37a6 100644 (file)
@@ -15,7 +15,6 @@ typedef enum _eNextState {
        eAbort
 }eNextState;
 
-typedef int (*EventContextAttach)(void *Data);
 typedef eNextState (*IO_CallBack)(AsyncIO *IO);
 typedef eReadState (*IO_LineReaderCallback)(AsyncIO *IO);
 typedef void (*ParseDNSAnswerCb)(AsyncIO*, unsigned char*, int);
@@ -32,6 +31,8 @@ struct AsyncIO {
        /* connection related */
        int IP6;
        struct hostent *HEnt;
+       struct sockaddr_in6 Addr;
+
        int sock;
        unsigned short dport;
                eNextState NextState;
@@ -77,28 +78,25 @@ struct AsyncIO {
 };
 
 typedef struct _IOAddHandler {
-       void *Ctx;
-       EventContextAttach EvAttch;
+       AsyncIO *IO;
+       IO_CallBack EvAttch;
 }IOAddHandler; 
 
 void FreeAsyncIOContents(AsyncIO *IO);
 
-int QueueEventContext(void *Ctx, AsyncIO *IO, EventContextAttach CB);
+int QueueEventContext(AsyncIO *IO, IO_CallBack CB);
 int ShutDownEventQueue(void);
 
-void InitEventIO(AsyncIO *IO, 
-                void *pData, 
-                IO_CallBack ReadDone, 
-                IO_CallBack SendDone, 
-                IO_CallBack Terminate, 
-                IO_CallBack Timeout, 
-                IO_CallBack ConnFail, 
-                IO_LineReaderCallback LineReader,
-                double conn_timeout, double first_rw_timeout,
-                int ReadFirst);
+eNextState InitEventIO(AsyncIO *IO, 
+                      void *pData, 
+                      double conn_timeout, 
+                      double first_rw_timeout,
+                      int ReadFirst);
 
 int QueueQuery(ns_type Type, char *name, AsyncIO *IO, IO_CallBack PostDNS);
 
 void StopClient(AsyncIO *IO);
 
 void SetNextTimeout(AsyncIO *IO, double timeout);
+
+void InitC_ares_dns(AsyncIO *IO);