From bfdac5b274d8ca371307d2b4b417092ba25f11ab Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 28 Aug 2013 17:54:19 +0200 Subject: [SERVER] Copy CRC-32 list from uplink server if available Split up helper.c, move file/disk related functions to fileutil.c Uplink: Make sure relayed requests are at least 1MiB --- src/server/net.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/server/net.c') diff --git a/src/server/net.c b/src/server/net.c index 4e25564..cd38205 100644 --- a/src/server/net.c +++ b/src/server/net.c @@ -329,10 +329,13 @@ void *net_client_handler(void *dnbd3_client) reply.cmd = CMD_GET_CRC32; if ( image->crc32 == NULL ) { reply.size = 0; + send_reply( client->sock, &reply, NULL ); } else { - reply.size = IMGSIZE_TO_HASHBLOCKS(image->filesize) * 4; + const int size = reply.size = (IMGSIZE_TO_HASHBLOCKS(image->filesize) + 1) * sizeof(uint32_t); + send_reply( client->sock, &reply, NULL ); + send( client->sock, &image->masterCrc32, sizeof(uint32_t), 0 ); + send( client->sock, image->crc32, size - sizeof(uint32_t), 0 ); } - send_reply( client->sock, &reply, image->crc32 ); break; default: -- cgit v1.2.3-55-g7522