lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lynx-dev] ..on SOCKS5 support


From: Steffen Nurpmeso
Subject: Re: [Lynx-dev] ..on SOCKS5 support
Date: Mon, 09 Sep 2019 15:43:59 +0200
User-agent: s-nail v14.9.15-44-g32f0d949

Thomas Dickey wrote in <20190908105750.qc3ut2e3rkrswfm4@prl-debianold-64\
.jexium-island.net>:

 |On Sun, Sep 08, 2019 at 01:26:51AM +0200, Steffen Nurpmeso wrote:
 |> Hello Thomas Dickey.
 |> 
 |> Thomas Dickey wrote in <20190907195941.c2gqjhnuj2pp44az@prl-debianold-64\
 |> .jexium-island.net>:
 |>|On Sat, Sep 07, 2019 at 08:51:26PM +0200, Steffen Nurpmeso wrote:
 |>|> I was forced to use lynx via SOCKS5 proxy, which i never did
 |>|> before.  To my surprise that did not work, it needs an additional
 |>|> library.  That increased the surprise, because all one needs for
 |>|> SOCKS5 support, even including the DNS lookup, is to hook
 |>|> connect(2) -- that is how i did it, as easy as [1].  And in fact
 |>|
 |>|That's changed over time - there's no standard/portable implementation
 |>|of socks5, and (the last time I looked...) none of the extent versions
 |>|corresponded to what lynx worked with long ago :-)
 |> 
 |> Well.. i do not know about the history of implementations.  What
 |> i do know is that my implementation is for SOCKS5, which is RFC
 |> 1928 from March 1996.  It is a nice and small RFC :)
 |
 |something to read...

Yes, that i know.  Nine pages here.

 |>|> i became inspired by Gaetan Bisson's usocks-06.c, which can be
 |>|> used via $LD_PRELOAD, and which got me going.  I will attach it.
 |>|> 
 |>|> Wouldn't it be much nicer if there would be a -socks=[HOST]:PORT
 |>|> command line argument and a simple, always compiled in, wrapper
 |>|> around connect, just the way i do it (in [1])?
 |>|
 |>|that's a thought...
 |> 
 |> It would be really nice.  When i implemented it i tested via
 |> 
 |>   $ ssh -D 10000 USER@HOST
 |>   $ mailx -Ssocks-proxy-USER@HOST=localhost:10000
 |> 
 |> But it must be said, when using OpenSSH's -D in a session where
 |> firefox bombs its multiple dozens of concurrent connections here
 |> i had to restart the ssh twice already today, because of being
 |> totally stuck.  It might be caused by the weak wireless
 |> connectivity that i have, but i am about to ask ssh for what to
 |> do.  (ControlMaster is in use.)
 |> 
 |>|> Just in case i find time and the mentioned way seems interesting,
 |>|> is there somewhere the current development code can be loaded
 |>|> from?
 |>|> 
 |>|>   [1] https://git.sdaoden.eu/cgit/s-nail.git/tree/src/mx/net-socket.c#n\
 |>|>   48\
 |>|>   5
 |>|
 |>|I put snapshots here, as I make development changes:
 |>|
 |>| https://github.com/ThomasDickey/lynx-snapshots
 |> 
 |> Yes, i know.  (But we know this git mirror sometimes lags behind,
 |> no, not for lynx in particular but for example vile and mawk
 |> i track via this mirror, and just a couple of days ago you seem to
 |> have pushed something to mawk with a six months delay.  I am not
 |> complaining or something, and maybe it had to mature, i did not
 |> look.  It is just that this mirror lags behind reality sometimes.)
 |
 |yes (for the former, I'd overlooked that -- also vttest, which you didn't
 |mention -- for the latter I had begun a more ambitious set of changes \
 |but got
 |stuck with the yacc grammar bug, and on moving on to more urgent fixes \
 |forgot
 |to push the completed ones out until I was reminded).  At the moment I'm
 |working on xterm, and have to review/whatever a change for dialog whenever
 |patch #349 is completed.
 |
 |It's not an automatic mirror; I have scripts for several stages (with
 |some testing/review at each stage).  Offhand
 |
 | release-foo (for local staging/packaging)
 | build-all-foo (test-builds, review logs, install packages)
 | tag-foo (adds the rcs label)
 |  *   release-all-foo (repeat release-foo, but adds cross-compiled \
 |  binaries)
 |  *   upload-foo
 |  *   update-ftp-links (website maintenance)
 |  *   rsync-myftp
 |  *   upload-mirror
 | r2g foo (exports to git, using rcs label added above)
 | push2github foo
 |  *   email announcements (completing the upload-foo step)
 |
 |The interim labels (no upload-foo, etc) are to verify fixes for bug \
 |reports.
 |I marked the "real release" steps with "*", above.  Counting all of the
 |steps, I have a few hundred "foo" scripts (perhaps I should write a script
 |to count them).

That leaves me speechless.

 |>|but don't accept pull-requests -- see
 |>|
 |>| https://invisible-island.net/personal/git-exports.html
 |> 
 |> That i knew too already, but thanks for the link.  I am not at
 |> github myself, so a pull request would not happen, rather a patch
 |> for discussion here on this ML.  Note that i hate autotools, this
 |> would be very hard.  The rest is complicated rather due to the
 |> lynx context only.
 |
 |sounds good: if someone wants to do a pull request, I end up by
 |cloning the repo temporarily, and constructing a diff/patch.
 |
 |That doesn't happen often...
 | 
 |> Pretty much so it seems, but i will try.  How about
 |> -socks5-proxy=HOST -> STRING, parsed the first time we enter
 |> HtDoConnect() (or where in main()?), and a special my_connect() as
 |> a replacement for the connect(2)s in there, which looks out for
 |> the global socks5_proxy (address stored locally in the file after
 |> initial parse was successful?), and connects through it instead of
 |> the default.  It is pretty much a jungle here ;).  But does this
 |
 |lots of ifdefs :-)
 |
 |> sound acceptible somehow?  Maybe i find some time next Tuesday or
 |> Wednesday?
 |
 |I don't see any real problems in going in that direction
 |(except of course that it wouldn't work readily with the Windows port).

Yes, i have no idea of Windows at all.  (Except having had the
Cygwin source code to have a look sometimes, to not end in total
dead ends shall i ever port to it.)

 |If you have something that works reasonably well on one of the BSDs,
 |making it more portable (adding configure checks, command-line options,
 |etc.) is fairly routine.

That is BSD socket code + read(2) + write(2).
I will throw an eye as soon as possible, and report back then, ok?
Ciao from Germany,

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]