X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fnetworkclient%2Fserv_networkclient.c;h=95badfb6854383974c3d9478ce20b5d2602105e7;hb=1493fd8ff0de73d30336607b43b1c8113ffcffa2;hp=5d6a6e2dc99a39d438220856b56701bf5de588e3;hpb=998f7ba061f498ff16d542409ffe8926671d92ea;p=citadel.git diff --git a/citadel/modules/networkclient/serv_networkclient.c b/citadel/modules/networkclient/serv_networkclient.c index 5d6a6e2dc..95badfb68 100644 --- a/citadel/modules/networkclient/serv_networkclient.c +++ b/citadel/modules/networkclient/serv_networkclient.c @@ -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]; @@ -244,7 +243,7 @@ eNextState NWC_ReadGreeting(AsyncNetworker *NW) connected_to, ChrPtr(NW->node)); EVN_syslog(LOG_ERR, "%s\n", ChrPtr(NW->IO.ErrMsg)); StopClientWatchers(IO, 1); - return QueueDBOperation(IO, SendFailureMessage); + return QueueDBOperation(IO, NWC_SendFailureMessage); } return eSendReply; } @@ -288,7 +287,7 @@ eNextState NWC_ReadAuthReply(AsyncNetworker *NW) SetNWCState(IO, eNWCVSAuthFailNTT); EVN_syslog(LOG_ERR, "%s\n", ChrPtr(NW->IO.ErrMsg)); StopClientWatchers(IO, 1); - return QueueDBOperation(IO, SendFailureMessage); + return QueueDBOperation(IO, NWC_SendFailureMessage); } return eAbort; } @@ -846,7 +845,7 @@ eNextState NWC_FailNetworkConnection(AsyncIO *IO) { SetNWCState(IO, eNWCVSConnFail); StopClientWatchers(IO, 1); - return QueueDBOperation(IO, SendFailureMessage); + return QueueDBOperation(IO, NWC_SendFailureMessage); } void NWC_SetTimeout(eNextState NextTCPState, AsyncNetworker *NW) @@ -857,26 +856,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) { @@ -897,9 +893,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)