summaryrefslogtreecommitdiff
path: root/src/base/server.c
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-08-05 15:56:30 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-08-05 15:56:30 +0000
commitaecb6c466c1e7efa0f07809aa18096e7d5559850 (patch)
treefaf97599f2562a3da4e43df3587f16666704ce7e /src/base/server.c
parentb5723cbd822b2359850c121ca69e682a607d91bd (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.c18
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);
}