summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorsr2012-11-07 19:08:58 +0100
committersr2012-11-07 19:08:58 +0100
commit306d23c6ce07f55b0b281fe81503e4becee55f11 (patch)
tree883eee4716491230f57fc89499254c538f08a080 /src/kernel
parent[SERVER] Fix return code for IPC_IMAGE_ADD (diff)
downloaddnbd3-306d23c6ce07f55b0b281fe81503e4becee55f11.tar.gz
dnbd3-306d23c6ce07f55b0b281fe81503e4becee55f11.tar.xz
dnbd3-306d23c6ce07f55b0b281fe81503e4becee55f11.zip
[SERVER] Remove unix socket support for RPC interface
[SERVER] Restructure RPC functions, add helpers
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/net.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c
index d6ebb32..f225189 100644
--- a/src/kernel/net.c
+++ b/src/kernel/net.c
@@ -183,7 +183,7 @@ int dnbd3_net_connect(dnbd3_device_t *dev)
error_dev("FATAL: Connection to host failed.");
// Request filesize
dnbd3_request.magic = dnbd3_packet_magic;
- dnbd3_request.cmd = CMD_GET_SIZE;
+ dnbd3_request.cmd = CMD_SELECT_IMAGE;
iov[0].iov_base = &dnbd3_request;
iov[0].iov_len = sizeof(dnbd3_request);
serializer_reset_write(&dev->payload_buffer);
@@ -204,13 +204,13 @@ int dnbd3_net_connect(dnbd3_device_t *dev)
error_dev("FATAL: Received corrupted reply header after CMD_SIZE_REQUEST.");
// check reply header
fixup_reply(dnbd3_reply);
- if (dnbd3_reply.cmd != CMD_GET_SIZE || dnbd3_reply.size < 3 || dnbd3_reply.size > MAX_PAYLOAD || dnbd3_reply.magic != dnbd3_packet_magic)
+ if (dnbd3_reply.cmd != CMD_SELECT_IMAGE || dnbd3_reply.size < 3 || dnbd3_reply.size > MAX_PAYLOAD || dnbd3_reply.magic != dnbd3_packet_magic)
error_dev("FATAL: Received invalid reply to CMD_SIZE_REQUEST, image doesn't exist on server.");
// receive reply payload
iov[0].iov_base = &dev->payload_buffer;
iov[0].iov_len = dnbd3_reply.size;
if (kernel_recvmsg(dev->sock, &msg, iov, 1, dnbd3_reply.size, msg.msg_flags) != dnbd3_reply.size)
- error_dev("FATAL: Cold not read CMD_GET_SIZE payload on handshake.");
+ error_dev("FATAL: Cold not read CMD_SELECT_IMAGE payload on handshake.");
// handle/check reply payload
serializer_reset_read(&dev->payload_buffer, dnbd3_reply.size);
dev->cur_server.protocol_version = serializer_get_uint16(&dev->payload_buffer);
@@ -298,7 +298,8 @@ error:
int dnbd3_net_disconnect(dnbd3_device_t *dev)
{
- debug_dev("INFO: Disconnecting device.");
+ if (dev->cur_server.host.port)
+ debug_dev("INFO: Disconnecting device.");
dev->disconnecting = 1;
@@ -514,7 +515,7 @@ int dnbd3_net_discover(void *data)
goto error;
// Request filesize
- dnbd3_request.cmd = CMD_GET_SIZE;
+ dnbd3_request.cmd = CMD_SELECT_IMAGE;
iov[0].iov_base = &dnbd3_request;
iov[0].iov_len = sizeof(dnbd3_request);
serializer_reset_write(payload);
@@ -535,7 +536,7 @@ int dnbd3_net_discover(void *data)
if (kernel_recvmsg(sock, &msg, iov, 1, sizeof(dnbd3_reply), msg.msg_flags) != sizeof(dnbd3_reply))
error_alt("ERROR: Receiving image size packet (header) failed (discover).");
fixup_reply(dnbd3_reply);
- if (dnbd3_reply.magic != dnbd3_packet_magic || dnbd3_reply.cmd != CMD_GET_SIZE || dnbd3_reply.size < 4)
+ if (dnbd3_reply.magic != dnbd3_packet_magic || dnbd3_reply.cmd != CMD_SELECT_IMAGE || dnbd3_reply.size < 4)
error_alt("ERROR: Content of image size packet (header) mismatched (discover).");
// receive data