Browse Source

another fix for server connection handling

master
Michael Preisach 4 years ago
parent
commit
4908f71b75
  1. 13
      server.c

13
server.c

@ -54,14 +54,15 @@ int server_start(conn_handler handler, int16_t port) {
for(ret = 0; 0 == ret;) { for(ret = 0; 0 == ret;) {
bzero(buffer, MAX_BUFSIZE); bzero(buffer, MAX_BUFSIZE);
len = 0; len = 0;
for(int i = 0; 0 < i && buffer[len-1] != '\n';) { do {
i = read(clientfd, &buffer[len], sizeof(buffer)-len); ret = read(clientfd, &buffer[len], sizeof(buffer)-len);
len += i; len += ret;
} } while(0 < ret && buffer[len-1] != '\n');
if (0 > len) {
if (0 > ret) {
printf("server_start: cannot read from socket\n"); printf("server_start: cannot read from socket\n");
ret = -1; ret = -1;
} else if(0 == len) { } else if(0 == ret) {
printf("server_start: client closed connection\n"); printf("server_start: client closed connection\n");
ret = 1; ret = 1;
} else { } else {

Loading…
Cancel
Save