diff options
| author | Mattias Andrée <maandree@kth.se> | 2016-08-03 21:59:16 +0200 | 
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2016-08-03 21:59:16 +0200 | 
| commit | ddcdca6a449e0e04f3c2c78741859fe5e32ab7ef (patch) | |
| tree | db03f7cd61de35631f7ad993aea3ec3bc2748bd6 /src/servers | |
| parent | Fix bugs (diff) | |
| download | coopgammad-ddcdca6a449e0e04f3c2c78741859fe5e32ab7ef.tar.gz coopgammad-ddcdca6a449e0e04f3c2c78741859fe5e32ab7ef.tar.bz2 coopgammad-ddcdca6a449e0e04f3c2c78741859fe5e32ab7ef.tar.xz | |
Fix bugs
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/servers')
| -rw-r--r-- | src/servers/master.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/src/servers/master.c b/src/servers/master.c index 65012b9..be21b95 100644 --- a/src/servers/master.c +++ b/src/servers/master.c @@ -214,11 +214,17 @@ static int handle_server(void)        if (message_initialise(inbound + connections_ptr))  	goto fail;      } +  else +    { +      connections[connections_ptr] = fd; +      ring_initialise(outbound + connections_ptr); +      if (message_initialise(inbound + connections_ptr)) +	goto fail; +    }    connections_ptr++; -  while (connections_ptr < connections_used) -    if (connections[connections_ptr] >= 0) -      connections_ptr++; +  while ((connections_ptr < connections_used) && (connections[connections_ptr] >= 0)) +    connections_ptr++;    if (connections_used < connections_ptr)      connections_used = connections_ptr; @@ -273,6 +279,7 @@ static int handle_connection(size_t conn)        while ((connections_used > 0) && (connections[connections_used - 1] < 0))  	connections_used -= 1;        message_destroy(msg); +      ring_destroy(outbound + conn);        if (connection_closed(fd) < 0)  	return -1;        return 1; | 
