As of the latest commit, tcp (local) to tcp/udp (remote) works fine. udp (local) to tcp/udp (remote) does not. Likely due to a lack of a connect() call on the local udp socket (the pumping logic in main() uses read() and write() on the sockets, and I think you have to connect() to an address with udp sockets for this to work correctly). If that's the case, we either connect() once receiving a datagram from somebody, or I'll have to change the logic after select() to something less protocol-agnostic.
As of the latest commit, tcp (local) to tcp/udp (remote) works fine. udp (local) to tcp/udp (remote) does not. Likely due to a lack of a connect() call on the local udp socket (the pumping logic in main() uses read() and write() on the sockets, and I think you have to connect() to an address with udp sockets for this to work correctly). If that's the case, we either connect() once receiving a datagram from somebody, or I'll have to change the logic after select() to something less protocol-agnostic.