2 #include "../port/lib.h"
6 #include "../port/error.h"
11 char hostdomain[DOMLEN];
14 * return true if current user is eve
19 return strcmp(eve, up->user) == 0;
23 sysfversion(va_list list)
25 int msize, arglen, fd;
29 fd = va_arg(list, int);
30 msize = va_arg(list, int);
31 vers = va_arg(list, char*);
32 arglen = va_arg(list, int);
33 validaddr((uintptr)vers, arglen, 1);
34 /* check there's a NUL in the version string */
35 if(arglen <= 0 || memchr(vers, 0, arglen) == nil)
37 c = fdtochan(fd, ORDWR, 0, 1);
42 msize = mntversion(c, vers, msize, arglen);
49 sys_fsession(va_list list)
55 /* deprecated; backwards compatibility only */
56 fd = va_arg(list, int);
57 str = va_arg(list, char*);
58 len = va_arg(list, uint);
61 validaddr((uintptr)str, len, 1);
68 sysfauth(va_list list)
74 fd = va_arg(list, int);
75 aname = va_arg(list, char*);
76 validaddr((uintptr)aname, 1, 0);
77 aname = validnamedup(aname, 1);
82 c = fdtochan(fd, ORDWR, 0, 1);
88 ac = mntauth(c, aname);
89 /* at this point ac is responsible for keeping c alive */
92 poperror(); /* aname */
100 /* always mark it close on exec */
101 fd = newfd(ac, OCEXEC);
110 * called by devcons() for user device
112 * anyone can become none
115 userwrite(char *a, int n)
117 if(n!=4 || strncmp(a, "none", 4)!=0)
124 * called by devcons() for host owner/domain
126 * writing hostowner also sets user
129 hostownerwrite(char *a, int n)
142 renameuser(eve, buf);
143 srvrenameuser(eve, buf);
144 shrrenameuser(eve, buf);
151 hostdomainwrite(char *a, int n)
157 if(n <= 0 || n >= DOMLEN)
159 memset(buf, 0, DOMLEN);
163 memmove(hostdomain, buf, DOMLEN);