rename InitEventIO to EvConnectSock, since this suits better what this function does...
[citadel.git] / citadel / modules / network / serv_networkclient.c
index 66d65cc0f287f9eb6b06367a75b83e991552d441..d0e9e6d197afd729d7ab38660907affe0e1b971c 100644 (file)
@@ -135,6 +135,8 @@ void DeleteNetworker(void *vptr)
        FreeStrBuf(&NW->port);
        FreeStrBuf(&NW->secret);
        FreeStrBuf(&NW->Url);
+       ((struct CitContext*)NW->IO.CitContext)->state = CON_IDLE;
+       ((struct CitContext*)NW->IO.CitContext)->kill_me = 1;
        FreeAsyncIOContents(&NW->IO);
        free(NW);
 }
@@ -147,7 +149,7 @@ eNextState FinalizeNetworker(AsyncIO *IO)
 {
        AsyncNetworker *NW = (AsyncNetworker *)IO->Data;
 
-       network_talking_to(ChrPtr(NW->node), NTT_REMOVE);
+       network_talking_to(SKEY(NW->node), NTT_REMOVE);
 
        DeleteNetworker(IO->Data);
        return eAbort;
@@ -274,7 +276,7 @@ eNextState NWC_SendREAD(AsyncNetworker *NW)
                 */
                if (server_shutting_down)
                {
-                       close(NW->IO.IOB.OtherFD);
+                       FDIOBufferDelete(&NW->IO.IOB);
                        unlink(ChrPtr(NW->tempFileName));
                        return eAbort;
                }
@@ -319,7 +321,7 @@ eNextState NWC_ReadREADBlob(AsyncNetworker *NW)
        {
                NW->State ++;
 
-               close(NW->IO.IOB.OtherFD);
+               FDIOBufferDelete(&NW->IO.IOB);
                
                if (link(ChrPtr(NW->SpoolFileName), ChrPtr(NW->tempFileName)) != 0) {
                        syslog(LOG_ALERT, 
@@ -346,7 +348,7 @@ eNextState NWC_ReadREADBlobDone(AsyncNetworker *NW)
        {
                NW->State ++;
 
-               close(NW->IO.IOB.OtherFD);
+               FDIOBufferDelete(&NW->IO.IOB);
                
                if (link(ChrPtr(NW->SpoolFileName), ChrPtr(NW->tempFileName)) != 0) {
                        syslog(LOG_ALERT, 
@@ -463,7 +465,7 @@ eNextState NWC_SendBlobDone(AsyncNetworker *NW)
        {
                NW->State ++;
 
-               close(NW->IO.IOB.OtherFD);
+               FDIOBufferDelete(&NW->IO.IOB);
                rc =  NWC_DispatchWriteDone(&NW->IO);
                NW->State --;
                return rc;
@@ -787,10 +789,10 @@ eNextState nwc_connect_ip(AsyncIO *IO)
               ChrPtr(NW->host),
               ChrPtr(NW->port));
        
-       return InitEventIO(IO, NW, 
-                          NWC_ConnTimeout, 
-                          NWC_ReadTimeouts[0],
-                          1);
+       return EvConnectSock(IO, NW, 
+                            NWC_ConnTimeout, 
+                            NWC_ReadTimeouts[0],
+                            1);
 }
 
 void RunNetworker(AsyncNetworker *NW)
@@ -805,7 +807,7 @@ void RunNetworker(AsyncNetworker *NW)
        NW->IO.Terminate     = NWC_Terminate;
        NW->IO.LineReader    = NWC_ReadServerStatus;
        NW->IO.ConnFail      = NWC_ConnFail;
-       NW->IO.DNSFail       = NWC_DNSFail;
+       NW->IO.DNS.Fail      = NWC_DNSFail;
        NW->IO.Timeout       = NWC_Timeout;
        NW->IO.ShutdownAbort = NWC_Shutdown;
        
@@ -818,6 +820,10 @@ void RunNetworker(AsyncNetworker *NW)
        SubC->session_specific_data = (char*) NW;
        NW->IO.CitContext = SubC;
 
+       safestrncpy(SubC->cs_host, 
+                   ChrPtr(NW->host),
+                   sizeof(SubC->cs_host)); 
+
        if (NW->IO.ConnectMe->IsIP) {
                QueueEventContext(&NW->IO,
                                  nwc_connect_ip);
@@ -897,9 +903,9 @@ void network_poll_other_citadel_nodes(int full_poll, char *working_ignetcfg)
                                             ChrPtr(NW->secret),
                                             ChrPtr(NW->host),
                                             ChrPtr(NW->port));
-                               if (!network_talking_to(ChrPtr(NW->node), NTT_CHECK))
+                               if (!network_talking_to(SKEY(NW->node), NTT_CHECK))
                                {
-                                       network_talking_to(ChrPtr(NW->node), NTT_ADD);
+                                       network_talking_to(SKEY(NW->node), NTT_ADD);
                                        RunNetworker(NW);
                                        continue;
                                }