diff options
author | rsc <devnull@localhost> | 2004-05-23 00:59:17 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2004-05-23 00:59:17 +0000 |
commit | a09e80f9c414ffc815641d49836be3a2a6a07800 (patch) | |
tree | 0854a21767989f10d109db6949aa3861e32a579d /src/libventi | |
parent | 7e0e6522e576bc35b55a7182c23fb752cc1ec636 (diff) | |
download | plan9port-a09e80f9c414ffc815641d49836be3a2a6a07800.tar.gz plan9port-a09e80f9c414ffc815641d49836be3a2a6a07800.tar.bz2 plan9port-a09e80f9c414ffc815641d49836be3a2a6a07800.zip |
various debugging
Diffstat (limited to 'src/libventi')
-rw-r--r-- | src/libventi/client.c | 29 | ||||
-rw-r--r-- | src/libventi/conn.c | 2 | ||||
-rw-r--r-- | src/libventi/packet.c | 8 | ||||
-rw-r--r-- | src/libventi/rpc.c | 3 | ||||
-rw-r--r-- | src/libventi/send.c | 15 | ||||
-rw-r--r-- | src/libventi/server.c | 9 |
6 files changed, 51 insertions, 15 deletions
diff --git a/src/libventi/client.c b/src/libventi/client.c index c16fe483..b9e866fc 100644 --- a/src/libventi/client.c +++ b/src/libventi/client.c @@ -2,11 +2,15 @@ #include <libc.h> #include <venti.h> +int ventidoublechecksha1 = 1; + static int vtfcallrpc(VtConn *z, VtFcall *ou, VtFcall *in) { Packet *p; + if(chattyventi) + fprint(2, "%s -> %F\n", argv0, ou); p = vtfcallpack(ou); if(p == nil) return -1; @@ -16,6 +20,8 @@ vtfcallrpc(VtConn *z, VtFcall *ou, VtFcall *in) packetfree(p); return -1; } + if(chattyventi) + fprint(2, "%s <- %F\n", argv0, in); if(in->type == VtRerror){ werrstr(in->error); vtfcallclear(in); @@ -70,11 +76,13 @@ vtreadpacket(VtConn *z, uchar score[VtScoreSize], uint type, int n) packetfree(rx.data); return nil; } - packetsha1(rx.data, tx.score); - if(memcmp(score, tx.score, VtScoreSize) != 0){ - werrstr("read asked for %V got %V", score, tx.score); - packetfree(rx.data); - return nil; + if(ventidoublechecksha1){ + packetsha1(rx.data, tx.score); + if(memcmp(score, tx.score, VtScoreSize) != 0){ + werrstr("read asked for %V got %V", score, tx.score); + packetfree(rx.data); + return nil; + } } return rx.data; @@ -102,12 +110,15 @@ vtwritepacket(VtConn *z, uchar score[VtScoreSize], uint type, Packet *p) tx.type = VtTwrite; tx.dtype = type; tx.data = p; - packetsha1(p, score); + if(ventidoublechecksha1) + packetsha1(p, score); if(vtfcallrpc(z, &tx, &rx) < 0) return -1; - if(memcmp(score, rx.score, VtScoreSize) != 0){ - werrstr("sha1 hash mismatch: want %V got %V", score, rx.score); - return -1; + if(ventidoublechecksha1){ + if(memcmp(score, rx.score, VtScoreSize) != 0){ + werrstr("sha1 hash mismatch: want %V got %V", score, rx.score); + return -1; + } } return 0; } diff --git a/src/libventi/conn.c b/src/libventi/conn.c index 3fa6fbe5..3f419790 100644 --- a/src/libventi/conn.c +++ b/src/libventi/conn.c @@ -3,6 +3,8 @@ #include <venti.h> #include "queue.h" +int chattyventi; + VtConn* vtconn(int infd, int outfd) { diff --git a/src/libventi/packet.c b/src/libventi/packet.c index 7ca6be86..a10b7b45 100644 --- a/src/libventi/packet.c +++ b/src/libventi/packet.c @@ -113,7 +113,7 @@ packetalloc(void) p->last = nil; p->next = nil; -if(0)fprint(2, "packetalloc %p from %08lux %08lux %08lux\n", p, *((uint*)&p+2), *((uint*)&p+3), *((uint*)&p+4)); +//if(0)fprint(2, "packetalloc %p from %08lux %08lux %08lux\n", p, *((uint*)&p+2), *((uint*)&p+3), *((uint*)&p+4)); return p; } @@ -196,6 +196,7 @@ packetsplit(Packet *p, int n) Packet *pp; Frag *f, *ff; + if(0) fprint(2, "packetsplit %p %d\n", p, n); NOTFREE(p); if(n < 0 || n > p->size) { werrstr(EPacketSize); @@ -235,6 +236,7 @@ packetsplit(Packet *p, int n) int packetconsume(Packet *p, uchar *buf, int n) { + if(0) fprint(2, "packetconsume %p %d\n", p, n); NOTFREE(p); if(buf && packetcopy(p, buf, 0, n) < 0) return -1; @@ -246,6 +248,7 @@ packettrim(Packet *p, int offset, int n) { Frag *f, *ff; + if(0) fprint(2, "packettrim %p %d %d\n", p, offset, n); NOTFREE(p); if(offset < 0 || offset > p->size) { werrstr(EPacketOffset); @@ -341,6 +344,7 @@ packettrailer(Packet *p, int n) Mem *m; Frag *f; + if(0) fprint(2, "packettrailer %p %d\n", p, n); NOTFREE(p); if(n <= 0 || n > MaxFragSize) { werrstr(EPacketSize); @@ -603,7 +607,7 @@ uint packetsize(Packet *p) { NOTFREE(p); - if(0) { + if(1) { Frag *f; int size = 0; diff --git a/src/libventi/rpc.c b/src/libventi/rpc.c index c6119e45..a3914530 100644 --- a/src/libventi/rpc.c +++ b/src/libventi/rpc.c @@ -3,6 +3,9 @@ * could turn this into a generic library routine rather * than keep it Venti specific. A user-level 9P client * could use something like this too. + * + * (Actually it does - this should be replaced with libmux, + * which should be renamed librpcmux.) * * This is a little more complicated than it might be * because we want it to work well within and without libthread. diff --git a/src/libventi/send.c b/src/libventi/send.c index a72a6c23..fd6fa57a 100644 --- a/src/libventi/send.c +++ b/src/libventi/send.c @@ -59,7 +59,9 @@ _vtrecv(VtConn *z) while(size < 2) { b = packettrailer(p, MaxFragSize); assert(b != nil); + if(0) fprint(2, "%d read hdr\n", getpid()); n = read(z->infd, b, MaxFragSize); + if(0) fprint(2, "%d got %d (%r)\n", getpid(), n); if(n <= 0) goto Err; size += n; @@ -72,13 +74,18 @@ _vtrecv(VtConn *z) size -= 2; while(size < len) { - n = len - size; - if(n > MaxFragSize) + // n = len - size; + // if(n > MaxFragSize) n = MaxFragSize; b = packettrailer(p, n); - if(readn(z->infd, b, n) != n) + if(0) fprint(2, "%d read body %d\n", getpid(), n); + n = read(z->infd, b, n); + if(0) fprint(2, "%d got %d (%r)\n", getpid(), n); + if(n > 0) + size += n; + packettrim(p, 0, size); + if(n <= 0) goto Err; - size += n; } p = packetsplit(p, len); return p; diff --git a/src/libventi/server.c b/src/libventi/server.c index 837cbf45..8aa95798 100644 --- a/src/libventi/server.c +++ b/src/libventi/server.c @@ -102,7 +102,12 @@ connproc(void *v) Packet *p; VtReq *r; int fd; +static int first=1; +if(first){ + first=0; + fmtinstall('F', vtfcallfmt); +} r = nil; sc = v; sc->c = nil; @@ -139,6 +144,8 @@ connproc(void *v) fprint(2, "bad packet on %s: %r\n", sc->dir); continue; } + if(chattyventi) + fprint(2, "%s <- %F\n", argv0, &r->tx); packetfree(p); if(r->tx.type == VtTgoodbye) break; @@ -182,6 +189,8 @@ vtrespond(VtReq *r) abort(); if(r->rx.type != r->tx.type+1 && r->rx.type != VtRerror) abort(); + if(chattyventi) + fprint(2, "%s -> %F\n", argv0, &r->rx); if((p = vtfcallpack(&r->rx)) == nil){ fprint(2, "fcallpack on %s: %r\n", sc->dir); packetfree(p); |