]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/cmd/cpu.c
fix filetype detecton by suffix so that multiple dots dont confuse it. (thanks kvik)
[plan9front.git] / sys / src / cmd / cpu.c
index e45df8cacaffa397fdc423f3ef415c598b3d9701..98532502259875caf1fea3fe708ce6edbd47a4d7 100644 (file)
@@ -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;
@@ -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);