[Nbd] [PATCH 04/11] nbd-server: fix accepted connections descriptor initialization and use
- To: nbd-general@lists.sourceforge.net
- Subject: [Nbd] [PATCH 04/11] nbd-server: fix accepted connections descriptor initialization and use
- From: "Dmitry V. Levin" <ldv@...1147...>
- Date: Fri, 22 Jun 2012 01:40:16 +0400
- Message-id: <20120621214016.GD26247@...1147...>
Change the value for undefined descriptor from 0 to -1 because
any value greater or equal to 0 can be a valid file descriptor.
Signed-off-by: Dmitry V. Levin <ldv@...1147...>
---
nbd-server.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/nbd-server.c b/nbd-server.c
index c789051..55b1347 100644
--- a/nbd-server.c
+++ b/nbd-server.c
@@ -2199,7 +2199,7 @@ int serveloop(GArray* servers) {
memcpy(&rset, &mset, sizeof(fd_set));
if(select(max+1, &rset, NULL, NULL, NULL)>0) {
- int net = 0;
+ int net = -1;
SERVER* serve=NULL;
DEBUG("accept, ");
@@ -2210,19 +2210,18 @@ int serveloop(GArray* servers) {
if(!client) {
err_nonfatal("negotiation failed");
close(net);
- net=0;
continue;
}
serve = client->server;
}
- for(i=0;i<servers->len && !net;i++) {
+ for(i=0; i < servers->len && net < 0; i++) {
serve=&(g_array_index(servers, SERVER, i));
if(FD_ISSET(serve->socket, &rset)) {
if ((net=accept(serve->socket, (struct sockaddr *) &addrin, &addrinlen)) < 0)
err("accept: %m");
}
}
- if(net) {
+ if(net >= 0) {
int sock_flags;
if(serve->max_connections > 0 &&
@@ -2600,7 +2599,7 @@ int main(int argc, char *argv[]) {
#endif
client=g_malloc(sizeof(CLIENT));
client->server=serve;
- client->net=0;
+ client->net=-1;
client->exportsize=OFFT_MAX;
set_peername(0,client);
serveconnection(client);
--
ldv
Reply to: