From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29086 invoked from network); 10 Sep 2001 15:38:06 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 10 Sep 2001 15:38:06 -0000 Received: (qmail 18823 invoked by alias); 10 Sep 2001 15:37:59 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 15780 Received: (qmail 18809 invoked from network); 10 Sep 2001 15:37:58 -0000 Date: Mon, 10 Sep 2001 11:37:56 -0400 From: Clint Adams To: Oliver Kiddle Cc: zsh-workers@sunsite.dk Subject: Re: PATCH: ztcp Message-ID: <20010910113756.A29629@dman.com> References: <20010909200649.A17535@dman.com> <20010910110926.21520.qmail@web9305.mail.yahoo.com> <20010910112029.A29473@dman.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20010910112029.A29473@dman.com>; from clint@zsh.org on Mon, Sep 10, 2001 at 11:20:29AM -0400 > Well, here goes. I am utterly perplexed because, > if I am not hallucinating, the desthost = ztrdup(arg[0]); > is actually passing the args[0] pointer, and thus > it chokes. I was hallucinating, so this is unnecessary. Index: Src/Modules/tcp.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Modules/tcp.c,v retrieving revision 1.13 diff -u -r1.13 tcp.c --- Src/Modules/tcp.c 2001/09/10 15:23:38 1.13 +++ Src/Modules/tcp.c 2001/09/10 15:36:07 @@ -386,7 +386,7 @@ bin_ztcp(char *nam, char **args, char *ops, int func) { int herrno, err=1, destport, force=0, verbose=0, test=0, targetfd=0, len; - char **addrp, *desthost, *localname, *remotename, **arg = args; + char **addrp, *desthost, *localname, *remotename, **dargs; struct hostent *zthost = NULL, *ztpeer = NULL; struct servent *srv; Tcp_session sess = NULL; @@ -401,25 +401,27 @@ test = 1; if (ops['d']) { - targetfd = atoi(arg[0]); - arg++; + targetfd = atoi(args[0]); + dargs = args + 1; if (!targetfd) { zwarnnam(nam, "%s is an invalid argument to -d", args[0], 0); return 1; } } + else + dargs = args; if (ops['c']) { - if (!arg[0]) { + if (!dargs[0]) { tcp_cleanup(); } else { - targetfd = atoi(arg[0]); + targetfd = atoi(dargs[0]); sess = zts_byfd(targetfd); if(!targetfd) { - zwarnnam(nam, "%s is an invalid argument to -c", arg[0], 0); + zwarnnam(nam, "%s is an invalid argument to -c", dargs[0], 0); return 1; } @@ -435,7 +437,7 @@ } else { - zwarnnam(nam, "fd %s not found in tcp table", arg[0], 0); + zwarnnam(nam, "fd %s not found in tcp table", dargs[0], 0); return 1; } } @@ -443,16 +445,16 @@ else if (ops['l']) { int lport = 0; - if (!arg[0]) { + if (!dargs[0]) { zwarnnam(nam, "-l requires an argument", NULL, 0); return 1; } - srv = getservbyname(arg[0], "tcp"); + srv = getservbyname(dargs[0], "tcp"); if (srv) lport = srv->s_port; else - lport = htons(atoi(arg[0])); + lport = htons(atoi(dargs[0])); if (!lport) { zwarnnam(nam, "bad service name or port number", NULL, 0); return 1; } @@ -511,12 +513,12 @@ { int lfd, rfd; - if (!arg[0]) { + if (!dargs[0]) { zwarnnam(nam, "-a requires an argument", NULL, 0); return 1; } - lfd = atoi(arg[0]); + lfd = atoi(dargs[0]); if (!lfd) { zwarnnam(nam, "invalid numerical argument", NULL, 0); @@ -525,7 +527,7 @@ sess = zts_byfd(lfd); if (!sess) { - zwarnnam(nam, "fd %s is not registered as a tcp connection", arg[0], 0); + zwarnnam(nam, "fd %s is not registered as a tcp connection", dargs[0], 0); return 1; } @@ -575,7 +577,7 @@ else { - if (!arg[0]) { + if (!dargs[0]) { for(sess = zts_head(); sess != NULL; sess = zts_next(sess)) { if (sess->fd != -1) @@ -595,19 +597,19 @@ } return 0; } - else if (!arg[1]) { + else if (!dargs[1]) { destport = htons(23); } else { - srv = getservbyname(arg[1],"tcp"); + srv = getservbyname(dargs[1],"tcp"); if (srv) destport = srv->s_port; else - destport = htons(atoi(arg[1])); + destport = htons(atoi(dargs[1])); } - desthost = ztrdup(arg[0]); + desthost = ztrdup(dargs[0]); zthost = zsh_getipnodebyname(desthost, AF_INET, 0, &herrno); if (!zthost || errflag) {