Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
139 check-ins using file x11fwd.c version 27c1931adb
|
2007-01-09
| ||
| 12:14 | Fix `puttygen-unix-perms': f_open(), PuTTY's wrapper on fopen, now takes a third argument which is TRUE if the file is being opened for writing and wants to be created in such a way that it's readable only to the owner. This is used when saving private keys. While I'm here, I also use this option when writing session logs, on the general principle that they probably contain _something_ sensitive. The new argument is only supported on Unix, for the moment. (I think writing owner-accessible-only files is the default on Windows.) check-in: 24342cc035 user: simon tags: trunk | |
| 12:05 | Fix `win-randseed-location': use SHGetFolderPath() to find the Application Data directory in preference to the old-fashioned attempt to find the user's home directory, and use the _local- machine_ Application Data directory in preference even to that. SHGetFolderPath() is called via GetProcAddress, so this degrades gracefully on old Windowses. (Tested myself on Win95.) As part of this change, we now search for a location for the seed file separately for reading and writing, so that installing the new PuTTY should cause a seamless migration as the old seed file is read from the old location and then a new one written to the new location. `putty -cleanup' attempts to delete the seed file from _all_ affected locations. Naturally, a user-specified seed file path in the Registry still takes priority over all other means of finding the location. check-in: 3d5197d71a user: simon tags: trunk | |
|
2007-01-08
| ||
| 13:38 | The remaining issue in `win-askappend-multi' appears to have been caused by the MessageBox() internal message loop eating WinSock FD_READ notifications, which then don't reappear afterwards because you have to explicitly prod a socket in order to get a repeat notification on it. Hence, here's a piece of infrastructure which seems to sort it out: a new winnet.c function called socket_reselect_all(), whose function is to go through all currently active sockets and re-run WSAAsyncSelect() on them, causing repeat notifications for anything we might have missed. I call this after every call to MessageBox(), and that seems to solve the problem. (The problem was actually masked in very recent revisions, probably by the reinstatement of pending_netevent in r7071. However, I don't believe that was a complete fix. This should be.) check-in: b73205c7e6 user: simon tags: trunk | |
| 12:54 | Have one call to from_backend() per call to do_telnet_read(), instead of the previous rate of one per character. In `Flush log file frequently' mode, the latter was causing excessive slowdown due to fflush()ing once per byte. check-in: fb422327bb user: simon tags: trunk | |
|
2007-01-07
| ||
| 08:30 | Fix ssh2-cisco-pw-pad by reverting r5122. However, I've kept the ability to easily re-enable the r5122 behaviour, in case we need to conditionally switch between the two at a later date. check-in: a5397b1479 user: simon tags: trunk | |
| 08:20 | Greater leniency when importing private key files: accept both CRLF and LF, and don't object if the final line of the key lacks a newline. Also, while I'm here, switch to using fgetline() throughout so as not to have to do nasty buffer-size ad-hockery. check-in: 88c81664c7 user: simon tags: trunk | |
| 06:40 | Reinstate RDB's pending_netevent mechanism, which was removed in r4906 in the process of adding the new timing code. It seems to have been what was previously preventing spew-lockup, and still seems to prevent it now I've put it back in. check-in: 5abeff92fa user: simon tags: trunk | |
| 04:17 | Tweak the icon script, and the generated icons, to more closely match the original icons. (Apparently I managed to introduce errors while transcribing the originals for detailed analysis.) While I'm at it, add the obviously useful `make install' target in icons/Makefile, and fix the svn:ignore property on the icons directory. check-in: ca7615f72f user: simon tags: trunk | |
|
2007-01-06
| ||
| 14:01 | I think this change to Recipe was accidentally omitted from r7064. check-in: 5eb27bf21e user: jacob tags: trunk | |
| 12:27 | No, I tell a lie: GTK 1 _does_ support icons, at least partially. Ooh. check-in: c1ecd0cf4d user: simon tags: trunk | |
| 12:15 | Shiny new script which constructs the various icons for the PuTTY suite. In a dramatic break with tradition, I'm actually checking in the resulting icon files as well as the script that generates them, because the script requires Python and ImageMagick and I don't think it's reasonable to require that much extra infrastructure on everyone checking out from Subversion. The new icons should be _almost_ indistinguishable from the old ones, at least at the 32x32 resolution. The immediately visible change is that all the icons now come in 16x16, 32x32 and 48x48 formats, in both 16 colours and monochrome, instead of an ad-hoc mixture of whichever ones I could be bothered to draw. The same code can also be adapted to generate icons for the GTK port (although icons for the running programs don't seem to be supported by GTK 1 - another reason to upgrade to GTK 2!). check-in: 18b8e361e6 user: simon tags: trunk | |
|
2007-01-05
| ||
| 12:43 | Francois L'Archeveque spotted that the variable `winsock2_module' only exists when compiling for IPv6, so we shouldn't try assigning to it the rest of the time. check-in: a08780c4f7 user: simon tags: trunk | |
|
2007-01-01
| ||
| 15:19 | It's a new year. check-in: de6aa71b1f user: jacob tags: trunk | |
|
2006-12-31
| ||
| 09:33 | Patch inspired by one from Daniel Silverstone in Debian bug #229232: We now have an option where a remote window title query returns a well-formed response containing the empty string. This should keep stop any server-side application that was expecting a response from hanging, while not permitting the response to be influenced by an attacker. We also retain the ability to stay schtum. The existing checkbox has thus grown into a set of radio buttons. I've changed the default to the "empty string" response, even in the backward- compatibility mode of loading old settings, which is a change in behaviour; any users who want the old behaviour back will have to explicitly select it. I think this is probably the Right Thing. (The only drawback I can think of is that an attacker could still potentially use the relevant fixed strings for mischief, but we already have other, similar reports.) check-in: 793e619dd8 user: jacob tags: trunk | |
|
2006-12-30
| ||
| 17:00 | Patch from Colin Watson intended to give a clean Unix compile with GCC 4. (Since we choose to compile with -Werror, this is particularly important.) I haven't yet checked that the resulting source actually compiles cleanly with GCC 4, hence not marking `gcc4-warnings' as fixed just yet. check-in: ef14243dce user: jacob tags: trunk | |
|
2006-12-29
| ||
| 10:38 | Use va_copy() where available. This should fix a segfault in vsnprintf() on AMD 64 Linux. (This has been sitting in my checkout for ages and hasn't obviously caused any trouble -- I think I was waiting to get round to trying it with VC6, which I haven't yet. There are some notes in comments on further tweaks that could be made.) check-in: f420fa4505 user: jacob tags: trunk | |
| 08:35 | Colin Watson points out that there was no need for me to write the custom Panels container widget for the PuTTY config box, since the perfectly standard GtkNotebook does the same job. Hence, let's remove Panels completely in favour of doing it the proper way. check-in: 6231db6b35 user: simon tags: trunk | |
|
2006-12-28
| ||
| 14:56 | Add a NO_HTMLHELP option, and enable it by default in the Cygwin Makefile, since even the latest version of w32api (3.6) shows no sign of HTMLHelp support. (This touches mkfiles.pl because that's where the details of what Cygwin doesn't support are kept currently. This may be deliberate, so I haven't changed it.) check-in: fed7b51bdd user: jacob tags: trunk | |
| 09:47 | I'm not sure why I added htmlhelp.lib to the PuTTY link lines in r7000. I was probably half asleep. Actually, it's completely unnecessary to bind to it at link time, because we load it at run time in order to continue working as before on Win95. So I'm removing it again. check-in: 869dac9697 user: simon tags: trunk | |
| 04:39 | Nearly forgot: add the .CHM to the PuTTY installer. This involves making the manual shortcut in the Start menu point to one or other of the two help files depending on the version of Windows; fortunately Inno Setup has no difficulty doing that. check-in: a81b70cd1c user: simon tags: trunk | |
| 04:38 | `make mostlyclean', to remove everything directly Halibut-generated but not the CHM. It'll come in useful during the release process. check-in: 0587b1c08a user: simon tags: trunk | |
|
2006-12-24
| ||
| 10:25 | Add some CHM-related stuff to the release checklist. Don't want to forget about it when the time comes. check-in: 468f29b0f0 user: simon tags: trunk | |
|
2006-12-23
| ||
| 03:04 | After discussion with Jeroen Massar, here's a patch (mostly his) which we think fixes the vista-ipv6 problem. check-in: 7406c4f48d user: simon tags: trunk | |
|
2006-12-19
| ||
| 04:28 | Minor style tweaks for the CHM. check-in: ddecf5104c user: simon tags: trunk | |
|
2006-12-17
| ||
| 11:46 | Sort out line-endings on new file. check-in: 2a01e4927d user: jacob tags: trunk | |
| 05:16 | Initial support for HTML Help. All the ad-hoc help-file finding code and various calls to WinHelp() have been centralised into a new file winhelp.c, which in turn has been modified to detect a .CHM file as well as .HLP and select between them as appropriate. It explicitly tries to load HHCTRL.OCX and use GetProcAddress, meaning that it _should_ still work correctly on pre-HTML-Help platforms, falling gracefully back to WinHelp, but although I tested this by temporarily renaming my own HHCTRL.OCX I haven't yet been able to test it on a real HTML-Help-free platform. Also in this checkin: a new .but file and docs makefile changes to make it convenient to build the sources for a .CHM. As yet, owing to limitations of Halibut's CHM support, I'm not able to write a .CHM directly, more's the pity. check-in: e861af5aa9 user: simon tags: trunk | |
|
2006-12-09
| ||
| 09:44 | Set FD_CLOEXEC in a little convenience function that does the right thing with F_GETFD and F_SETFD. check-in: 7af697811b user: ben tags: trunk | |
|
2006-11-28
| ||
| 15:51 | Correct an embarrassingly wrong comment. check-in: 3c8ea162b2 user: simon tags: trunk | |
|
2006-11-23
| ||
| 08:32 | I've just discovered that using the saved sessions menu from Unix PuTTY causes the child process to inherit a lot of socket fds from its parent, which is a pain if one of them then ends up holding open a listening socket which the parent was using for port forwarding after the parent itself is dead. Therefore, this checkin sprinkles FD_CLOEXEC throughout the Unix platform directory wherever there looks like being a long-lived fd. check-in: 1002c29630 user: simon tags: trunk | |
|
2006-11-18
| ||
| 09:10 | Reinstate as much of the Windows font-linking behaviour as I can easily manage, by adopting a hybrid approach to Unicode text display. The old approach of simply calling ExtTextOutW provided font linking without us having to lift a finger, but didn't do the right thing when it came to bidirectional or Arabic-shaped text. Arabeyes' replacement exact_textout() supported the latter, but turned out to break the former (with no warning from the Windows API documentation, so it's not their fault). So now I've got a second wrapper layer called general_textout(), which splits the input string into substrings based on bidi character class. Any character liable to cause bidi or shaping behaviour if fed straight to ExtTextOutW is instead fed through Arabeyes' exact_textout(), but the rest is fed straight to ExtTextOutW as it used to be. The effect appears to be that font linking is restored for all characters _except_ Arabic and other bidi scripts, which means in particular that we are no longer in a state of regression over 0.57. (0.57 would have done font linking on Arabic as well, but would also have misbidied it, so we've merely exchanged one failure mode for another slightly less harmful one in that situation.) check-in: 76941fa153 user: simon tags: trunk | |
|
2006-11-15
| ||
| 17:42 | Chris Boucher spotted that after "-nc" was added (r6823), cfg->ssh_nc_host was not always initialised, which could lead to spurious attempts to open a bogus channel (typically refused: "FATAL ERROR: Server refused to open a direct-tcpip channel"). Fixed. check-in: 8472f487a9 user: jacob tags: trunk | |
| 17:12 | (Config).remote_cmd2[512] was added in r1208, but it wasn't used then and isn't now, so presumably never has been. Remove. check-in: ba05ea5d22 user: jacob tags: trunk | |
| 06:56 | publickeyfile now an RFC check-in: 81eb81326b user: jacob tags: trunk | |
| 05:48 | Link to faq-cleanup from faq-settings. check-in: 5174b633ca user: jacob tags: trunk | |
|
2006-11-08
| ||
| 15:15 | There's been an increase in people posting non-SSH PuTTY-related questions to comp.security.ssh, posting queries that are clearly about PuTTY to newsgroups without actually mentioning PuTTY, and so on. They may have been directed there by this document :( Add a futile attempt to instil a sense of etiquette. check-in: eac1e0cf0e user: jacob tags: trunk | |
|
2006-11-07
| ||
| 18:55 | Administrivia: most SSH-2 specs are no longer drafts. check-in: a5a1de44c9 user: jacob tags: trunk | |
|
2006-10-31
| ||
| 10:59 | Tiny comment fix. check-in: 2a8b9e487d user: jacob tags: trunk | |
|
2006-10-22
| ||
| 15:19 | Spotted by Tim Kosse: we were returning an incorrect path in canonify() when we couldn't get any sense out of the server. check-in: a809c336dd user: jacob tags: trunk | |
| 14:51 | Minor semantic tweak to bug-compatibility modes: make BUG_NEEDS_SSH1_PLAIN_PASSWORD do exactly what it says on the tin, independent of whether BUG_CHOKES_ON_SSH1_IGNORE is set. This is invisible in the default configuration, as all servers marked as having the second bug have the first one too, but it would allow one to manually configure PuTTY to cope with a SSH-1 server that got upset by ignore messages during authentication, but was fine with their use as keepalives. check-in: d0102515d4 user: jacob tags: trunk | |
|
2006-10-03
| ||
| 12:16 | Disable a bunch of undesirable termios flags. ICRNL, in particular, is liable to have been set on serial ports previously used as terminal devices, and definitely wants not to be set on serial ports being used for callout. check-in: b632e7b72f user: simon tags: trunk | |
|
2006-10-02
| ||
| 15:52 | IXON and IXOFF belong in _iflag_, not cflag! While I'm here, be more reliable in clearing of RTS/CTS flags. check-in: 4a236e9e9f user: simon tags: trunk | |
|
2006-09-21
| ||
| 06:48 | Fix breakage of `Restart Session' in r6802. When restarting the session, we were clearing the new session_closed flag, but failing to clear must_close_session; with that set, the session was being opened but immediately re-closed. check-in: 856b30b874 user: simon tags: trunk | |
|
2006-09-15
| ||
| 09:44 | Note that the dynamic-tunnel proxy does not support UDP, since we get asked about this quite often. check-in: 83c7b4cc04 user: jacob tags: trunk | |
|
2006-09-05
| ||
| 17:08 | CSI 3 J now clears the scrollback, as in xterm. check-in: de3c767e85 user: jacob tags: trunk | |
| 16:41 | I seem to have slightly funted Plink's display of banners etc in r6437, oops. Fixed. check-in: 93bc517218 user: jacob tags: trunk | |
| 16:39 | Slight change to password expiry UI for the benefit of Cisco servers, which are as usual slightly odd. check-in: 2887f76e0f user: jacob tags: trunk | |
|
2006-09-03
| ||
| 09:31 | Support for an alternative mechanism for displaying wide characters under X: instead of having two separate fixed-width fonts one of which is twice the width of the other, you can instead have a single font in which some characters are twice as wide as others. This is implemented very simply: if you specify a wide font, it will be used for wide characters, and if you don't then the normal font will be used for wide characters (so they'd better _be_ wide in that font, or there'll be trouble). I got this idea from Jed, whose latest version supports UTF-8 and requires a font of this type. If there are going to be X fonts like that kicking around, there will doubtless be people who want to use them. check-in: 8007266fdc user: simon tags: trunk | |
| 07:55 | Add a mini-rant to the top comment explaining why threads are required. (I just tried getting rid of them; it worked fine for serial ports, but not for anything else. The Windows I/O API sucks.) check-in: b2cd494085 user: simon tags: trunk | |
|
2006-08-29
| ||
| 16:46 | Updates for today's changes: - changes to Logging panel - breaks in serial backend (Plus, completely unrelated, an index term entry related to port forwarding which seems to have been sitting around for ages, possibly waiting for me to think about `see also' index terms in Halibut.) check-in: 8f65282e5c user: jacob tags: trunk | |
| 14:07 | New logging mode, which records the exact bytes sent over the wire in an SSH connection _in addition_ to the decrypted packets. This will hopefully come in useful for debugging wire data corruption issues: you can strace the server, enable this mode in the client, and compare the sent and received data. I'd _like_ to have this mode also log Diffie-Hellman private exponents, session IDs, encryption and MAC keys, so that the resulting log file could be used to independently verify the correctness of all cryptographic operations performed by PuTTY. However, I haven't been able to convince myself that the security implications are acceptable. (It doesn't matter that this information would permit an attacker to decrypt the session, because the _already_ decrypted session is stored alongside it in the log file. And I'm not planning, under any circumstances, to log users' private keys. But gaining access to the log file while the session was still running would permit an attacker to _hijack_ the session, and that's the iffy bit.) check-in: 5b5937160f user: simon tags: trunk | |
| 13:50 | Explicitly closing logctx on various kinds of error exit means that the log file gets fclosed properly and the critical last few messages might be recoverable from the log file more often... check-in: b802bd4ac5 user: simon tags: trunk | |
| 13:32 | The Windows HANDLE type, despite being a `void *', does not actually behave like a pointer. In particular, the right thing to set a HANDLE to to indicate that it's invalid is INVALID_HANDLE_VALUE, not NULL. Crack down on sloppy use of NULL HANDLEs across all Windows code. (There is one oddity, which is that {Create,Open}FileMapping are documented to return a NULL HANDLE instead of INVALID_HANDLE_VALUE on failure. Shrug. If MS want to be inconsistent, I suppose I have to live with it.) check-in: 8c6438590b user: simon tags: trunk | |
| 13:20 | Support for sending serial breaks, in both the Windows and Unix serial backends. check-in: 92fba70907 user: simon tags: trunk | |
| 04:18 | Inhibit the Serial configuration panel in mid-session if the session isn't a serial one. In particular, this causes pterm not to fail an assertion if you select `Change Settings'. Ahem. check-in: 0f9a8f4bb2 user: simon tags: trunk | |
|
2006-08-28
| ||
| 14:09 | Apparently MsgWaitForMultipleObjects doesn't always return the values one might expect, which means that GetMessage() was occasionally blocking the process. That appears to be the last of the annoying data loss issues, so I think the Windows serial back end actually looks vaguely reliable now. Phew. check-in: b83e5fdf72 user: simon tags: trunk | |
| 13:36 | That OVERLAPPED fix seems to have made flow control useful as well (presumably Windows's serial buffer is actually _filling up_, causing an XOFF to be sent, now that my dodgy I/O code isn't causing it to leak). So I think I'll switch the default flow control to XON/XOFF, since it actually seems to do something now. check-in: eca76f8423 user: simon tags: trunk | |
| 13:27 | Eep! Next bit flag after 1 and 2 is _4_, not 3. Perhaps it's time I stopped coding and went and sat down quietly and tried not to touch anything for a while. check-in: 8e09b64fa5 user: simon tags: trunk | |
| 13:26 | Reading 4K at a time from a serial port turns out to be a bit unfriendly in an interactive session, because at 19200 baud it takes nearly two seconds to receive that much data, and as long as the data is flowing continuously Windows waits until it has a full buffer. So here's another annoying flag in the winhandl API, which restricts reads to length 1 so that serial output shows up as it appears. (I tried this yesterday, but without the OVERLAPPED fix in r6826 it behaved very erratically. It now seems solid.) check-in: da46d6cd48 user: simon tags: trunk | |
| 13:16 | Apparently it helps for an OVERLAPPED structure to contain a valid event handle. This seems to have fixed _some_, but not all, of the curious data loss issues in the Windows serial backend. check-in: 51fdd5e6b1 user: simon tags: trunk | |
| 12:47 | Minor tweaks to -nc: - log host:port in event log - add -nc to Plink usage message check-in: 6310d3d2a4 user: jacob tags: trunk | |
| 12:41 | Missed a couple of instances of cfg_launchable(). check-in: 451f6c4481 user: simon tags: trunk | |
| 10:12 | New command-line option in Plink (and PuTTY, though it's less useful there): `plink host -nc host2:port' causes the SSH connection's main channel to be replaced with a direct-tcpip connection to the specified destination. This feature is mainly designed for use as a local proxy: setting your local proxy command to `plink %proxyhost -nc %host:%port' lets you tunnel SSH over SSH with a minimum of fuss. Works on all platforms. check-in: 3171b7e2b9 user: simon tags: trunk | |
| 09:29 | Serial back end for Unix. Due to hardware limitations (no Linux box I own has both an X display and a working serial port) I have been unable to give this the full testing it deserves; I've managed to demonstrate the basic functionality of Unix Plink talking to a serial port, but I haven't been able to test the GTK front end. I have no reason to think it will fail, but I'll be more comfortable once somebody has actually tested it. check-in: d6cb32325e user: simon tags: trunk | |
| 08:08 | ... and here's the rest of r6820. Ahem. check-in: 7f2ba0608e user: simon tags: trunk | |
| 08:08 | Because not all OSes will support the same set of serial port options, here's a slight change to the API of ser_setup_config_box() to make it filter its parity and flow control options using platform-supplied bit masks. check-in: 55bede7fcd user: simon tags: trunk | |
| 06:33 | Fix small event log bug. check-in: 8f84a68c51 user: simon tags: trunk | |
| 06:32 | Forgot to initialise serial->bufsize to zero. check-in: 13da7f5aa9 user: simon tags: trunk | |
| 06:13 | Fix line endings (svn:eol-style properties and actual CRs). check-in: a85def1d7c user: simon tags: trunk | |
| 05:35 | Support for Windows PuTTY connecting straight to a local serial port in place of making a network connection. This has involved a couple of minor infrastructure changes: - New dlg_label_change() function in the dialog.h interface, which alters the label on a control. Only used, at present, to switch the Host Name and Port boxes into Serial Line and Speed, which means that any platform not implementing serial connections (i.e. currently all but Windows) does not need to actually do anything in this function. Yet. - New small piece of infrastructure: cfg_launchable() determines whether a Config structure describes a session ready to be launched. This was previously determined by seeing if it had a non-empty host name, but it has to check the serial line as well so there's a centralised function for it. I haven't gone through all front ends and arranged for this function to be used everywhere it needs to be; so far I've only checked Windows. - Similarly, cfg_dest() returns the destination of a connection (host name or serial line) in a text format suitable for putting into messages such as `Unable to connect to %s'. check-in: d160e39029 user: simon tags: trunk | |
|
2006-08-27
| ||
| 06:55 | Now that Local proxy type exists on both Unix and Windows, document it and associated stuff. check-in: 7771df9f07 user: jacob tags: trunk | |
| 05:00 | Grow some nasty warts on the side of winhandl.c, in preparation for a serial port backend: - In order to do simultaneous reading and writing on the same HANDLE, you must enable overlapped access and pass an OVERLAPPED structure to each ReadFile and WriteFile call. This would make sense if it were an optional thing I could do if I wanted to do the reading and writing in the same thread, but making it mandatory even if I'm doing them in _different_ threads is just annoying and arbitrary. - Serial ports occasionally return length 0 from ReadFile, for no particularly good reason. Fortunately serial ports also don't have a real EOF condition to speak of, so ignoring EOFs is actually a viable response in spite of sounding utterly gross. Hence, handle_{input,output}_new() now accept a flags parameter, which includes a flag to enable the OVERLAPPED bureaucracy and a flag to cause EOFs to be ignored on input handles. The current clients of winhandl.c do not use either of these. check-in: 57c8f4b305 user: simon tags: trunk | |
| 04:53 | Remove spurious #include. check-in: 2510e22900 user: simon tags: trunk | |
| 03:34 | Call console_provide_logctx _before_ initialising the back end, so that logevent() will go to stderr in -v mode even during the back end init function. check-in: ed9c98fc34 user: simon tags: trunk | |
| 03:03 | The `socket' function in the backends is only ever checked to see if it's NULL. Since we already have one back end (uxpty) which doesn't in fact talk to a network socket, and may well have more soon, I'm replacing this TCP/IP-centric function with a nice neutral `connected' function returning a boolean. Nothing else about its semantics has currently changed. check-in: 32affe9699 user: simon tags: trunk | |
|
2006-08-26
| ||
| 05:59 | It's critically important that the local proxy process should not inherit _our_ ends of its I/O pipes! Otherwise, closing our copy of those handles does not cause it to see EOF on its stdin, because it's holding the pipe open itself. check-in: 6f9311ed1e user: simon tags: trunk | |
| 05:58 | We _can_ have handle_throttle() called on defunct handles after all, so it should just do nothing rather than failing an assertion. check-in: 4c082609c7 user: simon tags: trunk | |
| 05:20 | ProxyCommand support for Windows, using the new winhandl.c API. Seems a bit clunky when I actually try to use it - not sure why - but I think all the actual functionality is there. check-in: d173edc72d user: simon tags: trunk | |
| 05:19 | Another bug fix: always set the busy flag when telling a subthread to do something, otherwise handle_get_events will forget to tell the front end to check for that subthread finishing. This applies even when we're only setting `busy' to tell the subthread to terminate! check-in: 1ec96c6c9f user: simon tags: trunk | |
| 05:18 | Cleanups to reduce dependency on Windows SFTP tools always having a real network socket. check-in: bb3428dea2 user: simon tags: trunk | |
| 05:17 | On cleanup, PSCP and PSFTP should explicitly check that the back end is still running rather than relying on ssh_sftp_loop_iteration() to return a bogus value. check-in: 3f40f538fa user: simon tags: trunk | |
| 05:04 | Start using notify_remote_exit() in the Windows front end, in place of the previous ad-hockery which depended on the return value from select_result() and hence which will not adapt sensibly to a world in which the primary session is something local rather than a network connection. check-in: ce96560653 user: simon tags: trunk | |
| 04:21 | Return a non-zero exit code in the event of a fatal-error SSH session termination. `Close window only on clean exit' was not working properly on Unix in the absence of this: notify_remote_exit() was being called and ssh_return_exitcode was returning zero, causing gtk_main_quit() to be called, _before_ connection_fatal() happened. check-in: da0b093aaa user: simon tags: trunk | |
| 03:37 | Always initialise the `addresses' field of a SockAddr to NULL, because it gets unconditionally sfree()d in sk_addr_free(). This just bit me when running under the MSVC debugger; not sure how it hasn't bitten anyone until now! check-in: 6d715080f0 user: simon tags: trunk | |
| 03:15 | Bug fix: since the input thread does not wait for the event object until _after_ its first read, we should not start by signalling that object in order to trigger the first read. Ahem. check-in: bb6d97d9b2 user: simon tags: trunk | |
| 02:41 | Small tweak to the new handle API: provide a `privdata' field in each handle structure, set on initialisation and readable by an API call. check-in: 620f32c917 user: simon tags: trunk | |
|
2006-08-25
| ||
| 17:10 | New piece of Windows infrastructure: winhandl.c takes Plink's thread-based approach to stdin and stdout, wraps it in a halfway sensible API, and makes it a globally available service across all network tools. There is no direct functionality enhancement from this checkin: winplink.c now talks to the new API instead of doing it all internally, but does nothing different as a result. However, this should lay the groundwork for several diverse pieces of work in future: pipe-based ProxyCommand on Windows, a serial port back end, and (hopefully) a pipe-based means of communicating with Pageant, which should have sensible blocking behaviour and hence permit asynchronous agent requests and decrypt-on-demand. check-in: 2156c9bb4b user: simon tags: trunk | |
|
2006-08-15
| ||
| 17:48 | Er, ahem. Other half of r6788. :-/ check-in: 0544b4b30e user: simon tags: trunk | |
| 15:29 | Shifts left and right by 32 were tripping a gcc warning (fatal with -Werror, of course) about shifting by more than the range of a data type. They only appeared in `if' statements testing sizeof(off_t), but gcc warns even when the code is unreachable. I've removed the conditional code (the general case should still work even on 32-bit machines), and hacked each shift by 32 into a pair of shifts by 16. Note that the gcc warning is not just a helpful indication that you may be using the wrong data type; it's actually pointing out ANSI- undefined behaviour in shifting a signed integer beyond the size of its type. check-in: 3771100200 user: simon tags: trunk | |
| 07:45 | Aha! At long last I've managed to reproduce the intermittent problem I've been having with the cursor sometimes restoring to the wrong place when screen(1) terminates. The offending sequence of escape sequences goes ESC 7 (save cursor), ESC [?47h (switch to alternate screen), ESC 7 (save cursor _again_), do some stuff, ESC 8 (restore cursor), run screen session for a bit, ESC [?47l (return to main screen), ESC 8 (restore cursor). The final ESC 8 is expected to restore the cursor to where it was saved by the initial ESC 7. Translation: the ESC 7 saved cursor state is part of the state we must swap out when switching to the alternate screen. In other words, we need to track _four_ cursor positions: active and saved, on each of main and alternate screen. Previously we were tracking only three. check-in: b6448111db user: simon tags: trunk | |
|
2006-08-12
| ||
| 10:20 | Large file support for psftp and pscp on both Windows and Unix. On Unix we set _FILE_OFFSET_BITS to 64 on the compiler command line (via mkfiles.pl), and on Windows we use SetFilePointer and GetFileSize to cope with 64-bit sizes where possible. Not tested on Win9x. check-in: ec84bb61b9 user: owen tags: trunk | |
|
2006-08-05
| ||
| 08:48 | Some extra int64 functions. check-in: 7655cbbe4f user: owen tags: trunk | |
|
2006-07-07
| ||
| 15:56 | Spell out more explicitly what needs to be done with vanilla VC6, since it seems to be becoming a FAQ. check-in: 704a813ad8 user: jacob tags: trunk | |
| 09:18 | Random Unix puttygen improvements highlighted by a post to comp.security.ssh: - fix diagnostic if keyfile and '-t' both specified - add diagnostic for generating a key but discarding the private part - document '-q' option check-in: 7eabb3b6ff user: jacob tags: trunk | |
|
2006-06-20
| ||
| 16:10 | In the config dialog, clip RGB values to [0..255] rather than reducing them mod 256. Document that the RGB values can be edited, and their range. check-in: c17530c621 user: jacob tags: trunk | |
|
2006-06-17
| ||
| 08:01 | When Unix PuTTYgen gives brief usage information, it should mention "--help"! check-in: b9a8213d57 user: jacob tags: trunk | |
| 07:02 | Robert Evans spotted that bignum_decimal() failed to cope with being given a zero input. This shouldn't matter for PuTTY, as these routines are only used in PuTTYgen, to output SSH-1 format public key exponents/moduli, which should be nonzero. check-in: fced7ed12c user: jacob tags: trunk | |
|
2006-06-16
| ||
| 08:09 | Update status of our PocketPC port. check-in: 4f52be62ba user: jacob tags: trunk | |
|
2006-06-11
| ||
| 07:56 | Do not send raw mouse events in the middle of a selection operation, even if we otherwise would (for instance, if Shift is released before the mouse button being used for selection). check-in: 2e768838ff user: jacob tags: trunk | |
|
2006-06-02
| ||
| 03:46 | Lionel Fourquaux offers this very simple patch to speed up SFTP, simply by upping the packet sizes and maximum in-flight packet count. Got to be worth a try, I think! check-in: 2cb25a46b3 user: simon tags: trunk | |
|
2006-05-26
| ||
| 07:45 | Make it clearer that `psftp -b' doesn't return to the interactive prompt if the script doesn't end with an explicit `quit'. check-in: 1bc1435899 user: simon tags: trunk | |
|
2006-05-21
| ||
| 07:20 | Port r6710 from puzzles: Patch from Ben Hutchings to prevent an ugly special case in &splitline in which a line is `split' into a line ending in a backslash followed by a completely blank line. check-in: d90992e39c user: jacob tags: trunk | |
|
2006-05-17
| ||
| 07:06 | Link to new `key-formats-natively' wishlist item from appropriate FAQ. check-in: 95c74259f2 user: jacob tags: trunk | |
|
2006-05-12
| ||
| 06:02 | pty_init should put _something_ into realhost check-in: d92da8d7b9 user: owen tags: trunk | |
|
2006-04-26
| ||
| 18:01 | sbcsgen.pl was giving different results on different machines in the case where two SBCS code points mapped to a single Unicode point. Changed so that by default it favours the lower SBCS code point. On ixion, this highlighted ambiguities in CS_MAC_THAI, CS_MAC_SYMBOL, and CS_VISCII. Guessed at a preference for the first two and added "sortpriority" directives. (No idea about VISCII.) check-in: 471812fd14 user: jacob tags: trunk | |
|
2006-04-23
| ||
| 13:26 | Sprinkle some header comments in various files in an attempt to explain what they're for. check-in: 7932188e51 user: jacob tags: trunk | |
|
2006-04-16
| ||
| 06:15 | PocketPuTTY website moved. check-in: fba210a48f user: jacob tags: trunk | |
|
2006-04-13
| ||
| 16:18 | Everywhere we print an fxp_error(), try to make it clear what we were trying to do at the time. (A lot of these say just "canonify:". This isn't a nice thing to show to a user, but I don't believe canonify() will ever return failure due to a server error, so users shouldn't actually see it, and it means we have a chance of tracing it if reported.) check-in: 5196811374 user: jacob tags: trunk | |
|
2006-04-07
| ||
| 16:42 | Remove login name prompt from PSFTP. ssh.c will prompt for a login name as required, and doing so in psftp.c before we've even made a connection is incorrect wrt `bypass-ssh2-userauth'. check-in: daea38aac5 user: jacob tags: trunk | |
|
2006-03-31
| ||
| 03:26 | ECCN / FIPS - we can't be arsed. check-in: f7fda73b4a user: owen tags: trunk | |
|
2006-03-29
| ||
| 11:55 | Update size when going from maximised to full screen. check-in: 23a1c6f75e user: owen tags: trunk | |
|
2006-03-15
| ||
| 08:31 | Explicitly add linking to our website to the "asking permission for things" section. Replace the FAQ text with a summary + link to feedback.but. check-in: f4f5824aac user: jacob tags: trunk | |
|
2006-03-14
| ||
| 16:01 | Fix minor memory leak. check-in: c92727f499 user: jacob tags: trunk | |
| 05:21 | Pageant docs didn't mention that you could load keys into an existing Pageant from the command line. check-in: b338eb7806 user: jacob tags: trunk | |
|
2006-03-12
| ||
| 16:17 | Equivalent of r6583 window-border palette-change fix for Gtk. check-in: 06ec31208c user: jacob tags: trunk | |
| 13:24 | Dimitry Andric spotted that DH gex with SHA-256 was overflowing a buffer. Fixed, and added paranoia so that this shouldn't happen again. check-in: ff7555e2cd user: jacob tags: trunk | |
| 09:39 | Log the hash used for DH kex (now there's a choice). check-in: 160e173d94 user: jacob tags: trunk | |
| 08:53 | Fix inadvertent O(N^2) loop within do_paint() which I just discovered when profiling IPBT. check-in: e368f18c9a user: simon tags: trunk | |
|
2006-03-08
| ||
| 17:16 | Flesh out `-m' caveats slightly. check-in: 309de1336c user: jacob tags: trunk | |
| 12:15 | Oh, and update the docs for NetHack keypad mode too. check-in: 91b0027b9e user: simon tags: trunk | |
| 12:10 | David Damerell tells me I should be using Ctrl-hjklyubn rather than Shift-hjklyubn for batch movement in NetHack, because they have subtly different behaviour within the game and the Ctrl-moves are more useful. Unfortunately, PuTTY's NetHack keypad mode doesn't support Ctrl-moves. Therefore, it does now :-) check-in: 396c775fc5 user: simon tags: trunk | |
|
2006-02-27
| ||
| 17:55 | Fix a memory leak in key generation. check-in: 898c8db8c4 user: jacob tags: trunk | |
| 16:30 | Change XXX-REMOVE-BEFORE-RELEASE to XXX-REVIEW-BEFORE-RELEASE to allow more general changes to be queued up. check-in: 8e223dda48 user: jacob tags: trunk | |
| 16:27 | Batch of miscellaneous tweaks to the Windows installer: - Now we've fixed `win-versioninfo', choose some sensible outcomes from the installer's comparisons of binary version numbers. Also, give the installer _itself_ a matching binary version. In particular, without this change, it would not have been possible to downgrade PuTTY -- it would have silently left the "newer" files in place. Now it will make some fuss, but permit it. - Also remove descriptions from shortcuts, on the grounds that the binaries have embedded descriptions now. (Although I've not checked whether those are actually visible in the Start Menu.) - At the request of various people (e.g., PJB), add flags so that if files are in use at the time the (un)installer is run, replacement is deferred to the next restart. (The user may be prompted to restart, which isn't ideal; see comments). This is supposed to make centrally-pushed silent upgrades more robust. - Note some limitations of the installer. check-in: ae70784090 user: jacob tags: trunk | |
|
2006-02-25
| ||
| 08:13 | Alain Guibert points out that palette changes weren't causing the space between the text area and the window border to be refreshed. Fixed on Windows. Gtk still has a similar problem. check-in: e9756c0bd4 user: jacob tags: trunk | |
|
2006-02-23
| ||
| 07:38 | Do proper select-for-write on ptys. Currently, pasting a sufficiently large string into pterm in any circumstances in which it's echoed back to the terminal will cause a deadlock once the pty's write buffer fills up. check-in: f7782e75bd user: simon tags: trunk | |
|
2006-02-20
| ||
| 13:54 | Alain Guibert points out that ESC]P sequences were erroneously accepting 'G' as a hex digit. (The _first_ digit of the sequence intentionally goes up further than F, but the remaining ones shouldn't have.) check-in: 14247e5d72 user: simon tags: trunk | |
|
2006-02-19
| ||
| 16:37 | Daniel Meidlinger points out a redundant test :-) check-in: f643efedb0 user: simon tags: trunk | |
| 08:59 | Fix `restart-reset-terminal': terminal now restored to a sensible state when reusing a window to restart a session. check-in: a9fe99c1ad user: jacob tags: trunk | |
| 08:10 | Add/tweak a couple of comments. check-in: 4c1dee7ad6 user: jacob tags: trunk | |
| 06:52 | Fix up documentation/usage messages for r6572. check-in: 82ba29d738 user: jacob tags: trunk | |
| 06:05 | Introduce a new checkbox and command-line option to inhibit use of Pageant for local authentication. (This is a `don't use Pageant for authentication at session startup' button rather than a `pretend Pageant doesn't exist' button: that is, agent forwarding is independent of this option.) check-in: 312df617cd user: simon tags: trunk | |
|
2006-02-18
| ||
| 19:37 | At last, a fix for `large-clipboard-crash'. A growable buffer was only being grown for actual text, not for newlines or trailing NULs. A large run of empty lines could lead to newlines overflowing the buffer (> 100 should be enough to guarantee this on all platforms, after the initial 5k size of the buffer). Also fix some valgrind in the same area (was probably harmless), and a memory leak introduced by the RTF attribute pasting. check-in: 8c998698f4 user: jacob tags: trunk | |
| 16:30 | Pointer type correction in term_clrsb(). (Harmless, as it happens.) check-in: d02651ccc3 user: jacob tags: trunk | |
|
2006-02-14
| ||
| 07:14 | Typo in r6555 spotted by Daniel Meidlinger. check-in: 43fb61a310 user: jacob tags: trunk | |
|
2006-02-13
| ||
| 16:25 | RTF pasting now includes colours and style. Say so. check-in: a6e9490e62 user: owen tags: trunk | |
| 16:18 | Preserve more attributes of text copied as RTF. Thanks to Stephen Balousek. check-in: e24538d25e user: owen tags: trunk | |
|
2006-02-11
| ||
| 13:10 | Don Heap spotted that our heuristics for dealing with IPv6 literal addresses in the PSCP command line were bogus, giving "remote to remote not supported" errors with filenames like '[].txt'. Made the heuristic less bogus. check-in: 5f8792b0e9 user: jacob tags: trunk | |
| 12:29 | Failure to connect to a Unix-domain socket could cause a segfault. Fixed. check-in: 54ac07652e user: jacob tags: trunk | |
| 12:00 | A zero-length return from platform_get_x_display() (for instance, a zero-length DISPLAY variable in the environment) caused an assertion failure when X11 forwarding was attempted. Fixed (now treated the same as a NULL return, e.g., a non-existent DISPLAY variable). check-in: 2c5a04569e user: jacob tags: trunk | |