mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 09:12:24 +00:00
4ff22863d8
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. |
||
---|---|---|
.. | ||
installer.wxs | ||
pageant.ico | ||
pageant.mft | ||
pageant.rc | ||
pageants.ico | ||
plink.rc | ||
pscp.ico | ||
pscp.rc | ||
psftp.rc | ||
putty.ico | ||
putty.iss | ||
putty.mft | ||
putty.rc | ||
puttycfg.ico | ||
puttygen.ico | ||
puttygen.mft | ||
puttygen.rc | ||
puttyins.ico | ||
puttytel.rc | ||
rcstuff.h | ||
README-msi.txt | ||
README.txt | ||
sizetip.c | ||
version.rc2 | ||
website.url | ||
win_res.h | ||
win_res.rc2 | ||
wincapi.c | ||
wincapi.h | ||
wincfg.c | ||
wincons.c | ||
winctrls.c | ||
windefs.c | ||
windlg.c | ||
window.c | ||
wingss.c | ||
winhandl.c | ||
winhelp.c | ||
winhelp.h | ||
winhsock.c | ||
winjump.c | ||
winmisc.c | ||
winnet.c | ||
winnoise.c | ||
winnojmp.c | ||
winnpc.c | ||
winnps.c | ||
winpgen.c | ||
winpgnt.c | ||
winpgntc.c | ||
winplink.c | ||
winprint.c | ||
winproxy.c | ||
winsecur.c | ||
winsecur.h | ||
winser.c | ||
winsftp.c | ||
winshare.c | ||
winstore.c | ||
winstuff.h | ||
wintime.c | ||
winucs.c | ||
winutils.c | ||
winx11.c |
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'.