<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/libbb/ioloop.c, branch busybox</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=busybox</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=busybox'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2026-02-23T13:47:17+00:00</updated>
<entry>
<title>telnet: rewrite to use ioloop()</title>
<updated>2026-02-23T13:47:17+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2026-02-23T13:19:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=87fcfe7dfedfbc6925c164e8404c03dc02921264'/>
<id>urn:sha1:87fcfe7dfedfbc6925c164e8404c03dc02921264</id>
<content type='text'>
Now should never block on network I/O. Also, window resizing is dynamic now.

function                                             old     new   delta
write_to_net                                           -     596    +596
read_from_net                                          -     543    +543
read_from_stdin                                        -     227    +227
show_menu                                              -     212    +212
write_to_stdout                                        -     105    +105
have_data_to_write_to_net                              -      72     +72
have_data_to_write_to_stdout                           -      38     +38
put_iac_byte_escaped                                   -      32     +32
ioloop_run                                           411     438     +27
have_buffer_to_read_from_stdin                         -      25     +25
have_buffer_to_read_from_net                           -      25     +25
.rodata                                           107125  107141     +16
handle_SIGWINCH                                        -      15     +15
put_iac                                               36      28      -8
put_iac4_msb_lsb                                      19       -     -19
iac_flush                                             36       -     -36
setConMode                                            87       -     -87
handle_net_output                                    110       -    -110
con_escape                                           271       -    -271
telnet_main                                         1232     476    -756
------------------------------------------------------------------------------
(add/remove: 11/5 grow/shrink: 2/2 up/down: 1933/-1287)       Total: 646 bytes

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>libbb: add generic "fd polling and I/O" loop, use it in telnetd</title>
<updated>2026-02-21T15:54:35+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2026-02-21T15:42:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=dc6e92c9903ef1d16f600e0425b3bb7273a0afb9'/>
<id>urn:sha1:dc6e92c9903ef1d16f600e0425b3bb7273a0afb9</id>
<content type='text'>
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 &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
</feed>
