Hi - This set of changes allows port forwarding through our dropbear sshd. It actually worked a little beforehand, but didn't handle errors well.
The main thing is that we needed to support non-blocking connect. Applications like dropbear can't handle a spurious select() on a socket that is connecting, so I had to change how select() works. It's a lot better now: there shouldn't be any spurious select bits in the fd sets. Along the way I fixed up the Rock code a little (keep the ctl_fd open), and fixed up epoll a little (don't look for rock FDs when we know we won't need them). Here's an example, where 'devbox' is an ssh alias for an Akaros machine, and linux-guest is an alias for 127.0.0.1:2345 with the appropriate ssh keys. (term-A) $ ssh -L 2345:127.0.0.1:23 devbox (term-B) $ ssh linux-guest ( '>') /) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY. (/-_--_-\) www.tinycorelinux.net tc@box:~$ Easy-peasy. You'll need to rebuild your toolchain and dropbear once I merge it, pending travis and/or any comments. Barret The following changes since commit be1925fb29c9b6d7356ee8c73fde7b88388f298f: mlx4: Linearize large blocks to avoid dropping packets (2017-12-14 16:23:59 -0500) are available in the Git repository at: [email protected]:brho/akaros.git ssh for you to fetch changes up to 8c8c78ef9adf647ecffe620e6c4532db2f5e5aa4: net: rock: Read the connection status for getsockopt() (XCC) (2017-12-20 13:37:08 -0500) ---------------------------------------------------------------- View this online at: https://github.com/brho/akaros/compare/be1925fb29c9...8c8c78ef9adf ---------------------------------------------------------------- Barret Rhoden (9): net: rock: Keep the ctl FD open (XCC) net: rock: Mirror F_SETFL flags to all FDs (XCC) net: rock: Look up the ctl FD with the listen FD (XCC) epoll: Split out the guts of ctl_add and ctl_del net: Report conversation-wide info in Qdata stats net: Make select() not spurious net: Support non-blocking connect() calls net: rock: Use a helper for conversation filenames (XCC) net: rock: Read the connection status for getsockopt() (XCC) kern/src/net/devip.c | 87 ++++++-- .../glibc-2.19-akaros/sysdeps/akaros/Versions | 2 +- .../glibc-2.19-akaros/sysdeps/akaros/accept4.c | 15 +- .../glibc-2.19-akaros/sysdeps/akaros/bind.c | 13 +- .../glibc-2.19-akaros/sysdeps/akaros/connect.c | 14 +- .../glibc-2.19-akaros/sysdeps/akaros/fcntl.c | 17 +- .../glibc-2.19-akaros/sysdeps/akaros/getsockopt.c | 48 ++++- .../glibc-2.19-akaros/sysdeps/akaros/listen.c | 14 +- .../sysdeps/akaros/plan9_sockets.c | 81 ++++---- .../glibc-2.19-akaros/sysdeps/akaros/shutdown.c | 8 +- .../sysdeps/akaros/sys/plan9_helpers.h | 9 +- user/iplib/epoll.c | 116 ++++++----- user/iplib/select.c | 223 ++++++++++++++------- 13 files changed, 407 insertions(+), 240 deletions(-) -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
