summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2017-11-01 20:43:35 +0100
committerSimon Rettberg2017-11-01 20:43:35 +0100
commit17a9fdfbf2b1fcbd2e3d622d1103995293d5579a (patch)
tree3ab447afc01378a2b9d4ec34688d57e3b43cd15d
parent[FUSE] Improve log messages a bit (diff)
downloaddnbd3-17a9fdfbf2b1fcbd2e3d622d1103995293d5579a.tar.gz
dnbd3-17a9fdfbf2b1fcbd2e3d622d1103995293d5579a.tar.xz
dnbd3-17a9fdfbf2b1fcbd2e3d622d1103995293d5579a.zip
[SERVER] Since fuse client assumed no backwards compat before v3, lie to clients
If client reports protocol version < 3 on connect, just pretend we're at the same version. This sucks but we can't update servers before clients otherwise. :(
-rw-r--r--src/server/net.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/server/net.c b/src/server/net.c
index e4ec666..5866f25 100644
--- a/src/server/net.c
+++ b/src/server/net.c
@@ -287,7 +287,7 @@ void* net_handleNewConnection(void *clientPtr)
timing_get( &image->atime );
spin_unlock( &image->lock );
serializer_reset_write( &payload );
- serializer_put_uint16( &payload, PROTOCOL_VERSION );
+ serializer_put_uint16( &payload, client_version < 3 ? client_version : PROTOCOL_VERSION ); // XXX: Since messed up fuse client was messed up before :(
serializer_put_string( &payload, image->name );
serializer_put_uint16( &payload, (uint16_t)image->rid );
serializer_put_uint64( &payload, image->virtualFilesize );