diff options
| author | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-08-05 15:56:30 +0000 |
|---|---|---|
| committer | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-08-05 15:56:30 +0000 |
| commit | aecb6c466c1e7efa0f07809aa18096e7d5559850 (patch) | |
| tree | faf97599f2562a3da4e43df3587f16666704ce7e /src/base/server.c | |
| parent | b5723cbd822b2359850c121ca69e682a607d91bd (diff) | |
- server/client poziva neblokujuci rezim TCP socketov
git-svn-id: http://opensvn.csie.org/tuxanci_ng@190 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/base/server.c')
| -rw-r--r-- | src/base/server.c | 18 |
1 files changed, 13 insertions, 5 deletions
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); } |