summaryrefslogtreecommitdiff
path: root/src/base/tcp_server.c
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-08-05 21:17:31 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-08-05 21:17:31 +0000
commite26f3f1e43d8a8f19eef82308184894afa406e10 (patch)
tree341aeb155492ce2313c10ebc6d488b06adc250b5 /src/base/tcp_server.c
parentaecb6c466c1e7efa0f07809aa18096e7d5559850 (diff)
- 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
Diffstat (limited to 'src/base/tcp_server.c')
-rw-r--r--src/base/tcp_server.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/base/tcp_server.c b/src/base/tcp_server.c
index 3465b1d..74d6f85 100644
--- a/src/base/tcp_server.c
+++ b/src/base/tcp_server.c
@@ -86,6 +86,7 @@ void sendTcpClientBuffer(client_t *client)
data = getBufferData(client->sendBuffer);
res = writeTcpSocket(client->socket_tcp, data, len);
+ //printf("writeTcpSocket = %d\n", res);
if( res < 0 )
{
@@ -182,6 +183,7 @@ static void eventTcpClient(client_t *client)
memset(buffer, 0, STR_PROTO_SIZE);
ret = readTcpSocket(client->socket_tcp, buffer, STR_PROTO_SIZE-1);
+ //printf("readTcpSocket = %d\n", ret);
if( ret <= 0 )
{
@@ -189,7 +191,11 @@ static void eventTcpClient(client_t *client)
return;
}
- addBuffer(client->recvBuffer, buffer, ret);
+ if( addBuffer(client->recvBuffer, buffer, ret) < 0 )
+ {
+ client->status = NET_STATUS_ZOMBIE;
+ return;
+ }
while( getBufferLine(client->recvBuffer, buffer, STR_PROTO_SIZE) >= 0 )
{
@@ -206,12 +212,12 @@ void setServerTcpSelect()
if( sock_server_tcp != NULL )
{
- addSockToSelect(sock_server_tcp->sock);
+ addSockToSelectRead(sock_server_tcp->sock);
}
if( sock_server_tcp_second != NULL )
{
- addSockToSelect(sock_server_tcp_second->sock);
+ addSockToSelectRead(sock_server_tcp_second->sock);
}
for( i = 0 ; i < listClient->count ; i++ )
@@ -225,7 +231,7 @@ void setServerTcpSelect()
continue;
}
- addSockToSelect(client->socket_tcp->sock);
+ addSockToSelectRead(client->socket_tcp->sock);
}
}
@@ -239,7 +245,7 @@ int selectServerTcpSocket()
if( sock_server_tcp != NULL )
{
- if( isChangeSockInSelect(sock_server_tcp->sock) )
+ if( isChangeSockInSelectRead(sock_server_tcp->sock) )
{
eventNewClient(sock_server_tcp);
count++;
@@ -248,7 +254,7 @@ int selectServerTcpSocket()
if( sock_server_tcp_second != NULL )
{
- if( isChangeSockInSelect(sock_server_tcp_second->sock) )
+ if( isChangeSockInSelectRead(sock_server_tcp_second->sock) )
{
eventNewClient(sock_server_tcp_second);
count++;
@@ -268,14 +274,20 @@ int selectServerTcpSocket()
continue;
}
- if( isChangeSockInSelect(client->socket_tcp->sock) )
+ if( isChangeSockInSelectRead(client->socket_tcp->sock) )
{
- //printf("eventTcpClient(client);\n");
+ //printf("sChangeSockInSelectRead\n");
eventTcpClient(client);
count++;
}
-
- sendTcpClientBuffer(client);
+/*
+ if( isChangeSockInSelectWrite(client->socket_tcp->sock) )
+ {
+ //printf("isChangeSockInSelectWrite\n");
+ sendTcpClientBuffer(client);
+ count++;
+ }
+*/
}
return count;