From c25838a76eacef9a08ae4bca3762d1d328f2b882 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 13 Aug 2013 17:04:18 +0200 Subject: Test your coke, dork! --- src/server/altservers.c | 9 ++++++--- src/server/integrity.c | 1 + src/server/server.c | 2 -- src/server/uplink.c | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/server/altservers.c b/src/server/altservers.c index 86b2dce..a98bedc 100644 --- a/src/server/altservers.c +++ b/src/server/altservers.c @@ -420,9 +420,12 @@ static void *altserver_main(void *data) if ( send( sock, &request, sizeof(request), 0 ) != sizeof(request) ) ERROR_GOTO_VA( server_failed, "[ERROR] Could not request random block for %s", uplink->image->lower_name ); // See if requesting the block succeeded ++++++++++++++++++++++ - if ( recv( sock, &reply, sizeof(reply), MSG_WAITALL ) != sizeof(reply) ) { - ERROR_GOTO_VA( server_failed, "[ERROR] Received corrupted reply header after CMD_GET_BLOCK (%s)", - uplink->image->lower_name ); + const int retlen = recv( sock, &reply, sizeof(reply), MSG_WAITALL ); + if ( retlen != sizeof(reply) ) { + char buf[100] = { 0 }; + host_to_string( &servers[itAlt], buf, 100 ); + ERROR_GOTO_VA( server_failed, "[ERROR] Received corrupted reply header (%d, %s) after CMD_GET_BLOCK (%s)", + retlen, buf, uplink->image->lower_name ); } // check reply header fixup_reply( reply ); diff --git a/src/server/integrity.c b/src/server/integrity.c index 400e171..a6d4ee5 100644 --- a/src/server/integrity.c +++ b/src/server/integrity.c @@ -4,6 +4,7 @@ #include "image.h" #include "globals.h" #include "memlog.h" +#include "helper.h" #include #include diff --git a/src/server/server.c b/src/server/server.c index 289b901..d2238cc 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -312,8 +312,6 @@ int main(int argc, char *argv[]) memlogf( "[INFO] Server is ready..." ); - setThreadName( "client-listener" ); - // +++++++++++++++++++++++++++++++++++++++++++++++++++ main loop while ( 1 ) { len = sizeof(client); diff --git a/src/server/uplink.c b/src/server/uplink.c index 13ae7ad..a4fccf9 100644 --- a/src/server/uplink.c +++ b/src/server/uplink.c @@ -138,13 +138,13 @@ int uplink_request(dnbd3_client_t *client, uint64_t handle, uint64_t start, uint uplink->queue[freeSlot].to = end; uplink->queue[freeSlot].handle = handle; uplink->queue[freeSlot].client = client; - uplink->queue[freeSlot].status = (foundExisting ? ULR_PENDING : ULR_NEW); + uplink->queue[freeSlot].status = (foundExisting == -1 ? ULR_NEW : ULR_PENDING); #ifdef _DEBUG uplink->queue[freeSlot].entered = time( NULL ); #endif spin_unlock( &uplink->queueLock ); - if ( !foundExisting ) { + if ( foundExisting == -1 ) { static uint64_t counter = 1; write( uplink->signal, &counter, sizeof(uint64_t) ); } -- cgit v1.2.3-55-g7522