wmii

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

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

yes! wmiifs works (though needs polishing and produces ugly debug info)


Diffstat:
cmd/wmiibar.c | 1+
cmd/wmiifs.c | 21++++++++++++---------
2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/cmd/wmiibar.c b/cmd/wmiibar.c @@ -116,6 +116,7 @@ draw() unsigned int w = 0; Draw d = { 0 }; + d.align = WEST; d.gc = gc; d.drawable = pmap; d.rect = brect; diff --git a/cmd/wmiifs.c b/cmd/wmiifs.c @@ -325,8 +325,7 @@ mntwalk(IXPConn *c, Fcall *fcall) dir = b->fcall.wqid[0]; /* mount point */ for(nwqid = 0; nwqid < fcall->nwqid; nwqid++) b->fcall.wqid[nwqid + 1] = fcall->wqid[nwqid]; - if(!fcall->nwqid) - nwqid++; + nwqid++; if(!nwqid) { fprintf(stderr, "%s", "wmiifs: mntwalk nwqid wrong \n"); @@ -347,8 +346,8 @@ mntwalk(IXPConn *c, Fcall *fcall) m->fid = b->fcall.newfid; fprintf(stderr, "%s", "wmiifs: fffaoooo\n"); } - fprintf(stderr, "wmiifs: success mntwalk m->fid = %d (b->fcall.newfid=%d)\n", - m->fid, b->fcall.newfid); + fprintf(stderr, "wmiifs: success mntwalk b-tx=%x m->fid = %d (b->fcall.newfid=%d)\n", + b->tx, m->fid, b->fcall.newfid); b->fid = m->fid; b->fcall.id = RWALK; b->fcall.nwqid = nwqid; @@ -359,8 +358,9 @@ static char * mntrequest(Bind *b, Fcall *tx) { unsigned int msize; - fprintf(stderr, "mntrequest: welcome, tx->id=%d\n", tx->id); + fprintf(stderr, "mntrequest: welcome, tx=%x tx->id=%d fid=%d\n", b->tx, tx->id, tx->fid); memcpy(&b->client.fcall, tx, sizeof(Fcall)); + memcpy(&b->fcall, tx, sizeof(Fcall)); msize = ixp_fcall_to_msg(&b->client.fcall, msg, IXP_MAX_MSG); b->client.errstr = 0; if(ixp_send_message(b->client.fd, msg, msize, &b->client.errstr) != msize) { @@ -378,7 +378,7 @@ xwalk(IXPConn *c, Fcall *fcall) IXPMap *m; Mount *mnt; - fprintf(stderr, "xwalk: welcome fcall->wname[0]=%s\n", fcall->wname[0]); + fprintf(stderr, "xwalk: welcome fcall->wname[0]=%s fcall->fid=%d\n", fcall->wname[0], fcall->fid); if(!(m = ixp_server_fid2map(c, fcall->fid))) return Enofid; if(fcall->fid != fcall->newfid && (ixp_server_fid2map(c, fcall->newfid))) @@ -388,8 +388,9 @@ xwalk(IXPConn *c, Fcall *fcall) dir = m->qid; if((mnt = name_to_mount(fcall->wname[0]))) { unsigned int i; - Bind *b = xbind(mnt->address, fcall->fid, c); - if(!b) + Bind *b; + + if(!(b = xbind(mnt->address, fcall->fid, c))) return Enoserv; memcpy(&b->client.fcall, fcall, sizeof(Fcall)); @@ -565,7 +566,7 @@ xstat(IXPConn *c, Fcall *fcall) IXPMap *m = ixp_server_fid2map(c, fcall->fid); Bind *b; char *name; - fprintf(stderr, "xstat: welcome, fcall->fid=%d\n", fcall->fid); + fprintf(stderr, "xstat: welcome, c=%x fcall->fid=%d\n", c, fcall->fid); if(!m) return Enofid; fprintf(stderr, "xstat: now fetching bind, fcall->fid=%d\n", fcall->fid); @@ -642,10 +643,12 @@ mntclunk(IXPConn *c, Fcall *fcall) 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 *