And school-in was 48 hours away. So I took the only reasonable decision - write my own proxy daemon in Java, to be installed on the filter. This may take a bit of explaining. There is no caching, no address resolution, nothing else to be done. Mainly because programming sockets in C is a pain, and doing it in Java is painless.
All relevant classes are available in java.net.
It is also as easy in Java as is C to fork off a process to handle separately each client connection. The difference is that in Java, one usually uses a thread , not a separate process. This has some advantages on the typical C solution. Each process has its own memory allocation, etc, and so takes relatively longer to establish. A thread is an altogether lighter structure.