summaryrefslogtreecommitdiffstats
path: root/src/server/net.c
diff options
context:
space:
mode:
authorsr2013-07-16 21:20:07 +0200
committersr2013-07-16 21:20:07 +0200
commitc31b8d90a4e4809ada5b60fcdcc93b6ecf9326e4 (patch)
treecc5d5901ddb7bc7ba9c2c2beeaee3154c8a3b0f7 /src/server/net.c
parentFix more bugs, remove debug messages (diff)
downloaddnbd3-c31b8d90a4e4809ada5b60fcdcc93b6ecf9326e4.tar.gz
dnbd3-c31b8d90a4e4809ada5b60fcdcc93b6ecf9326e4.tar.xz
dnbd3-c31b8d90a4e4809ada5b60fcdcc93b6ecf9326e4.zip
Add debug-lock functions that will helpt to spot deadlocks etc. while developing
Diffstat (limited to 'src/server/net.c')
-rw-r--r--src/server/net.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/net.c b/src/server/net.c
index 51d8415..214f1cd 100644
--- a/src/server/net.c
+++ b/src/server/net.c
@@ -224,8 +224,10 @@ void *net_client_handler(void *dnbd3_client)
goto exit_client_cleanup;
}
- if ( request.size == 0 ) // Request for 0 bytes, done after sending header
- break;
+ if ( request.size == 0 ) { // Request for 0 bytes, done after sending header
+ send( client->sock, &reply, 0, 0 ); // Since we used MSG_MORE above...
+ break;
+ }
// no cache map means image is complete
if ( image->cache_map == NULL ) {
@@ -357,7 +359,7 @@ void *net_client_handler(void *dnbd3_client)
}
}
- exit_client_cleanup: if ( client->sock != -1 ) close( client->sock );
+ exit_client_cleanup: ;
if ( image_file != -1 ) close( image_file );
dnbd3_remove_client( client );
client = dnbd3_free_client( client );