From e26f3f1e43d8a8f19eef82308184894afa406e10 Mon Sep 17 00:00:00 2001 From: oroborus Date: Tue, 5 Aug 2008 21:17:31 +0000 Subject: - dropne upravy, snad dom tam nic nepokail -- aj sa naplni buffer (4096 bajtov) server clienta odstreli. - medzi tym som pozeral/pozeram Svedsku trojku na JoJ-ke :) git-svn-id: http://opensvn.csie.org/tuxanci_ng@191 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/client/client.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'src/client/client.c') diff --git a/src/client/client.c b/src/client/client.c index 7af0543..08fe9e6 100644 --- a/src/client/client.c +++ b/src/client/client.c @@ -179,6 +179,13 @@ int initClient(char *ip, int port, int proto) return 0; } +static void errorWithServer() +{ + fprintf(stderr, "Server does not respond!\n"); + setMsgToAnalyze(getMyText("ERROR_SERVER_DONT_ALIVE")); + setWorldEnd(); +} + static void sendBuffer() { void *data; @@ -196,8 +203,9 @@ static void sendBuffer() res = writeTcpSocket(sock_server_tcp, data, len); - if( res <= 0 ) + if( res < 0 ) { + errorWithServer(); return; } @@ -230,8 +238,13 @@ void sendServer(char *msg) if( sock_server_tcp != NULL ) { //ret = writeTcpSocket(sock_server_tcp, msg, strlen(msg)); - addBuffer(clientSendBuffer, msg, strlen(msg)); - ret = 1; + ret = addBuffer(clientSendBuffer, msg, strlen(msg)); + } + + if( ret < 0 ) + { + errorWithServer(); + return; } } @@ -252,8 +265,9 @@ static int eventServerSelect() ret = readTcpSocket(sock_server_tcp, buffer, STR_PROTO_SIZE-1); } - if( ret <= 0 ) + if( ret < 0 ) { + errorWithServer(); return ret; } @@ -261,7 +275,11 @@ static int eventServerSelect() traffic_down += ret; #endif - addBuffer(clientRecvBuffer, buffer, ret); + if( addBuffer(clientRecvBuffer, buffer, ret) < 0 ) + { + errorWithServer(); + return ret; + } while( getBufferLine(clientRecvBuffer, buffer, STR_PROTO_SIZE) >= 0 ) { @@ -345,9 +363,7 @@ static void selectClientSocket() { if( isServerAlive() == FALSE ) { - fprintf(stderr, "Server does not respond!\n"); - setMsgToAnalyze(getMyText("ERROR_SERVER_DONT_ALIVE")); - setWorldEnd(); + errorWithServer(); return; } } -- cgit v1.2.3