[git commit] libbb: add generic "fd polling and I/O" loop, use it in telnetd
Denys Vlasenko
vda.linux at googlemail.com
Sat Feb 21 15:54:35 UTC 2026
commit: https://git.busybox.net/busybox/commit/?id=dc6e92c9903ef1d16f600e0425b3bb7273a0afb9
branch: https://git.busybox.net/busybox/log/?h=master
We do it, badly, in many places. Better to use one robust implementation.
Can be buggy yet.
Initial use is in a rather old, rarely used tech: telnet.
The I/O in telnetd should be fully non-blocking now,
including pty delays handling.
Several bugs in telnetd handling of IACs are fixed.
function old new delta
ioloop_run - 411 +411
net_to_pty__have_data_to_write - 368 +368
pty_to_net__write - 318 +318
net_to_pty__write - 180 +180
pty_to_net__read - 171 +171
net_to_pty__have_buffer_to_read_into - 164 +164
pty_to_net__have_buffer_to_read_into - 90 +90
net_to_pty__read - 87 +87
pty_to_net__have_data_to_write - 59 +59
make_new_session 491 550 +59
conn_close_fds - 52 +52
accept_conn__accept - 49 +49
conn_close_fds_remove_and_free - 27 +27
ioloop_remove_conn - 22 +22
remove_and_free_to_pty - 19 +19
ioloop_insert_conn - 10 +10
accept_conn__can_accept - 6 +6
accept_conn__return_zero - 3 +3
static.ayt_response - 2 +2
handle_sigchld 59 61 +2
free_session 130 - -130
telnetd_main 1797 367 -1430
------------------------------------------------------------------------------
(add/remove: 19/1 grow/shrink: 2/1 up/down: 2099/-1560) Total: 539 bytes
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
include/libbb.h | 86 +-
libbb/ioloop.c | 262 +++++
networking/telnet.txt | 53 +
networking/telnetd.c | 1869 ++++++++++++++++++++++---------
networking/{telnetd.c => telnetd.c.OLD} | 0
5 files changed, 1699 insertions(+), 571 deletions(-)
Patch is too large, so refusing to show it
More information about the busybox-cvs
mailing list