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: Thomas Dickey
Subject: Re: [Lynx-dev] ..on SOCKS5 support
Date: Sun, 8 Sep 2019 06:57:50 -0400
User-agent: NeoMutt/20170113 (1.7.2)

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...
 
>  |> 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#n48\
>  |>   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).
 
>  |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).

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.

-- 
Thomas E. Dickey <address@hidden>
https://invisible-island.net
ftp://ftp.invisible-island.net

Attachment: signature.asc
Description: PGP signature


reply via email to

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