More places to use the right api function.
[citadel.git] / citadel / modules / networkclient / serv_networkclient.c
index cc4ac6260a42504ebdbc84e275aa26f13e97213b..5c38f46ed762f258306ba873c159f11a6a86bf65 100644 (file)
@@ -66,7 +66,6 @@
 #include "msgbase.h"
 #include "internet_addressing.h"
 #include "clientsocket.h"
-#include "file_ops.h"
 #include "citadel_dirs.h"
 #include "threads.h"
 #include "context.h"
@@ -83,21 +82,21 @@ int NetworkClientDebugEnabled = 0;
 
 #define EVN_syslog(LEVEL, FORMAT, ...)                                 \
        NCDBGLOG(LEVEL) syslog(LEVEL,                                   \
-                              "IO[%ld]CC[%d]NW[%s][%ld]" FORMAT,       \
-                              IO->ID, CCID, NODE, N, __VA_ARGS__)
+                              "%s[%ld]CC[%d]NW[%s][%ld]" FORMAT,       \
+                              IOSTR, IO->ID, CCID, NODE, N, __VA_ARGS__)
 
 #define EVNM_syslog(LEVEL, FORMAT)                                     \
        NCDBGLOG(LEVEL) syslog(LEVEL,                                   \
-                              "IO[%ld]CC[%d]NW[%s][%ld]" FORMAT,       \
-                              IO->ID, CCID, NODE, N)
+                              "%s[%ld]CC[%d]NW[%s][%ld]" FORMAT,       \
+                              IOSTR, IO->ID, CCID, NODE, N)
 
 #define EVNCS_syslog(LEVEL, FORMAT, ...) \
-       NCDBGLOG(LEVEL) syslog(LEVEL, "IO[%ld]NW[%s][%ld]" FORMAT,      \
-                              IO->ID, NODE, N, __VA_ARGS__)
+       NCDBGLOG(LEVEL) syslog(LEVEL, "%s[%ld]NW[%s][%ld]" FORMAT,      \
+                              IOSTR, IO->ID, NODE, N, __VA_ARGS__)
 
 #define EVNCSM_syslog(LEVEL, FORMAT) \
-       NCDBGLOG(LEVEL) syslog(LEVEL, "IO[%ld]NW[%s][%ld]" FORMAT,      \
-                              IO->ID, NODE, N)
+       NCDBGLOG(LEVEL) syslog(LEVEL, "%s[%ld]NW[%s][%ld]" FORMAT,      \
+                              IOSTR, IO->ID, NODE, N)
 
 
 typedef enum _eNWCState {
@@ -195,7 +194,7 @@ void DeleteNetworker(void *vptr)
 #define NWC_DBG_READ() EVN_syslog(LOG_DEBUG, ": < %s\n", ChrPtr(NW->IO.IOBuf))
 #define NWC_OK (strncasecmp(ChrPtr(NW->IO.IOBuf), "+OK", 3) == 0)
 
-eNextState SendFailureMessage(AsyncIO *IO)
+eNextState NWC_SendFailureMessage(AsyncIO *IO)
 {
        AsyncNetworker *NW = IO->Data;
        long lens[2];
@@ -243,8 +242,8 @@ eNextState NWC_ReadGreeting(AsyncNetworker *NW)
                             "Connected to node \"%s\" but I was expecting to connect to node \"%s\".",
                             connected_to, ChrPtr(NW->node));
                EVN_syslog(LOG_ERR, "%s\n", ChrPtr(NW->IO.ErrMsg));
-               StopClientWatchers(IO, 1);
-               return QueueDBOperation(IO, SendFailureMessage);
+
+               return EventQueueDBOperation(IO, NWC_SendFailureMessage, 1);
        }
        return eSendReply;
 }
@@ -287,8 +286,7 @@ eNextState NWC_ReadAuthReply(AsyncNetworker *NW)
                else {
                        SetNWCState(IO, eNWCVSAuthFailNTT);
                        EVN_syslog(LOG_ERR, "%s\n", ChrPtr(NW->IO.ErrMsg));
-                       StopClientWatchers(IO, 1);
-                       return QueueDBOperation(IO, SendFailureMessage);
+                       return EventQueueDBOperation(IO, NWC_SendFailureMessage, 1);
                }
                return eAbort;
        }
@@ -327,10 +325,20 @@ eNextState NWC_ReadNDOPReply(AsyncNetworker *NW)
        NWC_DBG_READ();
        if (ChrPtr(NW->IO.IOBuf)[0] == '2')
        {
+               int LogLevel = LOG_DEBUG;
 
                NW->IO.IOB.TotalSentAlready = 0;
+
                TotalSendSize = atol (ChrPtr(NW->IO.IOBuf) + 4);
-               EVN_syslog(LOG_DEBUG, "Expecting to transfer %d bytes\n", TotalSendSize);
+
+               if (TotalSendSize > 0)
+                       LogLevel = LOG_INFO;
+
+               EVN_syslog(LogLevel,
+                          "Expecting to transfer %d bytes to %s\n",
+                          TotalSendSize,
+                          ChrPtr(NW->tempFileName));
+
                if (TotalSendSize <= 0) {
                        NW->State = eNUOP - 1;
                }
@@ -434,7 +442,13 @@ eNextState NWC_ReadREADBlob(AsyncNetworker *NW)
                               ChrPtr(NW->SpoolFileName), 
                               strerror(errno));
                }
