aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2023-03-03 11:29:58 +0000
committerRon Yorston <rmy@pobox.com>2023-03-03 11:29:58 +0000
commit0678b843f10191abadc5f47cef9a8ab6a29b7326 (patch)
tree0ebbaaeb7726c5ed8d881370526e256c497b501e /arch
parente9ea698021018cb94e6075598eda0c01cf61b28e (diff)
downloadbusybox-w32-0678b843f10191abadc5f47cef9a8ab6a29b7326.tar.gz
busybox-w32-0678b843f10191abadc5f47cef9a8ab6a29b7326.tar.bz2
busybox-w32-0678b843f10191abadc5f47cef9a8ab6a29b7326.zip
win32: revise poll(2) for use in nc
Upstream commit 5b3b468ec (nc: use poll() instead of select()) changed `nc` to use poll(2) instead of select(2), obviously. In busybox-w32 select(2) had already been hacked to support `nc`. To avoid hacking poll(2) too the upstream change was reverted (c2002eae3). Later `nc` was altered to include the code for both poll and select (3c85cc0c4). Make the changes necessary for poll(2) to work with `nc` on Windows. These are all in the function windows_compute_revents(). Treat a character file that isn't a console as a normal file. Without this `nc 127.0.0.1 1234 </dev/null` doesn't work. Return 0 instead of POLLHUP if GetNumberOfConsoleInputEvents() indicates no events are available. Without this communication between two instances of `nc` which are both using keyboard input isn't as asynchronous as one would like. Only process key press events: key releases are ignored. Without this `nc 127.0.0.1 1234` won't receive anything from the server until the local user presses a key. In the default case, which now includes disk files and character files, detect polling for reads as well as writes. Without this `nc 127.0.0.1 1234 <local_file` doesn't work.
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions