exportfs/import: cleanup
This commit is contained in:
parent
8f67fae1a0
commit
e9af32cc3a
|
@ -481,7 +481,7 @@ freefid(int nr)
|
||||||
for(f = *l; f; f = f->next) {
|
for(f = *l; f; f = f->next) {
|
||||||
if(f->nr == nr) {
|
if(f->nr == nr) {
|
||||||
if(f->mid) {
|
if(f->mid) {
|
||||||
sprint(buf, "/mnt/exportfs/%d", f->mid);
|
snprint(buf, sizeof(buf), "/mnt/exportfs/%d", f->mid);
|
||||||
unmount(0, buf);
|
unmount(0, buf);
|
||||||
psmap[f->mid] = 0;
|
psmap[f->mid] = 0;
|
||||||
}
|
}
|
||||||
|
@ -888,8 +888,7 @@ filter(int fd, char *cmd)
|
||||||
close(lfd);
|
close(lfd);
|
||||||
buf[len] = '\0';
|
buf[len] = '\0';
|
||||||
if ((s = strchr(buf, '\n')) != nil)
|
if ((s = strchr(buf, '\n')) != nil)
|
||||||
*s = '\0';
|
len = s - buf;
|
||||||
len = strlen(buf);
|
|
||||||
if (write(fd, buf, len) != len)
|
if (write(fd, buf, len) != len)
|
||||||
fatal("filter: cannot write port; %r");
|
fatal("filter: cannot write port; %r");
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ post(char *name, char *envname, int srvfd)
|
||||||
fd = create(name, OWRITE, 0600);
|
fd = create(name, OWRITE, 0600);
|
||||||
if(fd < 0)
|
if(fd < 0)
|
||||||
return;
|
return;
|
||||||
sprint(buf, "%d",srvfd);
|
snprint(buf, sizeof(buf), "%d", srvfd);
|
||||||
if(write(fd, buf, strlen(buf)) != strlen(buf))
|
if(write(fd, buf, strlen(buf)) != strlen(buf))
|
||||||
sysfatal("srv write: %r");
|
sysfatal("srv write: %r");
|
||||||
close(fd);
|
close(fd);
|
||||||
|
@ -187,12 +187,12 @@ main(int argc, char **argv)
|
||||||
encprotos[encproto]);
|
encprotos[encproto]);
|
||||||
|
|
||||||
if (encproto != Encnone && ealgs && ai) {
|
if (encproto != Encnone && ealgs && ai) {
|
||||||
uchar key[16];
|
uchar key[16], digest[SHA1dlen];
|
||||||
uchar digest[SHA1dlen];
|
|
||||||
char fromclientsecret[21];
|
char fromclientsecret[21];
|
||||||
char fromserversecret[21];
|
char fromserversecret[21];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
assert(ai->nsecret <= sizeof(key)-4);
|
||||||
memmove(key+4, ai->secret, ai->nsecret);
|
memmove(key+4, ai->secret, ai->nsecret);
|
||||||
|
|
||||||
/* exchange random numbers */
|
/* exchange random numbers */
|
||||||
|
@ -221,8 +221,11 @@ main(int argc, char **argv)
|
||||||
else if (filterp)
|
else if (filterp)
|
||||||
fd = filter(fd, filterp, argv[0]);
|
fd = filter(fd, filterp, argv[0]);
|
||||||
|
|
||||||
|
if(ai)
|
||||||
|
auth_freeAI(ai);
|
||||||
|
|
||||||
if(srvpost){
|
if(srvpost){
|
||||||
sprint(srvfile, "/srv/%s", srvpost);
|
snprint(srvfile, sizeof(srvfile), "/srv/%s", srvpost);
|
||||||
remove(srvfile);
|
remove(srvfile);
|
||||||
post(srvfile, srvpost, fd);
|
post(srvfile, srvpost, fd);
|
||||||
}
|
}
|
||||||
|
@ -256,7 +259,7 @@ old9p(int fd)
|
||||||
if(pipe(p) < 0)
|
if(pipe(p) < 0)
|
||||||
sysfatal("pipe: %r");
|
sysfatal("pipe: %r");
|
||||||
|
|
||||||
switch(rfork(RFPROC|RFFDG|RFNAMEG)) {
|
switch(rfork(RFPROC|RFMEM|RFFDG|RFNAMEG)) {
|
||||||
case -1:
|
case -1:
|
||||||
sysfatal("rfork srvold9p: %r");
|
sysfatal("rfork srvold9p: %r");
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -371,29 +374,26 @@ usage(void)
|
||||||
int
|
int
|
||||||
filter(int fd, char *cmd, char *host)
|
filter(int fd, char *cmd, char *host)
|
||||||
{
|
{
|
||||||
|
char addr[128], buf[256], *s, *file, *argv[16];
|
||||||
int p[2], len, argc;
|
int p[2], len, argc;
|
||||||
char newport[256], buf[256], *s;
|
|
||||||
char *argv[16], *file, *pbuf;
|
|
||||||
|
|
||||||
if ((len = read(fd, newport, sizeof newport - 1)) < 0)
|
if ((len = read(fd, buf, sizeof buf - 1)) < 0)
|
||||||
sysfatal("filter: cannot write port; %r");
|
sysfatal("filter: cannot write port; %r");
|
||||||
newport[len] = '\0';
|
buf[len] = '\0';
|
||||||
|
|
||||||
if ((s = strchr(newport, '!')) == nil)
|
if ((s = strrchr(buf, '!')) == nil)
|
||||||
sysfatal("filter: illegally formatted port %s", newport);
|
sysfatal("filter: illegally formatted port %s", buf);
|
||||||
|
snprint(addr, sizeof(addr), "%s", netmkaddr(host, "tcp", s+1));
|
||||||
strecpy(buf, buf+sizeof buf, netmkaddr(host, "tcp", "0"));
|
|
||||||
pbuf = strrchr(buf, '!');
|
|
||||||
strecpy(pbuf, buf+sizeof buf, s);
|
|
||||||
|
|
||||||
if(debug)
|
if(debug)
|
||||||
fprint(2, "filter: remote port %s\n", newport);
|
fprint(2, "filter: remote %s\n", addr);
|
||||||
|
|
||||||
argc = tokenize(cmd, argv, nelem(argv)-2);
|
snprint(buf, sizeof(buf), "%s", cmd);
|
||||||
|
argc = tokenize(buf, argv, nelem(argv)-2);
|
||||||
if (argc == 0)
|
if (argc == 0)
|
||||||
sysfatal("filter: empty command");
|
sysfatal("filter: empty command");
|
||||||
argv[argc++] = "-c";
|
argv[argc++] = "-c";
|
||||||
argv[argc++] = buf;
|
argv[argc++] = addr;
|
||||||
argv[argc] = nil;
|
argv[argc] = nil;
|
||||||
file = argv[0];
|
file = argv[0];
|
||||||
if (s = strrchr(argv[0], '/'))
|
if (s = strrchr(argv[0], '/'))
|
||||||
|
@ -402,16 +402,16 @@ filter(int fd, char *cmd, char *host)
|
||||||
if(pipe(p) < 0)
|
if(pipe(p) < 0)
|
||||||
sysfatal("pipe: %r");
|
sysfatal("pipe: %r");
|
||||||
|
|
||||||
switch(rfork(RFNOWAIT|RFPROC|RFFDG)) {
|
switch(rfork(RFNOWAIT|RFPROC|RFMEM|RFFDG)) {
|
||||||
case -1:
|
case -1:
|
||||||
sysfatal("rfork record module: %r");
|
sysfatal("filter: rfork; %r");
|
||||||
case 0:
|
case 0:
|
||||||
dup(p[0], 1);
|
dup(p[0], 1);
|
||||||
dup(p[0], 0);
|
dup(p[0], 0);
|
||||||
close(p[0]);
|
close(p[0]);
|
||||||
close(p[1]);
|
close(p[1]);
|
||||||
exec(file, argv);
|
exec(file, argv);
|
||||||
sysfatal("exec record module: %r");
|
sysfatal("filter: exec; %r");
|
||||||
default:
|
default:
|
||||||
close(fd);
|
close(fd);
|
||||||
close(p[0]);
|
close(p[0]);
|
||||||
|
|
Loading…
Reference in a new issue