[Toybox] Notes about netcat toy

Rob Landley rob at landley.net
Wed Jun 20 17:21:31 PDT 2012


On 06/19/2012 06:18 AM, orc wrote:
> Hm, seems to be that toybox netcat does not support udp mode and
> ipv6.

Yup.  Those are todo items.

Genericizing the code so I can use the same engine for telnet would be
nice too.

> I'm using ipv6 for internal purposes so I see that if I want
> ipv6-aware netcat in toybox I need to follow one of two ways here:

I want udp support so I can do:

http://sarah.thesharps.us/2009-02-22-09-00

I'd also like to resolve this command line argument incompatability:

http://lists.busybox.net/pipermail/busybox/2009-July/069920.html

http://landley.net/hg/aboriginal/rev/1218

> - Rewrite current netcat.c logic that it will support ipv6

It's on my todo list, and not actually that big a code change.

> - Port openbsd's netcat.c into toybox (much work needed plus stripping
>   unneeded code, 3-clause BSD)
>
> (Another way is to use openbsd netcat.c directly)

In which case how is toybox involved?

> I have dirty (with #if 0 parts) code that supports ipv6 in current
> toybox netcat via getaddrinfo, but with udp mode I'm stuck.

If you send me the patch and I can probably clean it up.

> Implementing udp option will be useful too.
> Rob, do you have some plans about this toy?

I have many, many plans.  My todo list runneth over.

Finishing netcat is left over from my 2009 todo list:

http://landley.net/toybox/todos/notes.txt

 netcat/nc: Implement remaining command line options.

I got buried in new command submissions for a bit (until I lost track of
what already merged code needed what cleanups), and then buried in
non-toybox stuff, and am now slowly trying to catch back up.

I'm prioritizing having the code that's implemented be _good_ over
having buckets of features quickly, because otherwise what's the point
of doing yet another implementation of all this stuff that's already out
there?

> Then, some other notes:
> 
> - busybox and openbsd netcats doesn't require to specify source
> address and port for listen mode. Maybe rewrite netcat that it will
> accept something like 'netcat -L 127.0.0.1 8033'?

See above.

> - Toybox netcat says that it executes program from -e option, but
>   actually executes it via toys.optargs.

It executes the rest of the command line after -e.  If you give it -e
"one two three" it's just like typing "one two three" on the command
line and you'd better have a command with spaces in its name in your $PATH.

> - New network toys should be ready for ipv6 by default.

Note the date:

changeset:   189:22d22427dec6
user:        Rob Landley <rob at landley.net>
date:        Mon Dec 03 18:53:00 2007 -0600
files:       toys/Config.in toys/netcat.c toys/toylist.h
description:
Add first pass at netcat.  Base applet, -f, and -w implemented.

"world ipv6 launch day" was earlier this month, and was once again
resoundingly ignored:

http://www.fiercetelecom.com/story/world-ipv6-launch-results-what-effect-did-event-have-internet/2012-06-18

Global ipv4 traffic, 189.81 Tbps (terabits? terabytes?  Terasomething.)
 ipv6 traffic: 24.07 giga-whatevers. So ipv4 is still about 10,000 times
as much traffic as ipv6.

Yay the future and all that.  I'd like to support ipv6 on general
principles. But unless you're in korea (the whole country sharing an old
"class B" 16 bit IP address block last I checked), it's still "coming
soon now" 15 years after I first heard about it when somebody did a
presentation at a LUG meeting back in the 90's.

Rob
-- 
GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code.
Either it's "mere aggregation", or a license violation.  Pick one.

 1340238091.0


More information about the Toybox mailing list