rename InitEventIO to EvConnectSock, since this suits better what this function does...
[citadel.git] / citadel / modules / pop3client / serv_pop3client.c
index 8bd39899c5037f5ff31a5791e776fb68f755ddca..8a0d23c38f6c64537d9d2f44573082169509a43a 100644 (file)
@@ -165,8 +165,8 @@ eNextState FinalizePOP3AggrRun(AsyncIO *IO)
        It = GetNewHashPos(POP3FetchUrls, 0);
        pthread_mutex_lock(&POP3QueueMutex);
        {
-               GetHashPosFromKey(POP3FetchUrls, SKEY(cptr->Url), It);
-               DeleteEntryFromHash(POP3FetchUrls, It);
+               if (GetHashPosFromKey(POP3FetchUrls, SKEY(cptr->Url), It))
+                       DeleteEntryFromHash(POP3FetchUrls, It);
        }
        pthread_mutex_unlock(&POP3QueueMutex);
        DeleteHashPos(&It);
@@ -766,10 +766,10 @@ eNextState pop3_connect_ip(AsyncIO *IO)
 
        /////// SetConnectStatus(IO);
 
-       return InitEventIO(IO, cpptr, 
-                          POP3_C_ConnTimeout, 
-                          POP3_C_ReadTimeouts[0],
-                          1);
+       return EvConnectSock(IO, cpptr, 
+                            POP3_C_ConnTimeout, 
+                            POP3_C_ReadTimeouts[0],
+                            1);
 }
 
 eNextState pop3_get_one_host_ip_done(AsyncIO *IO)
@@ -852,7 +852,7 @@ int pop3_do_fetching(pop3aggr *cpptr)
        cpptr->IO.Terminate     = POP3_C_Terminate;
        cpptr->IO.LineReader    = POP3_C_ReadServerStatus;
        cpptr->IO.ConnFail      = POP3_C_ConnFail;
-       cpptr->IO.DNSFail       = POP3_C_DNSFail;
+       cpptr->IO.DNS.Fail      = POP3_C_DNSFail;
        cpptr->IO.Timeout       = POP3_C_Timeout;
        cpptr->IO.ShutdownAbort = POP3_C_Shutdown;
        
@@ -869,6 +869,9 @@ int pop3_do_fetching(pop3aggr *cpptr)
        SubC = CloneContext (&pop3_client_CC);
        SubC->session_specific_data = (char*) cpptr;
        cpptr->IO.CitContext = SubC;
+       safestrncpy(SubC->cs_host, 
+                   ChrPtr(cpptr->Url),
+                   sizeof(SubC->cs_host)); 
 
        if (cpptr->IO.ConnectMe->IsIP) {
                QueueEventContext(&cpptr->IO,
@@ -1046,10 +1049,10 @@ void pop3client_scan_room(struct ctdlroom *qrbuf, void *data)
        FreeStrBuf(&CfgData);
 }
 
+static int doing_pop3client = 0;
 
 void pop3client_scan(void) {
        static time_t last_run = 0L;
-       static int doing_pop3client = 0;
 ///    struct pop3aggr *pptr;
        time_t fastest_scan;
        HashPos *it;
@@ -1114,7 +1117,8 @@ void pop3client_scan(void) {
 void pop3_cleanup(void)
 {
        /* citthread_mutex_destroy(&POP3QueueMutex); TODO */
-//     DeleteHash(&POP3FetchUrls);
+       while (doing_pop3client != 0) ;
+       DeleteHash(&POP3FetchUrls);
        DeleteHash(&POP3QueueRooms);
 }