]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/cmd/cpu.c
ip/tftpd: use procsetuser() instead of writing #c/user
[plan9front.git] / sys / src / cmd / cpu.c
index e45df8cacaffa397fdc423f3ef415c598b3d9701..3fb3a6d5efc6517e1b8f29db7df0b1cd7728633c 100644 (file)
@@ -37,7 +37,7 @@ char  *patternfile;
 char   *origargs;
 
 char   *srvname = "ncpu";
-char   *exportfs = "/bin/exportfs";
+char   *exportfs = "/bin/oexportfs";
 char   *ealgs = "rc4_256 sha1";
 
 /* message size for exportfs; may be larger so we can do big graphics in CPU window */
@@ -116,31 +116,6 @@ procgetname(void)
        return strdup(lp+1);
 }
 
-/*
- * based on libthread's threadsetname, but drags in less library code.
- * actually just sets the arguments displayed.
- */
-void
-procsetname(char *fmt, ...)
-{
-       int fd;
-       char *cmdname;
-       char buf[128];
-       va_list arg;
-
-       va_start(arg, fmt);
-       cmdname = vsmprint(fmt, arg);
-       va_end(arg);
-       if (cmdname == nil)
-               return;
-       snprint(buf, sizeof buf, "#p/%d/args", getpid());
-       if((fd = open(buf, OWRITE)) >= 0){
-               write(fd, cmdname, strlen(cmdname)+1);
-               close(fd);
-       }
-       free(cmdname);
-}
-
 void
 main(int argc, char **argv)
 {
@@ -152,7 +127,7 @@ main(int argc, char **argv)
        origargs = procgetname();
        /* see if we should use a larger message size */
        fd = open("/dev/draw", OREAD);
-       if(fd > 0){
+       if(fd >= 0){
                ms = iounit(fd);
                if(msgsize < ms+IOHDRSZ)
                        msgsize = ms+IOHDRSZ;
@@ -356,7 +331,7 @@ remoteside(void)
        strcpy(buf, VERSION9P);
        if(fversion(fd, 64*1024, buf, sizeof buf) < 0)
                exits("fversion failed");
-       if(mount(fd, -1, "/mnt/term", MCREATE|MREPL, "") < 0)
+       if(mount(fd, -1, "/mnt/term", MCREATE|MREPL, "") == -1)
                exits("mount failed");
 
        close(fd);
@@ -482,6 +457,19 @@ readln(char *buf, int n)
        return p-buf;
 }
 
+/*
+ *  chown network connection
+ */
+static void
+setnetuser(int fd, char *user)
+{
+       Dir nd;
+       nulldir(&nd);
+       nd.mode = 0660;
+       nd.uid = user;
+       dirfwstat(fd, &nd);
+}
+
 /*
  *  user level challenge/response
  */
@@ -542,6 +530,7 @@ netkeysrvauth(int fd, char *user)
        writestr(fd, "", "challenge", 1);
        if(auth_chuid(ai, 0) < 0)
                fatal("newns: %r");
+       setnetuser(fd, ai->cuid);
        auth_freeAI(ai);
        return fd;
 }
@@ -653,6 +642,7 @@ srvp9auth(int fd, char *user)
                return -1;
        if(auth_chuid(ai, nil) < 0)
                fatal("newns: %r");
+       setnetuser(fd, ai->cuid);
        snprint(user, MaxStr, "%s", ai->cuid);
        fd = sslsetup(fd, ai->secret, ai->nsecret, 0);
        auth_freeAI(ai);
@@ -1190,7 +1180,7 @@ lclnoteproc(int netfd)
                return;
        case 0:
                close(pfd[0]);
-               if(mount(pfd[1], -1, "/dev", MBEFORE, "") < 0)
+               if(mount(pfd[1], -1, "/dev", MBEFORE, "") == -1)
                        fprint(2, "cpu: can't mount note proc: %r\n");
                close(pfd[1]);
                return;