Suggestion: Migrate chat syncing from pipes to sockets
Right now, the implementation of pipes from the source port's side is expected to be platform-specific. What's found in current git revisions of NetDuke32 and NotBlood is for Windows.
I briefly experimented with writing a separate Linux-compatible implementation for NetDuke32 using a FIFO special file, but I think that a different approach may be better.
The idea I've had is communicating via an additional socket. An unused port number can be allocated by NukemNet for communication, via TCP or any other protocol. This should also have the advantage of working with Windows builds of source ports via Wine, while NukemNet itself isn't run from a Windows build.
On a side-note, with the current implementation, specific hardcoded FIFO / pipe names are expected. This includes /tmp/netduke32fifo
, just for one example. Instead, the OS can be asked for an available resource of an unknown id (e.g., a TCP port number), to be passed to the game via a command-line argument afterwards.
In case anyone wants to tackle that, most of the NetDuke32/NotBlood side of relevant code is under files named chatpipe.cpp
.