summaryrefslogtreecommitdiffstats
path: root/src/server/net.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/net.c')
-rw-r--r--src/server/net.c7
1 files changed, 5 insertions, 2 deletions
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: