tsend nul with choice - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit b7edc22192e7ae88584a14e8878fef9248d2b8a4
parent 5fc55a953e9dcd895d9be01c528f329e8dfc685e
Author: rsc 
Date:   Tue,  8 Feb 2005 20:35:31 +0000

send nul with choice

Diffstat:
  M src/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
t@@ -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
t@@ -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";