diff options
author | Simon Rettberg | 2013-08-26 18:59:22 +0200 |
---|---|---|
committer | Simon Rettberg | 2013-08-26 18:59:22 +0200 |
commit | cfb0fba59db0937a00ff04b03aaa28ca671fe4d7 (patch) | |
tree | e24109886f706b96f87903fab9e786153f628e9f /src/server/net.c | |
parent | [SERVER] WIP: On-the-fly image cloning (diff) | |
download | dnbd3-cfb0fba59db0937a00ff04b03aaa28ca671fe4d7.tar.gz dnbd3-cfb0fba59db0937a00ff04b03aaa28ca671fe4d7.tar.xz dnbd3-cfb0fba59db0937a00ff04b03aaa28ca671fe4d7.zip |
[SERVER] On-the-fly transparent proxying
Diffstat (limited to 'src/server/net.c')
-rw-r--r-- | src/server/net.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/server/net.c b/src/server/net.c index c068338..4e25564 100644 --- a/src/server/net.c +++ b/src/server/net.c @@ -156,7 +156,7 @@ void *net_client_handler(void *dnbd3_client) printf( "[DEBUG] Incomplete handshake received\n" ); } } else { - image = image_get( image_name, rid ); + client->image = image = image_getOrClone( image_name, rid ); if ( image == NULL ) { //printf( "[DEBUG] Client requested non-existent image '%s' (rid:%d), rejected\n", image_name, (int)rid ); } else if ( !image->working ) { @@ -172,7 +172,6 @@ void *net_client_handler(void *dnbd3_client) reply.cmd = CMD_SELECT_IMAGE; reply.size = serializer_get_written_length( &payload ); if ( send_reply( client->sock, &reply, &payload ) ) { - client->image = image; if ( !client->is_server ) image->atime = time( NULL ); bOk = TRUE; } @@ -310,7 +309,7 @@ void *net_client_handler(void *dnbd3_client) case CMD_GET_SERVERS: client->is_server = FALSE; // Only clients request list of servers // Build list of known working alt servers - num = altservers_get_matching( &client->host, server_list, NUMBER_SERVERS ); + num = altservers_getMatching( &client->host, server_list, NUMBER_SERVERS ); reply.cmd = CMD_GET_SERVERS; reply.size = num * sizeof(dnbd3_server_entry_t); send_reply( client->sock, &reply, server_list ); |