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 */
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)
{
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;
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);
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
*/
writestr(fd, "", "challenge", 1);
if(auth_chuid(ai, 0) < 0)
fatal("newns: %r");
+ setnetuser(fd, ai->cuid);
auth_freeAI(ai);
return fd;
}
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);
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;