From aecb6c466c1e7efa0f07809aa18096e7d5559850 Mon Sep 17 00:00:00 2001 From: oroborus Date: Tue, 5 Aug 2008 15:56:30 +0000 Subject: - server/client poziva neblokujuci rezim TCP socketov git-svn-id: http://opensvn.csie.org/tuxanci_ng@190 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- src/base/server.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/base/server.c') diff --git a/src/base/server.c b/src/base/server.c index ad057a2..a0bfb60 100644 --- a/src/base/server.c +++ b/src/base/server.c @@ -317,7 +317,9 @@ void sendClient(client_t *p, char *msg) ret = writeUdpSocket(p->socket_udp, p->socket_udp, msg, strlen(msg)); break; case CLIENT_TYPE_TCP : - ret = writeTcpSocket(p->socket_tcp, msg, strlen(msg)); + //ret = writeTcpSocket(p->socket_tcp, msg, strlen(msg)); + addBuffer(p->sendBuffer, msg, strlen(msg)); + ret = 1; break; default : assert( ! "zly typ !"); @@ -331,7 +333,7 @@ void sendClient(client_t *p, char *msg) } } -static void eventClientBuffer(client_t *client) +static void eventClientWorkRecvList(client_t *client) { proto_cmd_server_t* protoCmd; char *line; @@ -368,7 +370,7 @@ static void eventClientBuffer(client_t *client) client->listRecvMsg = newList(); } -static void eventClientListBuffer() +static void porcesListClients() { int i; client_t *thisClient; @@ -376,8 +378,14 @@ static void eventClientListBuffer() for( i = 0 ; i < listClient->count; i++) { thisClient = (client_t *) listClient->list[i]; - eventClientBuffer(thisClient); + + eventClientWorkRecvList(thisClient); eventMsgInCheckFront(thisClient); + + if( thisClient->type == CLIENT_TYPE_TCP ) + { + sendTcpClientBuffer(thisClient); + } } } @@ -418,7 +426,7 @@ void eventServer() } #endif - eventClientListBuffer(); + porcesListClients(); eventTimer(listServerTimer); } -- cgit v1.2.3