-       
+               else {
+                       EVN_syslog(LOG_INFO, 
+                              "moved %s to %s\n",
+                              ChrPtr(NW->tempFileName), 
+                              ChrPtr(NW->SpoolFileName));
+               }
+
                unlink(ChrPtr(NW->tempFileName));
                rc = NWC_DispatchWriteDone(&NW->IO);
                NW->State --;
@@ -464,6 +478,12 @@ eNextState NWC_ReadREADBlobDone(AsyncNetworker *NW)
                               ChrPtr(NW->SpoolFileName), 
                               strerror(errno));
                }
+               else {
+                       EVN_syslog(LOG_INFO, 
+                              "moved %s to %s\n",
+                              ChrPtr(NW->tempFileName), 
+                              ChrPtr(NW->SpoolFileName));
+               }
        
                unlink(ChrPtr(NW->tempFileName));
                rc = NWC_DispatchWriteDone(&NW->IO);
@@ -542,6 +562,14 @@ eNextState NWC_SendNUOP(AsyncNetworker *NW)
                if (fd > 0) close(fd);
                return rc;
        }
+       else
+               {
+               EVN_syslog(LOG_INFO,
+                          "sending %s to %s\n", 
+                          ChrPtr(NW->SpoolFileName),
+                          ChrPtr(NW->node));
+       }
+
        FDIOBufferInit(&NW->IO.IOB, &NW->IO.SendBuf, fd, TotalSendSize);
 
        StrBufPlain(NW->IO.SendBuf.Buf, HKEY("NUOP\n"));
@@ -618,7 +646,12 @@ eNextState NWC_ReadUCLS(AsyncNetworker *NW)
        AsyncIO *IO = &NW->IO;
        NWC_DBG_READ();
 
-       EVN_syslog(LOG_NOTICE, "Sent %ld octets to <%s>\n", NW->IO.IOB.ChunkSize, ChrPtr(NW->node));
+       EVN_syslog(LOG_NOTICE,
+                  "Sent %s [%ld] octets to <%s>\n",
+                  ChrPtr(NW->SpoolFileName),
+                  NW->IO.IOB.ChunkSize,
+                  ChrPtr(NW->node));
+
        if (ChrPtr(NW->IO.IOBuf)[0] == '2') {
                EVN_syslog(LOG_DEBUG, "Removing <%s>\n", ChrPtr(NW->SpoolFileName));
                unlink(ChrPtr(NW->SpoolFileName));
@@ -810,8 +843,7 @@ eReadState NWC_ReadServerStatus(AsyncIO *IO)
 eNextState NWC_FailNetworkConnection(AsyncIO *IO)
 {
        SetNWCState(IO, eNWCVSConnFail);
-       StopClientWatchers(IO, 1);
-       return QueueDBOperation(IO, SendFailureMessage);
+       return EventQueueDBOperation(IO, NWC_SendFailureMessage, 1);
 }
 
 void NWC_SetTimeout(eNextState NextTCPState, AsyncNetworker *NW)
@@ -822,26 +854,23 @@ void NWC_SetTimeout(eNextState NextTCPState, AsyncNetworker *NW)
        EVN_syslog(LOG_DEBUG, "%s - %d\n", __FUNCTION__, NextTCPState);
 
        switch (NextTCPState) {
-       case eSendReply:
        case eSendMore:
-               break;
-       case eReadFile:
+       case eSendReply:
        case eReadMessage:
                Timeout = NWC_ReadTimeouts[NW->State];
                break;
+       case eReadFile:
+       case eSendFile:
        case eReadPayload:
                Timeout = 100000;
-               /* TODO!!! */
                break;
        case eSendDNSQuery:
        case eReadDNSReply:
+       case eDBQuery:
+       case eReadMore:
        case eConnect:
-       case eSendFile:
-//TODO
        case eTerminateConnection:
-       case eDBQuery:
        case eAbort:
-       case eReadMore://// TODO
                return;
        }
        if (Timeout > 0) {
@@ -862,9 +891,12 @@ eNextState NWC_DispatchReadDone(AsyncIO *IO)
        eNextState rc;
 
        rc = NWC_ReadHandlers[NW->State](NW);
+
        if (rc != eReadMore)
                NW->State++;
+
        NWC_SetTimeout(rc, NW);
+
        return rc;
 }
 eNextState NWC_DispatchWriteDone(AsyncIO *IO)