]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/cmd/ip/socksd.c
snoopy(8): avoid extra spaces in dhcp filter output
[plan9front.git] / sys / src / cmd / ip / socksd.c
index c7a487f7ba56f11e7d1f253036a57b630afcaa64..8e3ff19c69bbf1c1f660a6097826afdce6d9ebaf 100644 (file)
@@ -3,8 +3,8 @@
 #include <ip.h>
 
 int socksver;
-char *inside = "/net";
-char *outside = "/net";
+char inside[128];
+char outside[128];
 
 int
 str2addr(char *s, uchar *a)
@@ -78,6 +78,7 @@ addr2str(char *proto, uchar *a){
                case 0x03:
                        n = *a++;
                        port = nhgets(a+n);
+                       n = utfnlen((char*)a, n);
                        snprint(s, sizeof(s), "%s!%.*s!%d", proto, n, (char*)a, port);
                        return s;
                }
@@ -112,6 +113,7 @@ udprelay(int fd, char *dir)
 
        if((cfd = listen(dir, ldir)) < 0)
                return -1;
+       close(fd);      /* close inside udp server */
        if((fd = accept(cfd, ldir)) < 0)
                return -1;
 
@@ -203,9 +205,14 @@ main(int argc, char *argv[])
 
        fmtinstall('I', eipfmt);
 
+       setnetmtpt(inside, sizeof(inside), 0);
+       setnetmtpt(outside, sizeof(outside), 0);
        ARGBEGIN {
        case 'x':
-               outside = ARGF();
+               setnetmtpt(inside, sizeof(inside), ARGF());
+               break;
+       case 'o':
+               setnetmtpt(outside, sizeof(outside), ARGF());
                break;
        } ARGEND;