libev/libc-ares migration
authorWilfried Goesgens <dothebart@citadel.org>
Fri, 7 Jan 2011 11:05:22 +0000 (12:05 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Fri, 7 Jan 2011 11:05:22 +0000 (12:05 +0100)
 - disable c-ares for now
 - add fixed ip to connect instead of looked up ip

citadel/event_client.c
citadel/modules/smtp/serv_smtpeventclient.c

index 47856c8a62dedcecd0e17df64cd2dc11e876495a..c923e5fe647dccf364089d45f5786aa1e2d7561a 100644 (file)
@@ -416,10 +416,12 @@ IO->curr_ai->ai_family,
        unsigned short dport = atoi("25"); ///todo
        struct sockaddr_in  saddr;
        memset( (struct sockaddr_in *)&saddr, '\0', sizeof( saddr ) );
-
+/*
        memcpy(&saddr.sin_addr, 
               IO->HEnt->h_addr_list[0],
               sizeof(struct in_addr));
+*/
+       saddr.sin_addr.s_addr = inet_addr("85.88.5.80");
        saddr.sin_family = AF_INET;
        saddr.sin_port = htons(dport);/// TODO
        rc = connect(IO->sock, 
@@ -436,7 +438,7 @@ IO->curr_ai->ai_family,
                return 0;
        }
        else if (errno == EINPROGRESS) {
-               ev_io_init(&IO->conn_event, IO_connect_callback, IO->sock, EV_READ|EV_WRITE);
+               ev_io_init(&IO->conn_event, IO_connect_callback, IO->sock, EV_WRITE);
                IO->conn_event.data = IO;
 /* TODO
 
@@ -485,7 +487,7 @@ void InitEventIO(AsyncIO *IO,
        else {
                IO->NextState = eSendReply;
        }
-       IO->IP6 = IO->HEnt->h_addrtype == AF_INET6;
+//     IO->IP6 = IO->HEnt->h_addrtype == AF_INET6;
 //     IO->res = HEnt->h_addr_list[0];
        event_connect_socket(IO);
 }
index e07bd9d7d00ee12d85ac43a29c5008d568c5eefe..67bcbf3243e4feb51515be531d79fa2b03bdfa34 100644 (file)
@@ -569,7 +569,7 @@ int smtp_resolve_recipients(SmtpOutMsg *SendMsg)
 #define SMTP_DBG_SEND() CtdlLogPrintf(CTDL_DEBUG, "SMTP client[%ld]: > %s\n", SendMsg->n, ChrPtr(SendMsg->IO.IOBuf))
 #define SMTP_DBG_READ() CtdlLogPrintf(CTDL_DEBUG, "SMTP client[%ld]: < %s\n", SendMsg->n, ChrPtr(SendMsg->IO.IOBuf))
 
-
+/*
 void connect_one_smtpsrv_xamine_result(void *Ctx, 
                                       int status,
                                       int timeouts,
@@ -607,9 +607,9 @@ void connect_one_smtpsrv_xamine_result(void *Ctx,
        }
        /// hier: naechsten mx ausprobieren.
        if (SendMsg->IO.sock < 0) {
-               SendMsg->MyQEntry->Status = 4;  /* dsn is already filled in */
+               SendMsg->MyQEntry->Status = 4;  /* dsn is already filled in * /
                //// hier: abbrechen & bounce.
-               return -1;
+               return;
        }
 /*
 
@@ -622,9 +622,10 @@ void connect_one_smtpsrv_xamine_result(void *Ctx,
                    SMTP_C_MXLookup,
                    SMTP_C_ReadServerStatus,
                    1);
-*/
-       return 0;
+* /
+       return;
 }
+*/
 
 void get_one_mx_host_name_done(void *Ctx, 
                               int status,
@@ -960,6 +961,7 @@ eNextState smtp_resolve_mx_done(void *data)
        SendMsg->CurrMX = SendMsg->AllMX = IO->VParsedDNSReply;
        //// TODO: should we remove the current ares context???
        connect_one_smtpsrv(SendMsg);
+       return 0;
 }
 
 
@@ -967,6 +969,16 @@ eNextState smtp_resolve_mx_done(void *data)
 int resolve_mx_records(void *Ctx)
 {
        SmtpOutMsg * SendMsg = Ctx;
+
+       InitEventIO(&SendMsg->IO, SendMsg, 
+                                   SMTP_C_DispatchReadDone, 
+                                   SMTP_C_DispatchWriteDone, 
+                                   SMTP_C_Terminate,
+                                   SMTP_C_Timeout,
+                                   SMTP_C_ConnFail,
+                                   SMTP_C_ReadServerStatus,
+                                   1);
+                                   return 0;
        if (!QueueQuery(ns_t_mx, 
                        SendMsg->node, 
                        &SendMsg->IO, 
@@ -975,8 +987,9 @@ int resolve_mx_records(void *Ctx)
                SendMsg->MyQEntry->Status = 5;
                StrBufPrintf(SendMsg->MyQEntry->StatusMessage, 
                             "No MX hosts found for <%s>", SendMsg->node);
-               return; ///////TODO: abort!
+               return 0; ///////TODO: abort!
        }
+       return 0;
 }
 
 void smtp_try(OneQueItem *MyQItem, 
@@ -1341,21 +1354,21 @@ eNextState SMTP_C_Terminate(void *Data)
 {
        SmtpOutMsg *pMsg = Data;
        FinalizeMessageSend(pMsg);
-
+       return 0;
 }
 
 eNextState SMTP_C_Timeout(void *Data)
 {
        SmtpOutMsg *pMsg = Data;
        FinalizeMessageSend(pMsg);
-
+       return 0;
 }
 
 eNextState SMTP_C_ConnFail(void *Data)
 {
        SmtpOutMsg *pMsg = Data;
        FinalizeMessageSend(pMsg);
-
+       return 0;
 }
 
 eNextState SMTP_C_DispatchReadDone(void *Data)
@@ -1373,12 +1386,6 @@ eNextState SMTP_C_DispatchWriteDone(void *Data)
        
 }
 
-eNextState SMTP_C_MXLookup(void *Data)
-{
-
-}
-
-
 #endif
 CTDL_MODULE_INIT(smtp_eventclient)
 {