diff mbox

Make nbd-tester-client use FIXED_NEWSTYLE negotiation

Message ID 1460385083-28246-1-git-send-email-alex@alex.org.uk
State New
Headers show

Commit Message

Alex Bligh April 11, 2016, 2:31 p.m. UTC
Signed-off-by: Alex Bligh <alex@alex.org.uk>
---
 tests/run/nbd-tester-client.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Alex Bligh April 11, 2016, 2:37 p.m. UTC | #1
Apologies - wrong list. The perils of relying on history.

Alex

On 11 Apr 2016, at 15:31, Alex Bligh <alex@alex.org.uk> wrote:
> Signed-off-by: Alex Bligh <alex@alex.org.uk>
> ---
> tests/run/nbd-tester-client.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/run/nbd-tester-client.c b/tests/run/nbd-tester-client.c
> index 06396a7..1b99fa8 100644
> --- a/tests/run/nbd-tester-client.c
> +++ b/tests/run/nbd-tester-client.c
> @@ -342,6 +342,8 @@ int setup_connection_common(int sock, char* name, CONNECTION_TYPE ctype, int* se
> 	u64 tmp64;
> 	uint64_t mymagic = (name ? opts_magic : cliserv_magic);
> 	uint32_t tmp32 = 0;
> +	uint16_t handshakeflags = 0;
> +	uint32_t negotiationflags = 0;
> 
> 	if(ctype<CONNECTION_TYPE_INIT_PASSWD)
> 		goto end;
> @@ -370,10 +372,12 @@ int setup_connection_common(int sock, char* name, CONNECTION_TYPE ctype, int* se
> 		READ_ALL_ERRCHK(sock, buf, 128, err, "Could not read data: %s", strerror(errno));
> 		goto end;
> 	}
> -	/* flags */
> -	READ_ALL_ERRCHK(sock, buf, sizeof(uint16_t), err, "Could not read reserved field: %s", strerror(errno));
> -	/* reserved field */
> -	WRITE_ALL_ERRCHK(sock, &tmp32, sizeof(tmp32), err, "Could not write reserved field: %s", strerror(errno));
> +	/* handshake flags */
> +	READ_ALL_ERRCHK(sock, &handshakeflags, sizeof(handshakeflags), err, "Could not read reserved field: %s", strerror(errno));
> +	/* negotiation flags */
> +	if (handshakeflags & NBD_FLAG_FIXED_NEWSTYLE)
> +		negotiationflags |= NBD_FLAG_C_FIXED_NEWSTYLE;
> +	WRITE_ALL_ERRCHK(sock, &negotiationflags, sizeof(negotiationflags), err, "Could not write reserved field: %s", strerror(errno));
> 	/* magic */
> 	tmp64 = htonll(opts_magic);
> 	WRITE_ALL_ERRCHK(sock, &tmp64, sizeof(tmp64), err, "Could not write magic: %s", strerror(errno));
> -- 
> 1.9.1
> 
>
diff mbox

Patch

diff --git a/tests/run/nbd-tester-client.c b/tests/run/nbd-tester-client.c
index 06396a7..1b99fa8 100644
--- a/tests/run/nbd-tester-client.c
+++ b/tests/run/nbd-tester-client.c
@@ -342,6 +342,8 @@  int setup_connection_common(int sock, char* name, CONNECTION_TYPE ctype, int* se
 	u64 tmp64;
 	uint64_t mymagic = (name ? opts_magic : cliserv_magic);
 	uint32_t tmp32 = 0;
+	uint16_t handshakeflags = 0;
+	uint32_t negotiationflags = 0;
 
 	if(ctype<CONNECTION_TYPE_INIT_PASSWD)
 		goto end;
@@ -370,10 +372,12 @@  int setup_connection_common(int sock, char* name, CONNECTION_TYPE ctype, int* se
 		READ_ALL_ERRCHK(sock, buf, 128, err, "Could not read data: %s", strerror(errno));
 		goto end;
 	}
-	/* flags */
-	READ_ALL_ERRCHK(sock, buf, sizeof(uint16_t), err, "Could not read reserved field: %s", strerror(errno));
-	/* reserved field */
-	WRITE_ALL_ERRCHK(sock, &tmp32, sizeof(tmp32), err, "Could not write reserved field: %s", strerror(errno));
+	/* handshake flags */
+	READ_ALL_ERRCHK(sock, &handshakeflags, sizeof(handshakeflags), err, "Could not read reserved field: %s", strerror(errno));
+	/* negotiation flags */
+	if (handshakeflags & NBD_FLAG_FIXED_NEWSTYLE)
+		negotiationflags |= NBD_FLAG_C_FIXED_NEWSTYLE;
+	WRITE_ALL_ERRCHK(sock, &negotiationflags, sizeof(negotiationflags), err, "Could not write reserved field: %s", strerror(errno));
 	/* magic */
 	tmp64 = htonll(opts_magic);
 	WRITE_ALL_ERRCHK(sock, &tmp64, sizeof(tmp64), err, "Could not write magic: %s", strerror(errno));