summaryrefslogtreecommitdiff
path: root/src/base/server.c
diff options
context:
space:
mode:
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);
}