summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohann Latocha2012-02-21 20:12:17 +0100
committerJohann Latocha2012-02-21 20:12:17 +0100
commitffe7b10481cf280c46feeb1e28a5712838e20221 (patch)
tree6cf18922d1ddf8a75b5959da436ed1054c8681b2
parent[KERNEL] SysFS interface added (/sys/block/dnbd*/net/) (diff)
downloaddnbd3-ffe7b10481cf280c46feeb1e28a5712838e20221.tar.gz
dnbd3-ffe7b10481cf280c46feeb1e28a5712838e20221.tar.xz
dnbd3-ffe7b10481cf280c46feeb1e28a5712838e20221.zip
[ALL] Send proper rid
-rw-r--r--src/kernel/net.c2
-rw-r--r--src/server/net.c2
-rw-r--r--src/types.h2
3 files changed, 6 insertions, 0 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c
index 762d0d8..baa2966 100644
--- a/src/kernel/net.c
+++ b/src/kernel/net.c
@@ -503,6 +503,8 @@ int dnbd3_net_receive(void *data)
continue;
case CMD_GET_SIZE:
+ dev->vid = dnbd3_reply.vid;
+ dev->rid = dnbd3_reply.rid;
iov.iov_base = &filesize;
iov.iov_len = sizeof(uint64_t);
if (kernel_recvmsg(dev->cur_server.sock, &msg, &iov, 1, dnbd3_reply.size, msg.msg_flags) <= 0)
diff --git a/src/server/net.c b/src/server/net.c
index a42588d..67a64c9 100644
--- a/src/server/net.c
+++ b/src/server/net.c
@@ -93,6 +93,8 @@ void *dnbd3_handle_query(void *dnbd3_client)
}
image_file = open(image->file, O_RDONLY);
+ reply.vid = image->vid;
+ reply.rid = image->rid;
reply.size = sizeof(uint64_t);
client->image = image;
send(client->sock, (char *) &reply, sizeof(dnbd3_reply_t), 0);
diff --git a/src/types.h b/src/types.h
index c236db9..38e05f4 100644
--- a/src/types.h
+++ b/src/types.h
@@ -61,6 +61,8 @@ typedef struct
typedef struct
{
uint16_t cmd; // 2byte
+ uint16_t vid; // 2byte
+ uint16_t rid; // 2byte
uint16_t error; // 2byte
uint64_t size; // 8byte
char handle[8]; // 8byte