1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 09:27:59 +00:00
putty-source/unix
Simon Tatham 1b40d9f3ba Auxiliary application: 'psocks', a simple SOCKS server.
This is built more or less entirely out of pieces I already had. The
SOCKS server code is provided by the dynamic forwarding code in
portfwd.c. When that accepts a connection request, it wants to talk to
an SSH ConnectionLayer, which is already a trait with interchangeable
implementations - so I just provide one of my own which only supports
the lportfwd_open() method. And that in turn returns an SshChannel
object, with a special trait implementation all of whose methods
just funnel back to an ordinary Socket.

Result: you get a Socket-to-Socket SOCKS implementation with no SSH
anywhere, and even a minimal amount of need to _pretend_ internally to
be an SSH implementation.

Additional features include the ability to log all the traffic in the
form of diagnostics to standard error, or log each direction of each
connection separately to a file, or for anything more general, to log
each direction of each connection through a pipe to a subcommand that
can filter out whatever you think are the interesting parts. Also, you
can spawn a subcommand after the SOCKS server is set up, and terminate
automatically when that subcommand does - e.g. you might use this to
wrap the execution of a single SOCKS-using program.

This is a modernisation of a diagnostic utility I've had kicking
around out-of-tree for a long time. With all of last year's
refactorings, it now becomes feasible to keep it in-tree without
needing huge amounts of scaffolding. Also, this version runs on
Windows, which is more than the old one did. (On Windows I haven't
implemented the subprocess parts, although there's no reason I
_couldn't_.)

As well as diagnostic uses, this may also be useful in some situations
as a thing to forward ports to: PuTTY doesn't currently support
reverse dynamic port forwarding (in which the remote listening port
acts as a SOCKS server), but you could get the same effect by
forwarding a remote port to a local instance of this. (Although, of
course, that's nothing you couldn't achieve using any other SOCKS
server.)
2020-02-23 16:36:27 +00:00
..
configure Move the Unix configure script up to the top level. 2014-02-22 18:01:32 +00:00
gtkapp.c Move all extern declarations into header files. 2018-11-03 13:47:29 +00:00
gtkask.c Refactor 'struct context *ctx = &actx' pattern. 2019-12-24 13:47:46 +00:00
gtkcfg.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
gtkcols.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
gtkcols.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
gtkcomm.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
gtkcompat.h gtkcompat.h: fix GTK1 implementation of ref_sink. 2019-11-02 08:26:14 +00:00
gtkdlg.c Formatting change to braces around one case of a switch. 2020-02-16 11:26:21 +00:00
gtkfont.c Fix two accidental overwrites of 'flags'. 2020-01-30 06:40:21 +00:00
gtkfont.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
gtkmain.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
gtkmisc.c Convert a lot of 'int' variables to 'bool'. 2018-11-03 13:45:00 +00:00
gtkmisc.h Convert a lot of 'int' variables to 'bool'. 2018-11-03 13:45:00 +00:00
gtkwin.c Formatting change to braces around one case of a switch. 2020-02-16 11:26:21 +00:00
osxlaunch.c osxlaunch: stop setting DYLD_LIBRARY_PATH. 2017-12-20 10:04:02 +00:00
procnet.c Add a /proc/net magic authenticator. 2019-03-31 10:35:10 +01:00
pterm.bundle OS X makefile: stop depending on JHBUILD_PREFIX. 2017-11-26 11:45:48 +00:00
pterm.plist Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
putty.bundle OS X makefile: stop depending on JHBUILD_PREFIX. 2017-11-26 11:45:48 +00:00
putty.plist Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
unix.h Factor out common code from Unix CLI main loops. 2020-02-07 19:14:32 +00:00
ux_x11.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
uxagentc.c Merge the two low-level portfwd setup systems. 2020-01-27 19:40:50 +00:00
uxagentsock.c Close standard handles in watchdog subprocesses. 2018-10-21 10:16:16 +01:00
uxcfg.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxcliloop.c Factor out common code from Unix CLI main loops. 2020-02-07 19:14:32 +00:00
uxcons.c Remove FLAG_STDERR_TTY. 2020-01-30 06:40:21 +00:00
uxfdsock.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxgen.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxgss.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxmisc.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxnet.c Unix: allow connecting to Unix sockets by absolute path. 2020-02-22 15:51:14 +00:00
uxnogtk.c Include the compile-time GTK version in the build info. 2017-02-15 19:32:42 +00:00
uxnoise.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxpeer.c Convert a lot of 'int' variables to 'bool'. 2018-11-03 13:45:00 +00:00
uxpgnt.c Unix Pageant: support -r and -R options to re-encrypt. 2020-02-15 18:07:50 +00:00
uxplink.c Give BackendVtable separate id and displayname fields. 2020-02-22 18:27:56 +00:00
uxpoll.c pollwrap: stop returning unasked-for rwx statuses. 2020-02-06 23:52:19 +00:00
uxprint.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxproxy.c Make the plug_log type code into an enum. 2020-02-07 19:17:45 +00:00
uxpsusan.c New application: 'psusan', the PROT_SSHCONN server end. 2020-02-22 18:42:13 +00:00
uxpterm.c Move default_protocol and default_port into settings.c. 2020-02-02 10:02:10 +00:00
uxpty.c Pass the BackendVtable pointer to backend_init. 2020-02-22 18:27:56 +00:00
uxputty.c Move default_protocol and default_port into settings.c. 2020-02-02 10:02:10 +00:00
uxsel.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxser.c Pass the BackendVtable pointer to backend_init. 2020-02-22 18:27:56 +00:00
uxserver.c Uppity: ability to listen on a Unix-domain socket. 2020-02-22 18:27:56 +00:00
uxsftp.c Factor out common code from Unix CLI main loops. 2020-02-07 19:14:32 +00:00
uxsftpserver.c Add an autoconf test and workaround for futimes(3). 2019-03-26 18:44:19 +00:00
uxshare.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
uxsignal.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxsocks.c Auxiliary application: 'psocks', a simple SOCKS server. 2020-02-23 16:36:27 +00:00
uxstore.c New functions to shrink a strbuf. 2020-01-21 20:24:04 +00:00
uxucs.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
uxutils.c Check for auxv.h and hwcap.h before including them. 2019-03-26 19:19:28 +00:00
x11misc.c Add lots of missing 'static' keywords. 2020-01-29 06:44:18 +00:00
x11misc.h Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
xkeysym.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
xpmptcfg.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
xpmpterm.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
xpmpucfg.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
xpmputty.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00