was going to say the same, with either of these, ok nicm
On Sat, Jul 07, 2012 at 04:33:45PM +0300, Lazaros Koromilas wrote: > On Sat, Jul 07, 2012 at 07:34:28AM -0300, Christiano F. Haesbaert wrote: > > How about this one ? > > It's your original idea, but I don't like that extra indentation level, > > we are already too deep. > > Yes, less identation is always good! The "multiple hosts" part > in the manpage could become one of the following, but it's clear > enough already. > > "[...] and it can receive UDP datagrams from multiple hosts." > "[...] and it receives all UDP datagrams arriving at the port." > > > > > > > Index: nc.1 > > =================================================================== > > RCS file: /cvs/src/usr.bin/nc/nc.1,v > > retrieving revision 1.60 > > diff -d -u -p -r1.60 nc.1 > > --- nc.1 7 Feb 2012 12:11:43 -0000 1.60 > > +++ nc.1 7 Jul 2012 10:30:10 -0000 > > @@ -119,6 +119,10 @@ is completed. > > It is an error to use this option without the > > .Fl l > > option. > > +When used together with the > > +.Fl u > > +option, the server socket is not connected and it receives UDP datagrams > > from > > +multiple hosts. > > .It Fl l > > Used to specify that > > .Nm > > Index: netcat.c > > =================================================================== > > RCS file: /cvs/src/usr.bin/nc/netcat.c,v > > retrieving revision 1.108 > > diff -d -u -p -r1.108 netcat.c > > --- netcat.c 7 Jul 2012 09:36:30 -0000 1.108 > > +++ netcat.c 7 Jul 2012 10:30:11 -0000 > > @@ -345,11 +345,17 @@ main(int argc, char *argv[]) > > if (s < 0) > > err(1, NULL); > > /* > > - * For UDP, we will use recvfrom() initially > > - * to wait for a caller, then use the regular > > - * functions to talk to the caller. > > + * For UDP and -k, don't connect the socket, let it > > + * receive datagrams from multiple socket pairs. > > */ > > - if (uflag) { > > + if (uflag && kflag) > > + readwrite(s); > > + /* > > + * For UDP and not -k, we will use recvfrom() initially > > + * to wait for a caller, then use the regular functions > > + * to talk to the caller. > > + */ > > + else if (uflag && !kflag) { > > int rv, plen; > > char buf[16384]; > > struct sockaddr_storage z;