wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 6aa50a0d2b8d2d699f48eecec30508298e6aae6d
parent 48ed24c48825b31c79f280b74a1f5d4482197bff
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Wed,  8 Feb 2006 00:03:14 +0100

implemented RRemove muxing


Diffstat:
cmd/wmiifs.c | 37++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)

diff --git a/cmd/wmiifs.c b/cmd/wmiifs.c @@ -468,10 +468,20 @@ xopen(IXPConn *c, Fcall *fcall) } static void -mntremove(IXPConn *c, Fcall *fcall) +mntclunkremove(IXPConn *c, Fcall *fcall) { + Bind *b = rx_to_bind(c); + IXPMap *m; - + if(!(m = ixp_server_fid2map(b->tx, b->fcall.fid))) { + ixp_server_respond_error(b->tx, &b->fcall, Enofid); + xunbind(b); + return; + } + cext_array_detach((void **)b->tx->map, m, &b->tx->mapsz); + free(m); + ixp_server_respond_fcall(b->tx, &b->fcall); + xunbind(b); } static char * @@ -632,25 +642,6 @@ xwrite(IXPConn *c, Fcall *fcall) return nil; } -static void -mntclunk(IXPConn *c, Fcall *fcall) -{ - Bind *b = rx_to_bind(c); - IXPMap *m; - - if(!(m = ixp_server_fid2map(b->tx, b->fcall.fid))) { - ixp_server_respond_error(b->tx, &b->fcall, Enofid); - xunbind(b); - return; - } - fprintf(stderr, "mntclunk fid=%d\n", m->fid); - cext_array_detach((void **)b->tx->map, m, &b->tx->mapsz); - free(m); - b->fcall.id = RCLUNK; - ixp_server_respond_fcall(b->tx, &b->fcall); - xunbind(b); -} - char * xclunk(IXPConn *c, Fcall *fcall) { @@ -678,8 +669,8 @@ do_mnt_fcall(IXPConn *c) fprintf(stderr, "mntfcall=%d\n", fcall.id); switch(fcall.id) { case RWALK: mntwalk(c, &fcall); break; - case RREMOVE: mntremove(c, &fcall); break; - case RCLUNK: mntclunk(c, &fcall); break; + case RREMOVE: + case RCLUNK: mntclunkremove(c, &fcall); break; case RCREATE: case ROPEN: case RREAD: