IOCCC image by Matt Zucker

The International Obfuscated C Code Contest

2005/mynx - Best use of the WWW

← mikeash ↑ 2005 ↑ persano → C code Makefile Inventory





Author:

To build:

make

There is an alternate version that scans for (ONLY scans) the string https as a starting point. See alternate code below.

Bugs and (Mis)features:

The current status of this entry is:

STATUS: INABIAF - please **DO NOT** fix

For more detailed information see 2005 mynx bugs.

To use:

./mynx http://<domain>

You can specify a port by appending to the domain :port. See notes below on the issue of https.

Try:

./mynx http://www.textfiles.com

./mynx manual.html

Alternate code:

Obviously this will not work with https as it only scans for http in the URL (if not specified it tries to open it as a local file). But even if it scanned for https one would need to do more work as it would have to set up a secure connection before http commands could be sent. Fortunately or unfortunately many more websites use https so this entry will not work as well as it used to. If one were to try and connect to https://ioccc.org with this entry they’ll just get a 301 error.

The alternate code is a starting point that scans for https too (note you have to specify the port in this case) but that is all it does. It will not work with https websites as it does not set up a secure connection. But should anyone wish to either come up with a pipeline (or some other command line) that allows it to work with https or to update the code to support https they may. Otherwise you must just appreciate the entry for what it once was.

Alternate build:

make alt

Alternate use:

Use mynx.alt as you would mynx. You’d have to specify a port at the end of the URL like:

./mynx.alt https://www.ioccc.org:443

but again unless you have a clever workaround or hack to the problem, this sadly won’t work.

Judges’ remarks:

This little mynx will give any Fiery Fox a run for its money. A nice complement to last years winning 2004/hibachi. The judges double dare any eager Obfuscationalists to submit the missing pieces to get a functioning LAMP stack.

Author’s remarks:

I was rather impressed by last year’s mini webserver. So much so that it inspired me to try my hand at writing the client side complement.

A typical build command would be:

cc -o mynx mynx.c

While some others like to be a little different:

cc -o mynx mynx.c -lnsl -lsocket

I even managed to figure out a basic configure script, given last year’s example, which is kinda of useful when you consider how many OSes put all the network functions in a variety of places. So a simpler build command sequence would be:

cd source ; ./configure ; make

After which, the rest of the documentation can be read by saying:

./mynx ../manual.html

Inventory for 2005/mynx

Jump to top

Primary files

Secondary files