various bug fixes

This commit is contained in:
rsc 2004-05-05 04:22:16 +00:00
parent 4f48d1d4f7
commit 2e965b3324
12 changed files with 82 additions and 41 deletions

View file

@ -75,6 +75,7 @@ vtrpc(VtConn *z, Packet *p)
while(!r->done){
qunlock(&z->lk);
if((p = vtrecv(z)) == nil){
werrstr("unexpected eof on venti connection");
z->muxer = 0;
return nil;
}

View file

@ -8,29 +8,31 @@ vtsrvhello(VtConn *z)
VtFcall tx, rx;
Packet *p;
if((p = vtrecv(z)) == nil)
return 0;
if((p = vtrecv(z)) == nil){
werrstr("unexpected eof on venti connection");
return -1;
}
if(vtfcallunpack(&tx, p) < 0){
packetfree(p);
return 0;
return -1;
}
packetfree(p);
if(tx.type != VtThello){
vtfcallclear(&tx);
werrstr("bad packet type %d; want Thello %d", tx.type, VtThello);
return 0;
return -1;
}
if(tx.tag != 0){
vtfcallclear(&tx);
werrstr("bad tag in hello");
return 0;
return -1;
}
if(strcmp(tx.version, z->version) != 0){
vtfcallclear(&tx);
werrstr("bad version in hello");
return 0;
return -1;
}
vtfree(z->uid);
z->uid = tx.uid;
@ -42,9 +44,9 @@ vtsrvhello(VtConn *z)
rx.tag = tx.tag;
rx.sid = "anonymous";
if((p = vtfcallpack(&rx)) == nil)
return 0;
return -1;
if(vtsend(z, p) < 0)
return 0;
return -1;
return 1;
return 0;
}