1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00
putty-source/windows
Simon Tatham ae1148267d Stream-oriented agent forwarding on Unix.
Historically, because of the way Windows Pageant's IPC works, PuTTY's
agent forwarding has always been message-oriented. The channel
implementation in agentf.c deals with receiving a data stream from the
remote agent client and breaking it up into messages, and then it
passes each message individually to agent_query().

On Unix, this is more work than is really needed, and I've always
meant to get round to doing the more obvious thing: making an agent
forwarding channel into simply a stream-oriented proxy, passing raw
data back and forth between the SSH channel and the local AF_UNIX
socket without having to know or care about the message boundaries in
the stream.

The portfwdmgr_connect_socket() facility introduced by the previous
commit is the missing piece of infrastructure to make that possible.
Now, the agent client module provides an API that includes a callback
you can pass to portfwdmgr_connect_socket() to open a streamed agent
connection, and the agent forwarding setup function tries to use that
where possible, only falling back to the message-based agentf.c system
if it can't be done. On Windows, the new piece of agent-client API
returns failure, so we still fall back to agentf.c there.

There are two benefits to doing it this way. One is that it's just
simpler and more robust: if PuTTY isn't trying to parse the agent
connection, then it has less work to do and fewer places to introduce
bugs. The other is that it's futureproof against changes in the agent
protocol: if any kind of extension is ever introduced that requires
keeping state within a single agent connection, or that changes the
protocol itself so that agentf's message-boundary detection stops
working, then this forwarding system will still work.
2020-01-04 13:52:22 +00:00
..
installer.wxs Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
msiplatform.py Fix platform field in Windows on Arm installers. 2018-08-21 07:17:06 +01:00
pageant.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pageant.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
pageant.rc Grow the Windows Licence dialog. 2019-03-18 20:32:55 +00:00
pageants.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
plink.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
pscp.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pscp.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
psftp.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
putty.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
putty.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
putty.rc Tweak version string resources for EMBED_CHM. 2019-03-16 12:25:23 +00:00
puttycfg.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
puttygen.rc Grow the Windows Licence dialog. 2019-03-18 20:32:55 +00:00
puttyins.ico `installer.ico' doesn't fit into 8.3, so gets truncated to INSTALLE.ICO in 2007-02-06 22:39:15 +00:00
puttytel.mft Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
puttytel.rc Tweak version string resources for EMBED_CHM. 2019-03-16 12:25:23 +00:00
rcstuff.h Remove Makefile.bor. 2017-09-13 19:26:28 +01:00
README-msi.txt Remove note about .CHM on network drives. 2019-03-18 21:53:45 +00:00
sizetip.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
version.rc2 FIXME about Windows resource CHMfulness hint. 2019-03-18 22:02:13 +00:00
website.url Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
win_res.h Stop looking for putty.chm alongside the binary. 2019-03-16 12:25:23 +00:00
win_res.rc2 Grow the Windows Licence dialog. 2019-03-18 20:32:55 +00:00
wincapi.c Convert a lot of 'int' variables to 'bool'. 2018-11-03 13:45:00 +00:00
wincapi.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
wincfg.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
wincons.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winctrls.c Convert a few more universal asserts to unreachable(). 2019-09-09 19:12:02 +01:00
windefs.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
windlg.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
window.c winsftp.c: avoid creating multiple netevents. 2019-12-24 13:12:10 +00:00
wingss.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
winhandl.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winhelp.c Remove most traces of WinHelp support. 2019-03-26 00:27:04 +00:00
winhelp.h Remove most traces of WinHelp support. 2019-03-26 00:27:04 +00:00
winhelp.rc2 Tweak version string resources for EMBED_CHM. 2019-03-16 12:25:23 +00:00
winhsock.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winjump.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
winmisc.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
winmiscs.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winnet.c winnet: use SO_EXCLUSIVEADDRUSE for listening sockets. 2019-09-19 18:12:22 +01:00
winnohlp.c Stop looking for putty.chm alongside the binary. 2019-03-16 12:25:23 +00:00
winnoise.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winnojmp.c Fix up svn:eol-style and svn:keywords on new files. 2010-12-27 00:24:48 +00:00
winnpc.c Move all extern declarations into header files. 2018-11-03 13:47:29 +00:00
winnps.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winpgen.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winpgnt.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
winpgntc.c Stream-oriented agent forwarding on Unix. 2020-01-04 13:52:22 +00:00
winplink.c winsftp.c: avoid creating multiple netevents. 2019-12-24 13:12:10 +00:00
winprint.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winproxy.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winsecur.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winsecur.h Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winser.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winsftp.c Refactor 'struct context *ctx = &actx' pattern. 2019-12-24 13:47:46 +00:00
winshare.c Adopt the new hash API functions where they're useful. 2019-12-15 20:23:06 +00:00
winstore.c Make dupcat() into a variadic macro. 2019-10-14 19:42:37 +01:00
winstuff.h winsftp.c: avoid creating multiple netevents. 2019-12-24 13:12:10 +00:00
wintime.c wintime: add a precautionary memset to zero. 2017-02-14 23:25:25 +00:00
winucs.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winutils.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00
winx11.c Whitespace rationalisation of entire code base. 2019-09-08 20:29:21 +01:00