# HG changeset patch # User Carl-Daniel Hailfinger <carl-daniel.hailfin...@inf.h-brs.de> # Date 1474903734 -7200 # Mon Sep 26 17:28:54 2016 +0200 # Node ID dbd1ea0a401cedcfa426097a289d852971b14f1e # Parent d7d5078d08c711032837dcac79a4450226ec2ce5 nbdkit: Fix flags in old-style connection
diff -r d7d5078d08c7 -r dbd1ea0a401c src/connections.c --- a/src/connections.c Sun Sep 25 05:04:02 2016 +0200 +++ b/src/connections.c Mon Sep 26 17:28:54 2016 +0200 @@ -155,7 +155,7 @@ struct old_handshake handshake; int64_t r; uint64_t exportsize; - uint16_t gflags, eflags; + uint32_t flags; int fl; r = plugin_get_size (conn); @@ -169,14 +169,13 @@ exportsize = (uint64_t) r; conn->exportsize = exportsize; - gflags = 0; - eflags = NBD_FLAG_HAS_FLAGS; + flags = NBD_FLAG_HAS_FLAGS; fl = plugin_can_write (conn); if (fl == -1) return -1; if (readonly || !fl) { - eflags |= NBD_FLAG_READ_ONLY; + flags |= NBD_FLAG_READ_ONLY; conn->readonly = 1; } @@ -184,7 +183,7 @@ if (fl == -1) return -1; if (fl) { - eflags |= NBD_FLAG_SEND_FLUSH | NBD_FLAG_SEND_FUA; + flags |= NBD_FLAG_SEND_FLUSH | NBD_FLAG_SEND_FUA; conn->can_flush = 1; } @@ -192,7 +191,7 @@ if (fl == -1) return -1; if (fl) { - eflags |= NBD_FLAG_ROTATIONAL; + flags |= NBD_FLAG_ROTATIONAL; conn->is_rotational = 1; } @@ -200,7 +199,7 @@ if (fl == -1) return -1; if (fl) { - eflags |= NBD_FLAG_SEND_TRIM; + flags |= NBD_FLAG_SEND_TRIM; conn->can_trim = 1; } @@ -208,19 +207,17 @@ if (fl == -1) return -1; if (fl) { - eflags |= NBD_FLAG_SEND_MARKNOREMANENCE; + flags |= NBD_FLAG_SEND_MARKNOREMANENCE; conn->can_marknoremanence = 1; } - debug ("oldstyle negotiation: flags: global 0x%x export 0x%x", - gflags, eflags); + debug ("oldstyle negotiation: server flags: 0x%x", flags); memset (&handshake, 0, sizeof handshake); memcpy (handshake.nbdmagic, "NBDMAGIC", 8); handshake.version = htobe64 (OLD_VERSION); handshake.exportsize = htobe64 (exportsize); - handshake.gflags = htobe16 (gflags); - handshake.eflags = htobe16 (eflags); + handshake.flags = htobe32 (flags); if (xwrite (conn->sockout, &handshake, sizeof handshake) == -1) { nbdkit_error ("write: %m"); diff -r d7d5078d08c7 -r dbd1ea0a401c src/protocol.h --- a/src/protocol.h Sun Sep 25 05:04:02 2016 +0200 +++ b/src/protocol.h Mon Sep 26 17:28:54 2016 +0200 @@ -41,8 +41,7 @@ char nbdmagic[8]; /* "NBDMAGIC" */ uint64_t version; /* OLD_VERSION, in network byte order */ uint64_t exportsize; /* in network byte order */ - uint16_t gflags; /* global flags, in network byte order */ - uint16_t eflags; /* per-export flags, in network byte order */ + uint32_t flags; /* flags, in network byte order */ char zeroes[124]; /* must be sent as zero bytes */ } __attribute__((packed)); _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://www.redhat.com/mailman/listinfo/libguestfs