You are very welcome to adapt the code to your needs, but I have to say that the solution you propose is not something I'd be willing to integrate upstream. Having a daemon running in foreground and presenting swapping-disk-options for possibly several clients at the same time is definitely not something I'd like to see.
In my humble opinion, a saner option would be creating a small Linux tool that is able to send "eject / insert floppy" messages to etherflop-server on behalf of a DOS client (simply identified by its MAC).
Thanks for your feedback - As I was thinking about it a bit more I was thinking the following would work well:
1. If the server is launched with the option to NOT daemonize the server would present a numerical list of current clients and loaded images. (I haven't actually run the software yet so an approximation of what I think it looks like based on the the server code). This would get reprinted whenever a client or image change occurs.
Connected clients and images:
1. [MAC ADDRESS 1] FLOPDISK.IMG
2. [MAC ADDRESS 2] OTHIMG.IMG
3. [MAC ADDRESS 3] INSTALDK.IMG
Select an entry to load a different image: 2
Available Images
1. GAME.IMG
2. APPLDSK.IMG
3. PAKUMAN.IMG
Select an available image or [E]xit:
2. When a new image is selected, the calls to eject and load a new image would be made. When run in this mode, all updates, messages that would typically be sent to the client would be redirected to the linux server.
3. If the process isn't run with the NOT daemonize argument nothing would be different.
This would be easier to use for my use case of ETHFLOP which is installing software. I default to EtherDFS for most other tasks. I am curious though what your aversion is to this type of option rather than a separate program? Given that you invented EthFlop, there is likely something you are considering that I am not. I guess I could do everything above via another program that somehow interfaces with EthFlop but the above seems like a pretty quick set of changes to the code you have written. (Which was incredibly easy to follow even for me who is anything but an accomplished C programmer).
Thanks for your feedback!