1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 09:12:24 +00:00
putty-source/windows
Simon Tatham 4ff22863d8 Rewrite agent forwarding to serialise requests.
The previous agent-forwarding system worked by passing each complete
query received from the input to agent_query() as soon as it was
ready. So if the remote client were to pipeline multiple requests,
then Unix PuTTY (in which agent_query() works asynchronously) would
parallelise them into many _simultaneous_ connections to the real
agent - and would not track which query went out first, so that if the
real agent happened to send its replies (to what _it_ thought were
independent clients) in the wrong order, then PuTTY would serialise
the replies on to the forwarding channel in whatever order it got
them, which wouldn't be the order the remote client was expecting.

To solve this, I've done a considerable rewrite, which keeps the
request stream in a bufchain, and only removes data from the bufchain
when it has a complete request. Then, if agent_query decides to be
asynchronous, the forwarding system waits for _that_ agent response
before even trying to extract the next request's worth of data from
the bufchain.

As an added bonus (in principle), this gives agent-forwarding channels
some actual flow control for the first time ever! If a client spams us
with an endless stream of rapid requests, and never reads its
responses, then the output side of the channel will run out of window,
which causes us to stop processing requests until we have space to
send responses again, which in turn causes us to stop granting extra
window on the input side, which serves the client right.
2017-01-29 20:25:09 +00:00
..
installer.wxs Build an MSI installer for the new Win64 binaries. 2017-01-21 14:55:52 +00:00
pageant.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pageant.mft Make manifest files work with 64bit builds of PuTTY. 2015-08-15 13:54:44 +01:00
pageant.rc Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +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.iss Remove 'putty -cleanup-during-uninstall' from legacy uninstaller. 2017-01-21 14:55:53 +00:00
putty.mft Make manifest files work with 64bit builds of PuTTY. 2015-08-15 13:54:44 +01:00
putty.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +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 Make manifest files work with 64bit builds of PuTTY. 2015-08-15 13:54:44 +01:00
puttygen.rc Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +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.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
rcstuff.h `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
README-msi.txt Provide a separate post-install README for MSI. 2016-04-02 08:26:26 +01:00
README.txt Refresh the Windows installer README.txt. 2015-02-27 09:26:47 +00:00
sizetip.c Sprinkle some header comments in various files in an attempt to explain what 2006-04-23 18:26:03 +00:00
version.rc2 Stop copying the licence text into C source code. 2016-02-29 19:59:35 +00:00
website.url Now that we have Subversion's file renaming ability, it's time at 2004-11-16 22:14:56 +00:00
win_res.h Use readonly edit controls in some Windows dialogs. 2016-02-29 19:59:35 +00:00
win_res.rc2 Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +00:00
wincapi.c Make our process's ACL more restrictive. 2016-02-29 19:59:34 +00:00
wincapi.h Make our process's ACL more restrictive. 2016-02-29 19:59:34 +00:00
wincfg.c Post-release destabilisation! Completely remove the struct type 2011-07-14 18:52:21 +00:00
wincons.c Special host key warning when a better key exists. 2016-03-27 18:20:37 +01:00
winctrls.c Fixed unused-variable warnings from MinGW gcc. 2016-04-10 14:24:04 +01:00
windefs.c Turn 'Filename' into a dynamically allocated type with no arbitrary 2011-10-02 11:01:57 +00:00
windlg.c Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +00:00
window.c SetCurrentProcessExplicitAppUserModelID to fix jumplist/removable media bug 2016-08-29 16:55:42 +01:00
wingss.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winhandl.c Fix winhandl.c's failure to ever free a foreign handle. 2015-10-29 09:27:54 +00:00
winhelp.c Fix type of 4th argument to WinHelp 2015-08-15 13:54:46 +01:00
winhelp.h Make ESC[3J (clear scrollback) a disableable escape sequence. 2016-11-17 20:25:27 +00:00
winhsock.c In GUI PuTTY, log standard error from local proxy commands. 2015-11-22 15:11:00 +00:00
winjump.c SetCurrentProcessExplicitAppUserModelID to fix jumplist/removable media bug 2016-08-29 16:55:42 +01:00
winmisc.c Lock down the search path for Windows DLL loading. 2016-07-18 20:02:32 +01:00
winnet.c Report the right address in connection setup errors. 2017-01-28 14:03:09 +00:00
winnoise.c Been meaning to get round to this for a while: use CryptGenRandom to 2013-07-20 08:34:54 +00:00
winnojmp.c Fix up svn:eol-style and svn:keywords on new files. 2010-12-27 00:24:48 +00:00
winnpc.c Merge branch 'pre-0.67' 2016-02-29 19:59:59 +00:00
winnps.c In GUI PuTTY, log standard error from local proxy commands. 2015-11-22 15:11:00 +00:00
winpgen.c Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +00:00
winpgnt.c Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +00:00
winpgntc.c Rewrite agent forwarding to serialise requests. 2017-01-29 20:25:09 +00:00
winplink.c Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +00:00
winprint.c Another big batch of memory leak fixes, again mostly on error paths. 2013-07-22 07:11:54 +00:00
winproxy.c Fix a paste error in new make_handle_socket prototype. 2015-11-22 22:50:30 +00:00
winsecur.c Specify integer type for access rights. 2016-04-10 14:24:39 +01:00
winsecur.h Put back in a missing dynamic-load wrapper on SetSecurityInfo. 2016-02-29 19:59:35 +00:00
winser.c Fix format strings for Windows serial parameters. 2016-04-10 14:25:34 +01:00
winsftp.c Lock down the search path for Windows DLL loading. 2016-07-18 20:02:32 +01:00
winshare.c Rename Makefile.cyg to Makefile.mgw. 2016-04-10 15:10:45 +01:00
winstore.c Use DWORD as length argument for RegQueryValueEx. 2015-08-15 13:54:55 +01:00
winstuff.h Include 'build info' in all --version text and About boxes. 2017-01-21 14:55:53 +00:00
wintime.c Sprinkle some header comments in various files in an attempt to explain what 2006-04-23 18:26:03 +00:00
winucs.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winutils.c Key rollover: put the new Master Key fingerprint in the tools. 2015-10-17 17:30:17 +01:00
winx11.c Post-release destabilisation! Completely remove the struct type 2011-07-14 18:52:21 +00:00

PuTTY README
============

This is the README file for the PuTTY installer distribution. If
you're reading this, you've probably just run our installer and
installed PuTTY on your system.

What should I do next?
----------------------

If you want to use PuTTY to connect to other computers, or use PSFTP
to transfer files, you should just be able to run them from the
Start menu.

If you want to use the command-line-only file transfer utility PSCP,
you will probably want to put the PuTTY installation directory on
your PATH. On Windows 7 and similar versions, you can do this at
Control Panel > System and Security > System > Advanced system
settings > Environment Variables.

Some versions of Windows will refuse to run HTML Help files (.CHM)
if they are installed on a network drive. If you have installed
PuTTY on a network drive, you might want to check that the help file
works properly. If not, see http://support.microsoft.com/kb/896054
for information on how to solve this problem.

What do I do if it doesn't work?
--------------------------------

The PuTTY home web site is

    http://www.chiark.greenend.org.uk/~sgtatham/putty/

Here you will find our list of known bugs and pending feature
requests. If your problem is not listed in there, or in the FAQ, or
in the manuals, read the Feedback page to find out how to report
bugs to us. PLEASE read the Feedback page carefully: it is there to
save you time as well as us. Do not send us one-line bug reports
telling us `it doesn't work'.