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.

Reply via email to