plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit b7edc22192e7ae88584a14e8878fef9248d2b8a4
parent 5fc55a953e9dcd895d9be01c528f329e8dfc685e
Author: rsc <devnull@localhost>
Date:   Tue,  8 Feb 2005 20:35:31 +0000

send nul with choice

Diffstat:
Msrc/cmd/factotum/p9any.c | 10+++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/cmd/factotum/p9any.c b/src/cmd/factotum/p9any.c @@ -35,7 +35,7 @@ hasnul(void *v, int n) if(n > 0 && c[n-1] == '\0') return n; else - return n+1; + return AuthRpcMax; } static int @@ -220,10 +220,14 @@ found: /* f[i] is the chosen protocol, q the chosen domain */ attr = addattr(attr, "proto=%q dom=%q", f[i], q); c->state = "write choice"; + /* have a key: go for it */ - if(convprint(c, "%q %q", f[i], q) < 0 - || convwrite(c, "\0", 1) < 0) + s = estrappend(nil, "%q %q", f[i], q); + if(convwrite(c, s, strlen(s)+1) < 0){ + free(s); goto out; + } + free(s); if(version == 2){ c->state = "read ok";