aboutsummaryrefslogtreecommitdiff
path: root/src/lib9pclient/fs.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2008-07-04 02:46:05 -0400
committerRuss Cox <rsc@swtch.com>2008-07-04 02:46:05 -0400
commit382ae73f24c4566b2948d72f65ff68dc35857556 (patch)
tree749b031ddc640bd624e78884abf946a3acf8005c /src/lib9pclient/fs.c
parentac5a97e6b3b136c1ab669ae19a813a81cce673eb (diff)
downloadplan9port-382ae73f24c4566b2948d72f65ff68dc35857556.tar.gz
plan9port-382ae73f24c4566b2948d72f65ff68dc35857556.tar.bz2
plan9port-382ae73f24c4566b2948d72f65ff68dc35857556.zip
lib9pclient: add support for 9P2000.u
Diffstat (limited to 'src/lib9pclient/fs.c')
-rw-r--r--src/lib9pclient/fs.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib9pclient/fs.c b/src/lib9pclient/fs.c
index c6b1c3e9..b87811f3 100644
--- a/src/lib9pclient/fs.c
+++ b/src/lib9pclient/fs.c
@@ -49,12 +49,15 @@ fsinit(int fd)
fs->iosend = ioproc();
muxinit(&fs->mux);
- strcpy(fs->version, "9P2000");
+ strcpy(fs->version, "9P2000.u");
if((n = fsversion(fs, 8192, fs->version, sizeof fs->version)) < 0){
werrstr("fsversion: %r");
_fsunmount(fs);
return nil;
}
+ if(strcmp(fs->version, "9P2000.u") == 0)
+ fs->dotu = 1;
+fprint(2, "speaking %d\n", fs->dotu);
fs->msize = n;
return fs;
}
@@ -215,7 +218,7 @@ _fsrpc(CFsys *fs, Fcall *tx, Fcall *rx, void **freep)
tx->tag = 0;
if(chatty9pclient)
fprint(2, "<- %F\n", tx);
- nn = convS2M(tx, tpkt, n);
+ nn = convS2Mu(tx, tpkt, n, fs->dotu);
if(nn != n){
free(tpkt);
werrstr("lib9pclient: sizeS2M convS2M mismatch");
@@ -229,7 +232,7 @@ _fsrpc(CFsys *fs, Fcall *tx, Fcall *rx, void **freep)
return -1;
}
n = GBIT32((uchar*)rpkt);
- nn = convM2S(rpkt, n, rx);
+ nn = convM2Su(rpkt, n, rx, fs->dotu);
if(nn != n){
free(rpkt);
werrstr("lib9pclient: convM2S packet size mismatch %d %d", n, nn);