9fans archive / 1998 / 04 / 10 / prev next
From: Jean Mehat jm@mim...
Subject: [9fans] a problem with the 9p protocol?
Date: Sat, 4 Apr 1998 07:58:25 +0200 (CEST)
I suppose I missed something in the 9p protocol; has anyone any clue?
I was trying to make a program to filter the 9p messages, a la cfs. The
simplest filter has a simple loop:
for(;;){
if ((n = read(client, buffer, sizeof buffer)) < 0)
error("read client");
else
dump("client->server", buffer, n);
if (write(serveur, buffer, n) < n)
error("write server");
if ((n = read(serveur, buffer, sizeof buffer)) < 0)
error("read server");
else
dump("serveur->client", buffer, n);
if (write(client, buffer, n) < n)
error("write client");
}
If I run it with:
ramfs -s
filter
mount /srv/filter /tmp/mnt
it seems to work: I can manipulate files in /tmp/mnt. But if I first mount and
then unmount the ramfs with:
ramfs -s
mount -c /srv/ramfs /tmp/mnt
unmount /tmp/mnt
filter
mount /srv/filter /tmp/mnt
I get:
client->server: Tsession tag 65535 # (from dump)
write server: inappropriate use of fd
mount: mount /srv/filtre /tmp/mnt: fsession: i/o error during authentication
Where is the problem?