Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
455 check-ins using file puttyps.h version 812f595c7c
|
2010-09-25
| ||
| 02:30 | Retire the old Mac Classic port directory! It's been unused for ages, is increasingly irrelevant now that 'Mac' pretty much universally means something running OS X, is probably bit-rotted past usefulness already, and certainly will be after the next time some major reengineering takes place. check-in: 2ea358a2d5 user: simon tags: trunk | |
| 02:16 | Cleanups of the GSSAPI support. On Windows, standard GSS libraries are now loaded from standard locations (system32 for SSPI, the registry-stored MIT KfW install location for KfW) rather than using the risky default DLL search path; I've therefore also added an option to manually specify a GSS DLL we haven't heard of (which should in principle Just Work provided it supports proper GSS-API as specified in the RFC). The same option exists on Unix too, because it seemed like too useful an idea to reserve to Windows. In addition, GSSAPI is now documented, and also (unfortunately) its GUI configuration has been moved out into a sub-subpanel on the grounds that it was too big to fit in Auth. check-in: e760173d54 user: simon tags: trunk | |
|
2010-09-15
| ||
| 13:50 | Use the same key for both saving and loading the GSSAPI implementation preference list. Spotted by Daniel Kessler. check-in: cd8bd17f89 user: jacob tags: trunk | |
|
2010-09-13
| ||
| 03:45 | Fix obvious braino in the Windows GSSAPI library display names. check-in: ef13b5d841 user: simon tags: trunk | |
| 03:29 | Create, and use for all loads of system DLLs, a wrapper function called load_system32_dll() which constructs a full pathname for the DLL using GetSystemDirectory. The only DLL load not covered by this change is the one for gssapi32.dll, because that one's not in the system32 directory. check-in: ebb9344ea6 user: simon tags: trunk | |
|
2010-09-09
| ||
| 09:36 | Missing close() causing resource leak when reading from /dev/random. check-in: 98904e2e61 user: simon tags: trunk | |
| 09:35 | Remove redundant check for NULL in sshfwd_close(). The thing we're testing against NULL has already been dereferenced by the time we bother to test it, so it's a bit pointless - and in any case, no null pointer can come to this function from any existing call site. check-in: f6168ac02d user: simon tags: trunk | |
| 09:32 | Cast incoming characters to unsigned char to avoid accidental sign extension. Since ldisc_send() uses bit 8 as an internal flag, we shouldn't be setting it except when we really want to. check-in: c0b06b69f5 user: simon tags: trunk | |
|
2010-08-10
| ||
| 13:45 | When we disconnect because we have no supported authentication methods left to try, it's nice to have the version of that message going to the client contain the list of methods sent by the server. Saves a user having to pull it out of an SSH packet log. check-in: b79dae693b user: simon tags: trunk | |
| 12:21 | Mass correction of svn:keywords and svn:eol-style properties. check-in: fdf4280859 user: simon tags: trunk | |
|
2010-07-30
| ||
| 15:47 | Cancelling a remote port forwarding that had been refused by the server caused a double-free. Reported and diagnosed by Sven Schaepe. Also fix a minor memory leak in ssh_free(). check-in: 679b1b8e8b user: jacob tags: trunk | |
| 14:45 | A comment typo fix I've had lying around for a while. check-in: 8d38bf5439 user: jacob tags: trunk | |
|
2010-07-04
| ||
| 17:53 | Patch from Alan Ning (somewhat polished by me): introduce a flag called 'pending_close'. This deals with the situation in which we're forwarding a port, have received and locally buffered some data from the local endpoint but not yet been able to pass it down the SSH connection due to window limitations, and then the local endpoint closes its socket. In this situation what we've been doing until now is to immediately send SSH2_MSG_CHANNEL_CLOSE, causing the data still in our local buffer to be lost; now we instead set the new flag, which will remind us to send SSH2_MSG_CHANNEL_CLOSE _after_ we empty our bufchain. Should fix at least one manifestation of 'portfwd-close', though I don't know if it's the cause of all the reports we've ever seen. check-in: d39e55d060 user: simon tags: trunk | |
|
2010-06-29
| ||
| 17:00 | Set WM_TRANSIENT_FOR appropriately on the "about" box so that fvwm doesn't insist on finding a bit of spare screen to put it in. Still pondering whether it's sensible to do this with the "change settings" box as well. check-in: 4600d0085a user: ben tags: trunk | |
|
2010-05-30
| ||
| 17:50 | Move '-w' in the #! line into 'use warnings;' in the Perl code, to simplify the #! line. check-in: c2d1be4c30 user: simon tags: trunk | |
|
2010-05-29
| ||
| 09:04 | 'perl -w' safety in mkfiles.pl. check-in: 4d70ed20bd user: simon tags: trunk | |
|
2010-05-22
| ||
| 09:07 | Restore the configure check for GTK 1, which I accidentally removed as part of r8952 (the patch submitter had done it as a temporary measure and I forgot to undo it before checkin). check-in: 63cb12ddf5 user: simon tags: trunk | |
|
2010-05-19
| ||
| 13:22 | Patch from Alejandro Sedeno, somewhat modified by me, which reorganises the GSSAPI support so that it handles alternative implementations of the GSS-API. In particular, this means PuTTY can now talk to MIT Kerberos for Windows instead of being limited to SSPI. I don't know for sure whether further tweaking will be needed (to the UI, most likely, or to automatic selection of credentials), but testing reports suggest it's now at least worth committing to trunk to get it more widely tested. check-in: d096e14ac5 user: simon tags: trunk | |
|
2010-04-26
| ||
| 12:28 | When doing custom bob builds from a given SVN revision, include the date and time in the About box. check-in: e39ea5f37a user: simon tags: trunk | |
|
2010-04-24
| ||
| 02:14 | Bah, missed out a tiny but build-breaking part of r8926. check-in: cbd85b4490 user: simon tags: trunk | |
|
2010-04-23
| ||
| 13:32 | New SSH bug flag, for 'can't handle SSH2_MSG_IGNORE'. Another user today reported an SSH2_MSG_UNIMPLEMENTED from a Cisco router which looks as if it was triggered by SSH2_MSG_IGNORE, so I'm experimentally putting this flag in. Currently must be manually enabled, though if it turns out to solve the user's problem then I'll probably add at least one version string... [Edited commit message: actually, I also committed in error a piece of experimental code as part of this checkin. Serve me right for not running 'svn diff' first.] check-in: 9c99f25c74 user: simon tags: trunk | |
|
2010-04-12
| ||
| 06:02 | Add comments on OpenSSH AES-encrypted key support, including one mentioning that I haven't yet switched to _exporting_ OpenSSH keys in the new style. check-in: 3b36ea5a90 user: simon tags: trunk | |
| 05:55 | Support importing of new-style OpenSSH private keys (encrypted by AES rather than 3DES). check-in: ef0fbcd9b8 user: simon tags: trunk | |
|
2010-03-25
| ||
| 19:54 | Remove SECURITY_WIN32 (knock-on from r8910, which validates it somewhat). check-in: 137be05b3b user: jacob tags: trunk | |
| 13:41 | r8909 broke the Visual Studio build. check-in: 0fc8f8c9ea user: jacob tags: trunk | |
|
2010-03-24
| ||
| 15:12 | When looking for a local username on Windows, if we can get hold of the NameUserPrincipal, use that; this avoids an issue with SSPI/GSSAPI where the user logged in to the local machine with a different case of username to the (case-sensitive) Kerberos username. Falls back to GetUserName as before if that doesn't work (for machines not on a domain, and Win9x). Based on a patch by SebastianUnger. check-in: 2080e9716a user: jacob tags: trunk | |
|
2010-03-14
| ||
| 13:58 | r8854/5 broke compilation with Gtk 1.2. Grow a hack to cope. check-in: 97d481dae0 user: jacob tags: trunk | |
|
2010-03-13
| ||
| 09:14 | I think r8738 broke IPv6 in MSVC Windows builds due to conflict with the WspiapiGetAddrInfo wrapper for getaddrinfo() in MSVC. Split GET_WINDOWS_FUNCTION into two variants, one with the old behaviour (bypassing the preprocessor) and another with the new behaviour (for ANSI/Unicode, although it's not actually used anywhere currently). check-in: 731886a245 user: jacob tags: trunk | |
| 08:47 | Tweak description of dynamic port forwarding, and point people running into 'Out of space for port forwardings' at it. check-in: 0e44be0bf1 user: jacob tags: trunk | |
|
2010-03-06
| ||
| 09:50 | Centralise generation of the control sequences for arrow keys into a function in terminal.c, and replace the cloned-and-hacked handling code in all our front ends with calls to that. This was intended for code cleanliness, but a side effect is to make the GTK arrow-key handling support disabling of application cursor key mode in the Features panel. Previously that checkbox was accidentally ignored, and nobody seems to have noticed before! check-in: 35aecab820 user: simon tags: trunk | |
|
2010-02-20
| ||
| 13:15 | Unix console utilities should send prompts to /dev/tty or failing that stderr, not to stdout. check-in: d32827a7f2 user: simon tags: trunk | |
| 13:06 | Colin Watson reports that linking with 'gold' doesn't work, because PuTTY makes explicit use of libX11 without including -lX11 on the link line. (GNU ld appears to pull in libX11 automatically because it's needed for the dependencies of GTK, but gold expects that dependency to be satisfied at run time via DT_NEEDED and hence doesn't bother.) Hence, add explicit -lX11 to both Makefile.gtk and the autoconf world. check-in: b7eb6b8ae9 user: simon tags: trunk | |
| 05:21 | Update to r8614: another -D_FORTIFY_SOURCE=2 fix. check-in: a89fe5a769 user: simon tags: trunk | |
|
2010-02-17
| ||
| 13:02 | Null out the socket pointers in X- and port-forwarding channels for which we close the socket without destroying the channel. John Peterson reports periodic crashes under heavy load which appear to be fixed by this, though I don't know the exact circumstances induced by that load. check-in: 40866f6b70 user: simon tags: trunk | |
|
2010-01-25
| ||
| 08:33 | ...and the rest of r8854. check-in: 698420e57a user: jacob tags: trunk | |
|
2010-01-23
| ||
| 06:25 | Our handling of timers in Gtk was truncating times on 64-bit systems; one symptom was that the terminal window would not update until a focus-change event. Spotted and patched by Max Kellermann. check-in: d38cce3d87 user: jacob tags: trunk | |
|
2010-01-17
| ||
| 17:53 | Revert r8847, which was bilge; I can't magically change the order of a tree just by giving a different sorting function to find234(). check-in: c2eb6eced0 user: jacob tags: trunk | |
| 11:27 | It's a new year. check-in: 396c88ece5 user: jacob tags: trunk | |
| 10:22 | Change expiry of timers when their contexts go away from lazy to eager. Intended to be of benefit to derived code making many connections from a single process. check-in: bb1cad5917 user: jacob tags: trunk | |
| 10:20 | Plug a few minor memory leaks, based on a patch by Sirp Potijk. While I'm here, add an assertion in sshrand.c to catch mistakes in reference counting. check-in: fecf1a52c9 user: jacob tags: trunk | |
|
2009-11-22
| ||
| 13:10 | On Windows, character set specifications of the form 'IBM437' would never have worked due to a typo. Spotted by Todd Burkey. check-in: 395ba90760 user: jacob tags: trunk | |
|
2009-11-13
| ||
| 07:24 | Add a keyboard shortcut for the "serial" protocol to the GUI. Will cause non-zero, but hopefully acceptable, disruption to people's finger macros. check-in: b79ee3085f user: jacob tags: trunk | |
|
2009-11-10
| ||
| 13:14 | Patch from Tim Kosse to fix 64-bit-cleanness in SHA-512. check-in: d32d173608 user: simon tags: trunk | |
|
2009-11-08
| ||
| 13:25 | We defined tried_shgetfolderpath but never actually set it. Harmless, but fixed. check-in: e07225584a user: jacob tags: trunk | |
| 13:22 | Use DECL/GET_WINDOWS_FUNCTION in a few more places in place of ad-hoc GetProcAddress(). check-in: de2a5fba6a user: jacob tags: trunk | |
| 12:47 | Move the two existing DECL/GET_foo_FUNCTION macro sets used for dynamic linking on Windows into a single global one, which can cope with function renaming. Intended to enable eventual removal of ANSI-specific DoSomethingA references (although I've not removed any). check-in: 10f4a37d77 user: jacob tags: trunk | |
| 12:25 | Improve buffer handling in Windows sk_getaddr() -- we were passing uninitialised storage into WSAAddressToString()'s length function (and presumably getting away with it by luck). Also improve error handling (exposed by my Wine installation, which returns an error from WSAAddressToString() for connections to localhost for some reason). check-in: 6f1dcc5227 user: jacob tags: trunk | |
|
2009-11-01
| ||
| 16:06 | Stop trying to enumerate all the kinds of Windows we support on the download page. Define in more detail what we mean by "Windows" in the Ports section of the FAQ. check-in: 14ddde52f8 user: jacob tags: trunk | |
|
2009-09-27
| ||
| 11:20 | Remove is_shift_pressed() -- it's not been used since r4906. check-in: 63058ec840 user: jacob tags: trunk | |
| 11:07 | Another warning fix and cosmetic tweakage. check-in: 24756eb643 user: jacob tags: trunk | |
| 10:52 | Quell more warnings and, perhaps, avoid alignment faults on 64-bit Windows. check-in: d56656f7b8 user: jacob tags: trunk | |
| 10:31 | Fix some (probably harmless) warnings. check-in: 95f383c5c3 user: jacob tags: trunk | |
|
2009-09-25
| ||
| 18:32 | Change manifest files to declare Windows GUI apps to be "DPI-aware", that is, not fazed by being displayed at other than 96DPI; testing on Vista at a range of DPIs indicates that we cope (with the minor and inevitable exception of the drag-list control). This stops pixel scaling and hence fuzzy display on high-resolution displays. (Hope this is last disastrous than my last set of manifest tweaks! -- <http://support.fogcreek.com/default.asp?copilot.6.26840.1> suggests that this is an OK thing to do.) check-in: e4ebebae53 user: jacob tags: trunk | |
|
2009-09-16
| ||
| 17:28 | Fix minor file descriptor leaks. Found by cppcheck, reported by Tim Kosse. check-in: f22fd7eb98 user: jacob tags: trunk | |
|
2009-09-14
| ||
| 16:26 | Since r7266, it's been possible to get a hostname into Default Settings; but plink did not cope gracefully with this -- it was not possible to override that hostname on the command line (attempts at doing so would be treated as part of the remote command). Fix this by applying the principle of r7265: if the user didn't explicitly specify that they wanted to launch the hostname in the default (for instance with '-load "Default Settings"', we assume they don't want to, and such a hostname doesn't count when deciding whether to treat a non-option argument as hostname or command. check-in: 20880a1ebe user: jacob tags: trunk | |
|
2009-09-13
| ||
| 18:41 | In Unix PuTTY, grey out "Restart Session" when it doesn't apply (as the Windows version does), rather than hiding it completely. check-in: 239594768a user: jacob tags: trunk | |
| 18:37 | Add a couple of ellipses in Unix context menu (like r759 on Windows). check-in: 0a2d6244f2 user: jacob tags: trunk | |
| 18:29 | If there are no saved sessions, put a grayed "(No sessions)" entry on the saved sessions submenu of the terminal window context menu (as Pageant does), rather than an empty menu (which often renders poorly). check-in: 67bc4c7b05 user: jacob tags: trunk | |
|
2009-08-30
| ||
| 08:16 | Avoid compiling autoconf test programs with -Wall -Werror; doing so causes trouble on Ubuntu, where the Gtk test programs don't check the return value from system() and thus fall foul of the combination of our -Werror and <https://wiki.ubuntu.com/CompilerFlags#-D_FORTIFY_SOURCE=2>. check-in: 0516506708 user: jacob tags: trunk | |
| 06:09 | Minor improvements to error reporting in logging. check-in: f5f8c5e862 user: jacob tags: trunk | |
|
2009-08-21
| ||
| 18:25 | Remove outdated comment. check-in: 337a48e8d8 user: jacob tags: trunk | |
| 17:29 | From Corey Stup: when we're declaring stuff for WSAAddressToStringA, we should use the explicitly-narrow type LPSTR, not the switchable type LPTSTR. (Since we currently build without UNICODE this makes no practical difference to us now.) check-in: 911d1f3e09 user: jacob tags: trunk | |
| 16:16 | Corey Stup points out a memory leak in the local-proxy implementations. check-in: d2d15b58f4 user: jacob tags: trunk | |
| 15:05 | Corey Stup points out that any attempt to display the message "Unable to load any WinSock library" will lead to a segfault. check-in: 71f110ef4b user: jacob tags: trunk | |
|
2009-08-18
| ||
| 18:51 | Attempt to filter out duplicate port forwardings in the GUI. check-in: a55940aad5 user: jacob tags: trunk | |
| 18:38 | Fix handling of duplicate port forwardings; they were effectively cancelling out, but are now just ignored. (We should make more effort to prevent duplicates before they get as far as ssh_setup_portfwd() -- it's currently trivially easy to enter them in the GUI and on the command line, let alone both -- but there's bound to be someone with a saved session containing dupes out there by now, and anyway there are duplicates we can't detect before getting this far, for instance "1234:localhost:22" vs "1234:localhost:ssh".) check-in: 16f350f6b0 user: jacob tags: trunk | |
|
2009-08-16
| ||
| 17:51 | Quell "config.status: WARNING: Makefile.in seems to ignore the --datarootdir setting" warning when running ./configure, per <http://www.gnu.org/software/autoconf/manual/html_node/Changed-Directory-Variables.html> check-in: dfb13212a3 user: jacob tags: trunk | |
|
2009-08-15
| ||
| 12:45 | Keep the state of the "Full Screen" menu item on the Ctrl+right-click context menu in sync with reality and the system menu. check-in: 8ce7de2804 user: jacob tags: trunk | |
|
2009-08-13
| ||
| 17:01 | Add "-serial" to Plink's usage message. check-in: db550eade7 user: jacob tags: trunk | |
|
2009-08-10
| ||
| 15:55 | Patch from Alan Clucas (somewhat polished) providing command-line options to select and configure serial port mode. check-in: 8384fb9144 user: simon tags: trunk | |
| 15:38 | Fixes for re-entrant calls in the serial configuration list boxes. (I'm starting to think I made an egregious design error somewhere in this mechanism.) check-in: aa0d4a985b user: simon tags: trunk | |
|
2009-08-06
| ||
| 19:19 | Workarounds for compiling with -D_FORTIFY_SOURCE=2 (as Ubuntu does), which doesn't like you to ignore the return value from read()/write()/etc (and apparently can't be shut up with a cast to void). check-in: c1918bea98 user: jacob tags: trunk | |
| 17:55 | More use of sockaddr_union (above and beyond that necessary to remove current warnings). check-in: a341764006 user: jacob tags: trunk | |
| 17:12 | Avoid "dereferencing pointer 'sa' does break strict-aliasing rules" warnings from recent versions of GCC. check-in: bbcbaf04fd user: jacob tags: trunk | |
|
2009-07-28
| ||
| 18:45 | Alex Besogonov suggests that our Unix autoconf GSSAPI library search order is sub-optimal -- apparently it prefers shishi above Heimdal, and apparently that's bad. check-in: 3e52850b91 user: jacob tags: trunk | |
| 18:30 | Mention Makefile.ux. Be less certain about the possibility of building with vanilla VC6. Provide more details of actively tested toolchains. check-in: 1cf3100f88 user: jacob tags: trunk | |
| 18:20 | Include putty.h (and hence uxconfig.h) before testing for NO_GSSAPI, so that "./configure --without-gssapi" actually works. Spotted by Rob Shinn. check-in: 8a134cc73a user: jacob tags: trunk | |
|
2009-07-12
| ||
| 07:02 | Typo: replace a \i with a \I. check-in: 3c79a67214 user: simon tags: trunk | |
|
2009-06-10
| ||
| 12:42 | Clearing and refilling the code-pages list box can cause a re-entrant call to its handler in config.c, which destroys the previous value in cfg->line_codepage. Therefore, preserve the right value in an automatic variable until all the re-entrant calls have finished. check-in: 456fa805f5 user: simon tags: trunk | |
|
2009-05-11
| ||
| 13:48 | Add a 'unix' Makefile type, for building the non-GUI parts of the PuTTY suite on non-GTK-enabled build platforms. check-in: b60c3e56cd user: simon tags: trunk | |
| 03:46 | Pango-based font handling: combine display of adjacent characters into a single gdk_draw_layout() where conveniently feasible, after some work with xtrace revealed this as a major source of pterm's slow display updates when using client-side fonts. Ideally we ought to be able to do better. I know exactly what sequence of X protocol operations I want to see on the wire, but I don't know how to persuade Pango to generate them. check-in: e576c2c032 user: simon tags: trunk | |
|
2009-04-26
| ||
| 18:44 | Ansgar Wiechers points out that known_hosts (at least OpenSSH's) has grown a means of specifying port numbers, so we should support that. check-in: dec77ca0b0 user: jacob tags: trunk | |
| 18:03 | Discard hashed hostnames from input. check-in: 518f117cbb user: jacob tags: trunk | |
| 17:32 | Reported by Tim Kosse: on Unix, read_random_seed() wasn't correctly checking the return from open() and behaved wrongly in the absence of a seed file. check-in: 5c8bb6b262 user: jacob tags: trunk | |
| 17:19 | Several people have spotted an uninitialised structure member leading to a potential crash on "reget" in Unix PSFTP. check-in: 62f89992d5 user: jacob tags: trunk | |
|
2009-04-24
| ||
| 13:45 | Richard Clark points out a missing check for ssh->mainchan being NULL. check-in: fbeba1f90f user: simon tags: trunk | |
|
2009-04-23
| ||
| 12:39 | When giving authorisation errors from the proxy code in x11fwd.c, name the proxy using the global 'appname' variable, instead of statically calling it PuTTY. (Knock-on effect is that PSCP and PSFTP have to declare that variable, though of course they shouldn't ever actually _use_ the X forwarding code. Probably I ought to replace it with a stub nox11fwd.c for those applications.) check-in: 39f0cd437b user: simon tags: trunk | |
| 12:33 | When starting a SOCKS connection in dynamic forwarding, freeze the local socket _before_ calling the SSH setup functions. This makes no difference to ssh.c itself, but it makes portfwd.c easier to reuse for other purposes (e.g. as a component of a standalone SOCKS server), because now ssh_send_port_open() can itself call pfd_confirm() without the freeze and unfreeze happening in the wrong order. check-in: 08ea874aac user: simon tags: trunk | |
|
2009-03-24
| ||
| 17:24 | Support in the cross-platform code for translating to and from UTF-16 when exchanging wchar_t strings with the front end. Enabled by a #define in the platform's header file (one should not promiscuously translate UTF-16 surrogate pairs on 32-bit wchar_t platforms since that could give rise to redundant encoding attacks), which is present on Windows. check-in: 40cc1bcada user: simon tags: trunk | |
|
2009-03-03
| ||
| 13:57 | Fix cosmetic keyboard-interactive issue: at the end of a normal k-i session, some servers (Debian in particular seems prone to this) send a k-i packet with no prompts and nothing to display. We were printing an extra "Using keyboard-interactive authentication" message in this case. (Introduced by me in r8172, I think.) check-in: 2229b9d9c3 user: jacob tags: trunk | |
| 12:35 | Handle more gracefully the possibility of a keyboard-interactive prompts packet containing no actual prompts (perhaps due to odd server organisation, or perhaps so it can print a banner message and do nothing else). Previously, the get_userpass_input functions always returned failure when in '-batch' mode, even in this case where no actual input would be required. check-in: 628ac4afae user: simon tags: trunk | |
|
2009-02-28
| ||
| 17:04 | Stop using physical tabs in Python. (I was goaded into doing this by my editor, which has defaulted to showing them as explicit ^I for a while now, but it seems like a generally prudent idea in any case.) check-in: 0a7aa358d3 user: simon tags: trunk | |
| 10:52 | Debian bug #517535: we were unconditionally interpreting the 'string' field in a GdkEventKey structure as ISO-8859-1, which was correct for GTK 1.2 but in 2.0 that field is encoded according to the current C library locale. Hence, we now process that field by converting it to UTF-8 via trips through both libc and libcharset, and then let lpage_send() convert from UTF-8 back to whatever it's supposed to actually go down the line in. check-in: d5f3c90afa user: simon tags: trunk | |
|
2009-02-24
| ||
| 16:56 | Fix inaccurate error message. check-in: cfd96a2662 user: jacob tags: trunk | |
|
2009-02-23
| ||
| 19:01 | Since r8305, Unix PuTTY has always "upgraded" an X11 display like "localhost:0" to a Unix-domain socket. This typically works fine when PuTTY is run on the same machine as the X server, but it's broken multi-hop X forwarding through OpenSSH; when OpenSSH creates a proxy X server "localhost:10", it only listens on TCP, not on a Unix-domain socket. Instead, when deciding on the details of the display, we actively probe to see if there's a Unix-domain socket we can use instead, and only use it if it's there, falling back to the specified IP "localhost" if not. Independently, when looking for local auth details in Xauthority for a "localhost" TCP display, we prefer a matching Unix-domain entry, but will fall back to an IP "localhost" entry (which would be unusual, but we don't trust a Windows X server not to do it) -- this is a generalisation of the special case added in r2538 (but removed in r8305, as the automatic upgrade masked the need for it). (This is now done in platform-independent code, so a side-effect is that get_hostname() is now part of the networking abstraction on all platforms.) check-in: d5c507e1ed user: jacob tags: trunk | |
| 16:40 | Stop attempting to make session logs private on Unix. This was introduced in r7084 at the same time as sensible permissions when writing private key files; however, it causes an assertion failure whenever an attempt is made to append to an existing log file on Unix, and it's not clear what "is_private" *should* do for append, so revert to log file security being the user's responsibility. (Fixes Ubuntu LP#212711.) check-in: 6b722846ee user: jacob tags: trunk | |
|
2009-02-03
| ||
| 15:22 | The Windows config option to point at an X authority file is only read at connection setup time, so don't offer it in the Change Settings dialog box. (In particular, this fixes an assertion failure when selecting Change Settings on a non-SSH connection, since wincfg.c would have added that control to Connection/SSH/X11 when the parent panel Connection/SSH didn't exist. Making the control conditional on the selected protocol would have been sufficient to fix that failure, but I now realise that the setting should never have been presented in mid-session in any case.) check-in: 505eceb938 user: simon tags: trunk | |
|
2009-01-21
| ||
| 12:47 | Don't call ReleaseCapture() on any mouse-button-up event. Instead, only call it when the _last_ mouse button comes back up. Otherwise, xterm mouse tracking will lose a button-up event if you press down two buttons, move the mouse outside the window, then release them one at a time. check-in: e7cab95225 user: simon tags: trunk | |
|
2009-01-13
| ||
| 12:18 | Check the two popen() calls in noise_get_heavy for NULL. check-in: 2d54705a73 user: simon tags: trunk | |
|
2009-01-12
| ||
| 14:41 | Patch from Gert-Jan Vons: create an event handle to go in the OVERLAPPED structure in output threads, as we already do for input threads. This apparently sorts out a hanging issue with serial ports when trying to do simultaneous read and write, because (GJV says, and it sounds plausible to me) in the absence of that event object Windows signals the file handle itself to notify GetOverlappedResult that it can return - and since the file handle might be being signalled by a read operation instead, that leads to ambiguity. Using an explicit event object in both directions means Windows always knows which way the data is going. Also a trivial fix in handle_output_new(), which was referencing the wrong element of a union due to a copy and paste error. (Since the result was address-taken and cast to void *, this wasn't a functional error, but it was conceptually wrong.) check-in: d11b0542b8 user: simon tags: trunk | |
|
2009-01-11
| ||
| 08:26 | Arguments to ctype functions are required to be either EOF or representable as unsigned char. This means that passing in a bare char is incorrect on systems where char is signed. Sprinkle some appropriate casts to prevent this. check-in: 099ec87441 user: ben tags: trunk | |
| 08:20 | Propagate my ctype fixes (r8404) from libcharset. check-in: 31f512a4c2 user: ben tags: trunk | |
|
2009-01-09
| ||
| 12:55 | Weaken the assertion in general_textout(). It was failing in the case of double-width text (ESC # 3, ESC # 4, ESC # 6), because the string passed to it was not truncated to the same width as the clipping rectangle. (In fact, it _can't_ reliably be, in the case where the window width is odd.) So instead we just assert that we managed to _at least_ fill the clipping rectangle, not that we exactly filled it. The problem is easily reproduced by sending ESC # 8 (fill the screen with Es) followed by ESC # 3. It doesn't typically happen, though, if you _manually_ fill the screen with Es, because in that case PuTTY's terminal buffer ends up being filled with CSET_ACP | 'E' or similar, which means that general_textout() never gets called because one of the other branches of do_text_internal() does the work instead. ESC # 8 will fill the terminal buffer with genuine _Unicode_ 'E' characters, which exercises the failing code path. check-in: 5e99094c97 user: simon tags: trunk | |
|
2009-01-08
| ||
| 12:21 | Another patch from Colin, providing a "make distclean" target in the autoconf makefile. check-in: 6167ee8ecf user: simon tags: trunk | |
| 12:19 | Colin also suggests that we can replace the backticks in the GTK makefile with make's own $(shell ...) function, which means that gtk-config and krb5-config and so on only get run once per make invocation instead of once per gcc invocation. check-in: 6d8a27ba70 user: simon tags: trunk | |
| 12:18 | Colin Watson reports a strange problem whereby krb5-config incorporates the environment variable CFLAGS into its output. Avoid exporting our version of it from the Makefile (which actually causes build failures, since quoting phase issues mean that the backticks in our version end up unexpanded). check-in: 4cf626f656 user: simon tags: trunk | |
|
2009-01-05
| ||
| 18:25 | Rejig windlg.c:verify_ssh_host_key() to silence a warning. check-in: e26e7e1051 user: jacob tags: trunk | |
| 18:16 | Remove a couple of unused variables. check-in: 021a9a45ae user: jacob tags: trunk | |
| 17:49 | It's a new year (and there have even been checkins). check-in: 3b96830db1 user: jacob tags: trunk | |
| 17:36 | sk_address_is_local() failed to cope when presented with a Unix-domain socket. This could cause Unix PuTTY to segfault when X forwarding over an SSH session through a proxy. (sk_getaddr() wouldn't cope either -- in that case, add an assertion to make it more obvious; I don't think it should ever happen.) check-in: 6691b9082e user: jacob tags: trunk | |
| 16:53 | Be prepared for x11_setup_display() to return NULL (for instance, if DISPLAY has invalid contents). Simply refuse to try X forwarding in this circumstance. check-in: 09b6bc2c14 user: jacob tags: trunk | |
| 13:39 | r5080 didn't go far enough -- since 0.58, anyone on Unix who didn't previously have default settings for "bell overload" mode will have inherited a twitchy set of defaults where bells are disabled after 2ms and enabled after 5ms, rather than 2s and 5s as intended. This error has probably propagated into some people's saved sessions by now, but there's not much to be done. check-in: 961a87a59a user: jacob tags: trunk | |
|
2009-01-04
| ||
| 20:45 | Add some hard-coded textual literal-IP representations of localhost to sk_hostname_is_local(), to catch the case where we're doing something like X11 forwarding over SSH through a proxy, and we've thus disabled local lookup of hostnames. (I think this is what's behind the report in <e9a86996-5dc2-4428-9b0c-c65693ca6351@m32g2000hsf.googlegroups.com> in comp.security.ssh, although I'd like to know more of the circumstances.) check-in: 7bc06e3d51 user: jacob tags: trunk | |
| 19:15 | ...and fix an unlikely memory leak. check-in: d5bdfa2feb user: jacob tags: trunk | |
| 19:01 | Cope with a (non-standard) ENAMETOOLONG return from gethostname(); glibc will do this if the supplied buffer isn't big enough, which shouldn't lead to complete abandonment of X11 auth. (Would only have bitten with hostnames >255 chars anyway.) check-in: 057f0b0fca user: jacob tags: trunk | |
| 17:36 | r8305 made platform_x11_best_transport[] obsolete, but there still seem to be a few instances around; expunge them. check-in: 24aec5eb8d user: jacob tags: trunk | |
| 17:28 | r8305 seems to have made Unix PuTTY rather over-keen on Unix-domain sockets; unless a protocol is explicitly specified with "tcp/foovax:0", it assume a Unix-domain socket, thus not allowing a remote display on a machine other than the client. check-in: ea832c43a2 user: jacob tags: trunk | |
| 16:24 | Bah, I've bumped into this often enough. Change one unsatisfactory cast for another to shut up "warning: cast from pointer to integer of different size" (and hence a -Werror compile failure) when compiling for Unix with DEBUG defined on atreus (x86_64). Minimally checked that it doesn't introduce upset elsewhere (i386). check-in: cd26670299 user: jacob tags: trunk | |
| 15:43 | Log reason for failure to create a connection to a local X display. check-in: ec4e3d53bd user: jacob tags: trunk | |
|
2008-12-29
| ||
| 14:04 | r8338 broke pasting with Shift-Ins and from the context menu on Windows. Divert these to use the request_paste() interface. check-in: 4a0333b4d1 user: jacob tags: trunk | |
|
2008-12-20
| ||
| 13:43 | "Derek" reports that the DECSLPP report of window-size-in-pixels (CSI 14 t) has width and height swapped. Since both a random xterm I have and <http://invisible-island.net/xterm/ctlseqs/ctlseqs.txt> agree with him, I've changed ours. (This stuff appears to originate in dtterm, but I can't check the behaviour of that right now.) While I'm here, the are-we-iconified report (CSI 11 t) looks to have the wrong sense compared to the same sources, so swap that too. (All this has been this way since it was originally implemented in r1414, which doesn't cite a source. all-escapes is silent too.) check-in: 723579ac90 user: jacob tags: trunk | |
| 13:02 | "Derek" points out that reporting of wheel event coordinates to the host on Windows was relative to the screen origin, not the window origin. check-in: 74835487a0 user: jacob tags: trunk | |
| 12:52 | Cosmetic: clarify that term->xterm_mouse is not boolean, etc. check-in: cecf02ac91 user: jacob tags: trunk | |
|
2008-12-02
| ||
| 18:06 | gtk_selection_clear_targets() does not exist on GTK 1, so ifdef it. check-in: 1722b59c4b user: simon tags: trunk | |
| 12:18 | At some point recently, Unix PuTTY started suffering build errors using -DNO_GSSAPI. Move some ifdefs around so it stops. check-in: 449718590d user: simon tags: trunk | |
|
2008-12-01
| ||
| 17:03 | Add missing call to gtk_selection_clear_targets(), without which the list of selection targets offered by GTK PuTTY/pterm grows an extra copy of each of the three supported text formats every time the user makes a selection! check-in: d7ac9e085e user: simon tags: trunk | |
| 15:18 | Change the Unix version of Ssh_gss_name to be a gss_name_t rather than void *, and hence eliminate a few casts. The Windows definition is unchanged, but I daresay I've managed to stop it compiling nonetheless. check-in: 326c946211 user: ben tags: trunk | |
|
2008-11-30
| ||
| 15:35 | As far as I can tell, "simple@putty.projects.tartarus.org" has always been implemented as a channel request, not a global one. Change documentation to match implementation. check-in: 6adcb69429 user: jacob tags: trunk | |
|
2008-11-28
| ||
| 12:28 | Move the code that reads the Windows clipboard into a trivial subthread, so that it won't deadlock if fetching the content of the clipboard turns out to depend on a network connection forwarded through PuTTY. check-in: 9814c17c86 user: simon tags: trunk | |
|
2008-11-26
| ||
| 08:30 | Jacob correctly points out that I accidentally lost a clearing of s->gss_sndtok in r8326. I'm not sure it was strictly necessary, since even if there's no send token, gss_init_sec_context() is meant to explicitly make it empty, but it wasn't an intentional change. check-in: c9729f111e user: ben tags: trunk | |
| 08:11 | Fix a Windows-specific GSS crash introduced in r8326, which (again) apparently triggers in failure cases. Patch by Iain Patterson. check-in: de10671dea user: jacob tags: trunk | |
| 06:49 | Mitigation for VU#958563: When using a CBC-mode server-to-client cipher under SSH-2, don't risk looking at the length field of an incoming packet until we've successfully MAC'ed the packet. This requires a change to the MAC mechanics so that we can calculate MACs incrementally, and output a MAC for the packet so far while still being able to add more data to the packet later. check-in: 4c69183b8d user: ben tags: trunk | |
|
2008-11-25
| ||
| 16:11 | Now that we use real gss_buffer_ts, there's no need to muck about with casts when passing them to GSS-API functions. Removing them makes the code more readable and allows better type-checking. check-in: 972f7f9cba user: ben tags: trunk | |
| 12:54 | Have wingss.c include <windows.h> by way of putty.h rather than directly. Fixes a build failure involving name clashes between winsock2.h and winsock.h, which had somehow managed to get included in succession. check-in: 390169a34f user: simon tags: trunk | |
| 12:43 | Fixed a PuTTYtel startup assertion failure introduced in r8305. While I'm here, a cosmetic PuTTYtel change: remove a reference to SSH from the "logical host name" label in PuTTYtel only. check-in: b1eafe3828 user: jacob tags: trunk | |
|
2008-11-24
| ||
| 17:56 | I think sshgss.h needs puttyps.h for Ssh_gss_buf. Makes it compile for Windows, anyway. check-in: 67d7ae7d6f user: jacob tags: trunk | |
| 17:44 | Change how we handle the Ssh_gss_buf type. Previously, we defined it ourselves, but on Unix then assumed it was compatible with the system's gss_buffer_desc, which wasn't the case on LP64 systems. Now, on Unix we make Ssh_gss_buf into an alias for gss_buffer_desc, though we keep something similar to the existing behaviour on Windows. This requires renaming a couple of the fields in Ssh_gss_buf, and hence fixing all the references. Tested on Linux (MIT Kerberos) and Solaris. Compiled on NetBSD (Heimdal). Not tested on Windows because neither mingw32 nor winegcc worked out of the box for me. I think the Windows changes are all syntactic, though, so if this compiles it should work no worse than before. check-in: 68eb6751c6 user: ben tags: trunk | |
| 12:19 | Treat lines starting with '#' as comments in PSFTP. check-in: 2f3fc67a1b user: jacob tags: trunk | |
| 11:51 | New option to allow use of the local OS username for login to the remote side if we have no better ideas, with UI shamelessly stolen from Quest PuTTY. Off by default, which effectively reverts the change to using the local username by default that came in with GSSAPI support in r8138. Anyone wanting seamless single sign-on will need to set the new option. (The previous default behaviour was getting in the way in ad-hoc scenarios.) Note that the PSCP and Unix-Plink behaviour of using the local username by default have remained unchanged throughout; they are not affected by the new option. Not sure if that's the Right Thing. check-in: ce33b58a4d user: jacob tags: trunk | |
|
2008-11-23
| ||
| 14:11 | Make key file import robust against a PPK file that has somehow lost its final newline. From Debian bug #414784, based on a patch by Justin Pryzby. check-in: fcd0e1e4f9 user: jacob tags: trunk | |
|
2008-11-22
| ||
| 16:49 | Autoconfiscate GSS-API support, including support for manually disabling it. check-in: c502d27121 user: ben tags: trunk | |
| 16:06 | Changes to make this compile on Solaris 9: use <gssapi/gssapi.h> rather than <gssapi/gssapi_krb5.h> and provide the OID for Kerberos 5 ourselves (since it's a known constant). I'm not sure this actually works on Solaris yet, mind. check-in: 37ec80dd2c user: ben tags: trunk | |
|
2008-11-17
| ||
| 12:38 | Revamp of the local X11 connection code. We now parse X display strings more rigorously, and then we look up the local X authority data in .Xauthority _ourself_ rather than delegating to an external xauth program. This is (negligibly) more efficient on Unix, assuming I haven't got it wrong in some subtle way, but its major benefit is that we can now support X authority lookups on Windows as well provided the user points us at an appropriate X authority file in the standard format. A new Windows-specific config option has been added for this purpose. check-in: 8eda1bb259 user: simon tags: trunk | |
| 12:36 | Avoid freeing the backend in notify_remote_exit(), since that's called from within a backend function which will expect its own backend pointer to still be valid on return. Instead, move all the real functionality of notify_remote_exit() out into a GTK idle function. check-in: d576de5599 user: simon tags: trunk | |
|
2008-11-11
| ||
| 01:47 | In SSH packet logging mode, log SSH-2 packet sequence numbers, in both directions. We had a bug report yesterday about a Cisco router sending SSH2_MSG_UNIMPLEMENTED and it wasn't clear for which packet; logging the sequence numbers should make such problems much easier to diagnose. (In fact this logging fix wouldn't have helped in yesterday's case, because the router also didn't bother to fill in the sequence number field in the SSH2_MSG_UNIMPLEMENTED packet! This is a precautionary measure against the next one of these problems.) check-in: e2d3df5243 user: simon tags: trunk | |
|
2008-11-08
| ||
| 10:58 | Implement sk_addr_dup(). check-in: eed2c42118 user: simon tags: trunk | |
| 10:45 | Move out of the SockAddr structure the mutable fields "ai" and "curraddr", and turn "family" into a macro-derived property of the other fields. The idea is that this renders SockAddrs immutable once created, which should open up the possibility of duplicating and reusing one without having to redo the actual DNS lookup. I _hope_ I haven't broken anything. The new code architecture contains several rather dubious-looking operations (namely the arbitrary choice of the first returned address in functions like sk_getaddr and sk_address_is_local - what if, for instance, a DNS lookup returned a local and a non-local address?), but I think they were functionally just as dubious beforehand and all this change has done is to make them more obviously so to a reader. check-in: d1441c22fa user: simon tags: trunk | |
|
2008-10-17
| ||
| 15:55 | Patch from Iain Patterson: fix crash on Windows when GSSAPI auth is attempted but fails for some reason (such as not having a tgt for the server's realm). check-in: a90338986b user: jacob tags: trunk | |
|
2008-10-13
| ||
| 17:34 | Rejig the Translation panel controls and documentation to remove the emphasis on received data. Experiment and suggestion suggest that the character set configuration applies equally to keystrokes sent to the server, or at least that that's close enough to being true that we should document it as a first approximation. check-in: 3a5b181634 user: jacob tags: trunk | |
| 17:16 | Erroneously invisible index term. check-in: ede5168844 user: jacob tags: trunk | |
|
2008-10-12
| ||
| 06:32 | Fix inability to save session on Unix when ~/.putty doesn't exist introduced in r7934. check-in: cbe8f19c30 user: jacob tags: trunk | |
|
2008-10-08
| ||
| 13:09 | Ahem. Make sure I NULL out any unused pointer field that I later plan to free if it isn't NULL. check-in: 040933bf65 user: simon tags: trunk | |
|
2008-10-07
| ||
| 12:48 | sshrsa.c now obeys the RFC793 Robustness Principle when it comes to the ordering of the primes in a fully specified RSA private key: when the key format typically has p > q, it will always output p > q but be willing to tolerate p < q on input. (Inspired by seeing an OpenSSH-format key file in the wild which had p < q, which I've never seen before; I suspect a third-party application incautiously generating the format.) check-in: 1b00ac1adf user: simon tags: trunk | |
|
2008-09-25
| ||
| 14:00 | The "server refused our key" bit didn't link to the public-key auth chapter, which has some hints on server-side setup. Now it does. check-in: 08e05fbf90 user: jacob tags: trunk | |
|
2008-09-21
| ||
| 15:39 | Document that PSFTP's "open" command allows an optional port number. check-in: f83a6f7414 user: jacob tags: trunk | |
|
2008-09-16
| ||
| 17:56 | Further correction: on reflection, after examining all the call sites for uint64_make(), we _shouldn't_ attempt to preserve high bits in the low-order argument; it turns out not to be what the call sites want. check-in: b04b998cac user: simon tags: trunk | |
| 13:21 | 64-bit cleanliness in int64.c. This is all hideous; really I ought to be trying harder to find a 32-bit type rather than making a uint64 structure out of two potentially 64-bit unsigned longs. And really I ought to be using the C99 64-bit integers anyway if they're available. But this should do for the moment. check-in: cde23091b0 user: simon tags: trunk | |
| 07:48 | Tim Kosse points out that xfer_upload_gotpkt can return a negative value on error, so the check at the call site shouldn't test for exactly zero. check-in: 306307fcbb user: simon tags: trunk | |
|
2008-09-14
| ||
| 10:11 | Some Windows keymaps, it turns out, don't translate the key combination Ctrl + \ as the Ctrl-\ character. All of mine have, but at least one laptop turns out not to. Do so explicitly. check-in: 0d25c5708a user: simon tags: trunk | |
|
2008-09-09
| ||
| 15:36 | If we got a keyboard-interactive INFO_REQUEST with an "instruction" string but no actual prompts, we weren't displaying the former, which was wrong. We should now (although I haven't found a server to test it against). check-in: 223743ea02 user: jacob tags: trunk | |
|
2008-09-01
| ||
| 12:56 | Fix punctuation in the large print statements. In particular, one semicolon which crept in in r8138 was causing a lot of the "make install" implementation to be missing from Makefile.gtk. check-in: 7d7ed70323 user: simon tags: trunk | |
|
2008-08-31
| ||
| 16:45 | Good grief. When I originally wrote the local proxy code two years ago, I apparently caused all data received from local proxies to be unconditionally tagged as TCP Urgent. Most network backends ignore this, but it's critical to the Telnet backend, which will ignore all Urgent-marked data in the assumption that there's a SYNCH on its way that it should wait for. Nobody has noticed in two years, presumably meaning that nobody has ever tried to do Telnet over a local proxy in that time. check-in: 6610bc874d user: simon tags: trunk | |
| 14:18 | Colin Watson points out an apparently erroneous cast: Ssh_gss_name and gss_name_t are supposed to be congruent types, so a pointer to one should never be cast to a non-indirect instance of the other. check-in: 784bafd53c user: simon tags: trunk | |
| 12:12 | Minor code cleanup: I just happened to be looking at this file for other reasons and I noticed that the list of TELOPTs is given twice and hence needs to be kept in sync. Replace with my now-standard second-order-macro approach which allows the list to be maintained in only one place. check-in: c592900d31 user: simon tags: trunk | |
|
2008-08-20
| ||
| 17:21 | Fix for portfwd-addr-family: on Unix, when a tunnel is specified as "Auto" (rather than IPv4 or IPv6-only; this is the default), try to open up listening sockets on both address families, rather than (unhelpfully) just IPv6. (And don't open one if the other can't be bound, in a nod to CVE-2008-1483.) Based on a patch from Ben A L Jemmett. check-in: 25ce0f7899 user: jacob tags: trunk | |
|
2008-08-11
| ||
| 13:03 | James has made the URL syntax for http://svn.tartarus.org/ more sensible. Update the FAQ link to it. check-in: 8660ab09c4 user: simon tags: trunk | |
|
2008-08-10
| ||
| 09:28 | Link to pTerm, an SSH client for the iPhone that's apparently based on PuTTY. Attempts at damage limitation from the name similarity with pterm. Also try to refresh the ports section of the FAQ a bit. check-in: 36e8cf9a15 user: jacob tags: trunk | |
| 08:10 | Initial commit of GSSAPI Kerberos support. check-in: 483e1ff871 user: owen tags: trunk | |
|
2008-07-19
| ||
| 11:41 | www.winputty.com check-in: 9e6f8924f9 user: jacob tags: trunk | |
|
2008-07-18
| ||
| 16:39 | Another, subtly different version string for ssh2-bug-maxpkt, from Tim Kosse. check-in: 9b020a65b0 user: jacob tags: trunk | |
|
2008-07-17
| ||
| 12:01 | At least one version of gcc won't figure out that "clear" is never read uninitialised (because the only circumstance under which it isn't initialised is when "update" is FALSE, in which case it isn't read either). Placate it. check-in: dc3f5d00d0 user: simon tags: trunk | |
|
2008-07-11
| ||
| 14:24 | Replicate r8110 from PSFTP to PSCP, and various other minor patchery from Roger Picton. check-in: 85e8a600c9 user: jacob tags: trunk | |
|
2008-07-06
| ||
| 07:24 | Patch from Tim Kosse: check back->exitcode() in both loops on ssh_sftp_loop_iteration(), not just one. Fixes exiting on a negative response to the host key confirmation prompt on Windows (because winsftp.c doesn't have the equivalent of uxsftp.c's no_fds_ok); on Unix it worked already but gave a suboptimal error message, which is fixed too by this patch. check-in: 69902ee8df user: simon tags: trunk | |
| 07:11 | Patch from Tim Kosse to make PSFTP remember to close files on various error conditions. check-in: e85a6b6c59 user: simon tags: trunk | |
|
2008-06-29
| ||
| 04:14 | Patch from Aidan Kehoe to extend the Arabic shaping code to Urdu and Persian, by adding some additional Unicode code points to the shapetypes[] array. check-in: 7ade9c8573 user: simon tags: trunk | |
|
2008-06-15
| ||
| 08:26 | Cosmetic: use `appname' in more places, so that Unix PuTTYtel announces itself thus. check-in: 4de88a2ca4 user: jacob tags: trunk | |
| 07:39 | Exorcise beeps from the Colours pane in Gtk. The colour list box beeped at the user whenever it found that something other than exactly one colour was selected. This seems to happen implicitly in Gtk when the pane is changed. In Gtk1, this gave you a beep whenever you left the Colours dialog after having selected a colour from the list; in Gtk2, you additionally got a beep _every_ time you subsequently re-entered the Colours dialog (for reasons I haven't investigated). Windows was unaffected. Also, in Gtk (unlike Windows), it's possible for the user to go back to the state where no items in the list box are selected at all. For these reasons, stop beeping at the user, and instead blank the RGB edit boxes as a hint that edits to them would be futile. (Really we should be disabling them entirely, but the cross-platform edit controls aren't up to that yet.) check-in: 5f0e743092 user: jacob tags: trunk | |
|
2008-06-11
| ||
| 13:03 | Work around a bug in early versions of GTK (which I'm still forced to use, gah) in which the "model" argument to gtk_tree_selection_get_selected_rows() couldn't be NULL. check-in: 2154cd8b63 user: simon tags: trunk | |
|
2008-06-10
| ||
| 15:18 | Manfred Schwarb points out that scroll wheel support stopped working with the switch to GTK2. This turns out to be because, where GTK1 represented the scroll wheel as mouse buttons 4 and 5 and generated GdkEventButton when it was moved, GTK2 has moved wheel actions out into a new event type GdkEventScroll which we were not handling. Now we do, so scroll wheel support should be back in place. check-in: e42aacd383 user: simon tags: trunk | |
|
2008-06-07
| ||
| 11:30 | Manfred Schwarb also mentions that Alt+drag is captured by at least one well known window manager (KDE's); document that Shift+Alt+drag is worth trying as a workaround. check-in: cc7bc47f00 user: simon tags: trunk | |
| 11:25 | Manfred Schwarb points out that the README contains an outdated comment about GTK 2 not being supported. check-in: 00e544e03f user: simon tags: trunk | |
|
2008-06-05
| ||
| 12:06 | Add an include statement to Makefile.gtk that imports if present a file called Makefile.local. This means that if you're compiling on a platform that needs COMPAT definitions, you can put them in a local file and not have to type them on the command line every time. check-in: 8d02b7f8a5 user: simon tags: trunk | |
|
2008-06-04
| ||
| 18:12 | Bah, there's always something. Check in missing files. check-in: 76e3fc452e user: simon tags: trunk | |
| 18:05 | At last, merge the putty-gtk2 branch back into the trunk! check-in: 8d6cccb962 user: simon tags: trunk | |
|
2008-06-01
| ||
| 06:16 | Been meaning to do this for years: introduce a configuration option to manually tweak the host name and port number under which the SSH host key is read and written. I've put it in the cross-platform Connection panel. Partly under the flimsy pretext that other backends _can_ use it if they so wish (and in fact it overrides the host name for title-bar purposes in all network backends, though it has no other effect in anything but SSH); but mostly because the SSH panel was too full already :-) check-in: 8d27b54607 user: simon tags: trunk | |
|
2008-05-31
| ||
| 12:22 | Apparently Vista's printf-like functions don't support %n by default. We could explicitly re-enable %n, but we only use it in one place, so take the path of least resistance and remove that single instance. This stops dupvprintf() getting stuck in a loop (a behaviour that's caused by a workaround for a broken libc). <http://msdn.microsoft.com/en-us/library/ms175782(VS.80).aspx> check-in: d8ce60fff0 user: jacob tags: trunk | |
| 12:11 | Update for `win-randseed-location' fix. check-in: a8911a191e user: jacob tags: trunk | |
|
2008-05-28
| ||
| 14:23 | OS X Leopard, it turns out, has a new and exciting strategy for addressing X displays. Update PuTTY's display-name-to-Unix-socket- path translation code to cope with it, thus causing X forwarding to start working again on Leopard. check-in: c736a90b9d user: simon tags: trunk | |
|
2008-05-21
| ||
| 04:48 | Update the FAQ to state more explicitly that PuTTY contains no OpenSSL code. check-in: f4c171b73f user: simon tags: trunk | |
|
2008-04-26
| ||
| 13:45 | Mention Vista. check-in: 815056aeda user: jacob tags: trunk | |
|
2008-04-11
| ||
| 08:28 | Utterly hideous new approach to extracting install-sh from the autoconf/automake edifice, since my previous approach of guessing its pathname turns out not to work on at least one kind of system. check-in: 287896a14e user: simon tags: trunk | |
|
2008-04-05
| ||
| 07:26 | Fix misleading parameter name. check-in: 83d355fd62 user: jacob tags: trunk | |
|
2008-03-22
| ||
| 07:01 | For convenience of debugging, and perhaps some real convenience at some point too: introduce a bunch of environment variables which can override Unix PuTTY's usual idea of where to find its dotfiles. Setting PUTTYDIR moves the entire ~/.putty directory; setting PUTTYSESSIONS, PUTTYSSHHOSTKEYS or PUTTYRANDOMSEED move specific things within that directory. While I'm here, also be prepared to fall back to password file lookups if $HOME is undefined (though we still use $HOME in preference when it is defined, because that's polite and useful). Also, on general principles, tweak the make_filename() function prototype so it doesn't rely on fixed-size buffers. check-in: 7ecb4b4bc7 user: simon tags: trunk | |
|
2008-03-09
| ||
| 10:32 | Under OS X Leopard, we seem not to consistently get the Tab key translated for us. Be prepared to do it manually as a fallback. check-in: 8b0a99a8f7 user: simon tags: trunk | |
|
2008-03-07
| ||
| 12:30 | Fix a cursor positioning infelicity. The scenario: I start a small, say 80x24, pterm. I do some work in it, generating plenty of scrollback, and eventually I `less' a file. `less' switches to the alt screen. Then I want more vertical space to look at the file, so I enlarge the window to more like 80x60. When I quit `less' and switch back to the primary screen, some scrollback has been pulled down into the screen, as expected - but the saved _cursor position_ is still at line 24, not at the bottom of the new terminal where the prompt it goes with has moved to. Solution: term_size() should adjust the alt-screen saved cursor positions as well as the normal cursor position. (Curiously, the problem doesn't happen on my home Debian box, even without this fix. It happens on my RH9 box at work, though.) check-in: b77fd65b64 user: simon tags: trunk | |
|
2008-02-23
| ||
| 18:16 | It's a new year (and we've even made a code checkin). check-in: 52b6ccc5d2 user: jacob tags: trunk | |
| 17:56 | Attempt to clarify what the various IP version selection options do. check-in: fd98031fc4 user: jacob tags: trunk | |
| 16:00 | Tunnels: more explicit link from introductory to reference section. check-in: 5164efaa42 user: jacob tags: trunk | |
|
2008-02-21
| ||
| 03:18 | Aha, _that's_ why I've been periodically getting blocking-write problems using Unix PuTTY port forwarding. Sockets we create by connect() are immediately set into nonblocking mode by fcntl, but sockets we create by accept() were not. This trivial fix should help. check-in: 995c027a64 user: simon tags: trunk | |
|
2008-02-10
| ||
| 08:00 | Update web-SVN URL for kh2reg.py. check-in: 8a0301e741 user: jacob tags: trunk | |
|
2008-01-09
| ||
| 13:59 | Typo in winadj@ name. check-in: d30396f5da user: jacob tags: trunk | |
|
2007-12-20
| ||
| 05:03 | Make the text about our interest in new mirror sites significantly less fluffy and welcoming. check-in: b64dc037fe user: simon tags: trunk | |
|
2007-12-15
| ||
| 04:41 | r7804 neglected to add a help context #define to winhelp.h. check-in: d69d2d5b8a user: simon tags: trunk | |
|
2007-12-04
| ||
| 18:28 | Document maxpkt bug under garbled packet error message. check-in: dae6eba3a9 user: ben tags: trunk | |
| 18:02 | Add a new bug-compatibility mode that limits the window size we'll advertise so that the server can't exceed our maximum packet size. Enable it for "1.36_sshlib GlobalSCAPE" which apparently sends oversize packets otherwise. check-in: 9d67c9cd70 user: ben tags: trunk | |
|
2007-11-28
| ||
| 14:45 | Duplicate r7795 in uxnet.c. check-in: dfae3756d5 user: simon tags: trunk | |
|
2007-11-26
| ||
| 15:09 | sktree is indexed on the numeric value of the socket structure's underlying WinSock SOCKET. Therefore, if we plan to modify the SOCKET in a socket, we must remove it from the tree before doing so, and put it back again afterwards. Otherwise it'll violate the tree's sorting order, and sooner or later someone will try to find it and get back NULL. check-in: 410b9389c7 user: simon tags: trunk | |
|
2007-10-27
| ||
| 11:05 | Reset mouse reporting mode as part of resetting the terminal. check-in: ae3240f75a user: jacob tags: trunk | |
|
2007-10-19
| ||
| 16:47 | Marc TERRIER pointed out a couple of places that claim there is an X11 forwarding checkbox on the Tunnels panel, which hasn't been the case for a while. check-in: 58397930f6 user: jacob tags: trunk | |
|
2007-10-03
| ||
| 16:21 | Replace mentions of SSH-2 I-Ds with references to the corresponding RFCs. check-in: b858df6074 user: ben tags: trunk | |
| 16:06 | snew() always returns non-NULL, so checking if its return value is NULL is pointless. check-in: d6878a67b7 user: ben tags: trunk | |
| 16:04 | Factor out the increasingly complicated SSH-2 channel structure initialisation into its own function. Maintaining four copies was getting boring. check-in: 88fdee8c45 user: ben tags: trunk | |
| 15:29 | Take the code that does flow control in SSH-1, and make it work in SSH-2 as well. This won't be triggered in the usual case, but it's useful if the remote end ignores our window, or if we're in "simple" mode and setting the window far larger than is necessary. check-in: b54b9c2617 user: ben tags: trunk | |
|
2007-10-02
| ||
| 16:43 | More fixes to stdout and stderr. When the backlog on either clears, call the backend's unthrottle function. If we don't, we'll deadlock. While we're here, also pump as much data as possible out during each call to try_output(), rather than restricting ourselves to a single call to write(). check-in: 11f55e6d5e user: ben tags: trunk | |
| 16:07 | As far as I can see (at least in NetBSD) O_NONBLOCK and FIONBIO are equivalent, except that O_NONBLOCK is standardised and FIONBIO isn't. In consequence, replace our only use of FIONBIO with O_NONBLOCK. Inspired by Jonathan H N Chin, who had problems with this on Solaris. check-in: 8b7c139db9 user: ben tags: trunk | |
|
2007-10-01
| ||
| 16:11 | Rather than rejecting spurious SSH_MSG_CHANNEL_SUCCESSes, and ignoring spurious SSH_MSG_CHANNEL_FAILUREs, treat them as the protocol errors they are and forcibly disconnect. Inspired by recent traffic on comp.security.ssh. check-in: d719c8cbfb user: ben tags: trunk | |
|
2007-09-30
| ||
| 14:42 | Merge the looking up of channel numbers for SSH-2 channel messages into a single function which also handles checking that channels exist and are properly open. This should make PuTTY a little less tolerant of servers that send bogus messages. check-in: 6018bf7894 user: ben tags: trunk | |
| 09:14 | Set cfg.ssh_simple if there are no forwardings. check-in: 7d1a0e3e3f user: ben tags: trunk | |
| 07:45 | When writing session data to stdout or stderr, switch the relevant file descriptor into non-blocking mode temporarily, and correctly handle returns of EAGAIN from write(). This should fix unix-plink-stdout-nonblock, while avoiding EAGAIN turning up where we aren't expecting it. check-in: 5b2a52933a user: ben tags: trunk | |
|
2007-09-29
| ||
| 09:20 | Now that PuTTY is actually using names "@putty.projects.tartarus.org", it seems like a good idea to document them. check-in: 9785ec086d user: ben tags: trunk | |
| 07:27 | Add support for resetting the terminal modes on stderr to something sensible before printing error messages to it. This should fix the stair-stepping in Plink's progress messages. check-in: d7084e099b user: ben tags: trunk | |
|
2007-09-24
| ||
| 16:43 | My changes in r7738 (O_NONBLOCK for Unix Plink) were half-arsed, and completely broke interactive logins. The problem, or at least one of the problems, was that in interactive use stdin, stdout, and stderr tend to be the same file, so setting O_NONBLOCK on the latter two also sets it on the former. Thus, we need to cope with all of them being non-blocking. check-in: 182955cf8e user: ben tags: trunk | |
| 16:31 | Manifest constants are good. Introduce plink to STD{IN,OUT,ERR}_FILENO, TRUE, and FALSE. check-in: 2f675b3360 user: ben tags: trunk | |
| 14:26 | stdout and stderr should be made O_NONBLOCK so that we don't end up blocking the entire process because stdout is busy. Arguably, this shouldn't apply to stderr when we're printing our own error messages to it, but I'll leave that fix for another time. check-in: 1b815caadf user: ben tags: trunk | |
| 10:18 | Add support for automatically tuning the SSH-2 window size for decent performance. The theory behind this is fairly simple, though the implementation turns out to be a little trickier than it looks. The basic idea is that when the connection isn't being limited by our ability to process data, we want to ensure that the window size _as seen by the server_ never drops to zero. Measuring the server's view of the window size is done by arranging for it to acknowledge every SSH_MSG_CHANNEL_WINDOW_ADJUST, or rather an SSH_MSG_CHANNEL_REQUEST sent just before it. That way we can tell when it its outgoing data stream it received the window adjustment, and thus how small the server's view of the window got. At present, we only ever increase the window size. In theory, we could arrange to reduce it again if the server's view of it seemed to be persistently too large, but my experiments suggest that getting this right will be tricky. check-in: b331d3a1cc user: ben tags: trunk | |
|
2007-09-22
| ||
| 08:55 | Document "No supported authentication methods available", and make it clear that TIS/CryptoCard auth can be used for simple passwords too. check-in: 69609a5352 user: ben tags: trunk | |
|
2007-09-21
| ||
| 13:04 | Harvey Kwok observes that EnumPrinters() can sometimes fail to fill in its output parameters. Hence, we initialise them before calling it. check-in: 53371bfba6 user: simon tags: trunk | |
|
2007-09-20
| ||
| 16:33 | Don't try SSH-1 RSA authentication unless the server has advertised support for it. It's possible that this obsoletes BUG_CHOKES_ON_RSA. Certainly the one SSH-1.5-Cisco-1.25 server I found was correctly not advertising RSA auth. For now, leave it in, because I'm not feeling entirely confident. check-in: af3b8d40a9 user: ben tags: trunk | |
| 16:07 | In SSH-1, don't attempt password authentication unless the server has announced support for it. Instead exit with a fatal error (since password auth is our last resort). check-in: 04c6df563b user: ben tags: trunk | |
|
2007-09-03
| ||
| 15:52 | Avoid "unused variable" warning when NO_IPV6 defined. check-in: 82315782e0 user: ben tags: trunk | |
| 15:33 | Suggest another ttymode we could usefully set automatically. check-in: 925c2124be user: ben tags: trunk | |
| 14:09 | ssh->mainchan can be NULL; try not to segfault in that situation. check-in: 757a472316 user: simon tags: trunk | |
|
2007-08-07
| ||
| 17:02 | Correctly terminate nc target hostname when copying it. While we're here, use memcpy rather than strncpy when we've already worked out how much we're going to copy. check-in: 2e76e0d01d user: ben tags: trunk | |
|
2007-08-06
| ||
| 15:56 | Use "int" rather than "unsigned" as the argument to ssh2_set_window, not because it can ever be negative, but because we'll be comparing it with another int. This way, C's promotion rules don't bite us and we should stand slightly more chance of coping with broken servers that overrun our window. check-in: 126f2ed4f1 user: ben tags: trunk | |
|
2007-08-05
| ||
| 17:18 | May as well reference an RFC rather than an Internet Draft where we can. check-in: 24a823b68f user: ben tags: trunk | |
| 09:18 | Small window-handling tweaks. Set the default big window to 0x7fffffff bytes, and tweak ssh2_set_window() so it can cope with that. Also arrange to send a private channel message in simple mode to tell the server that it can safely use a large window too. check-in: 7975f8a4ec user: ben tags: trunk | |
|
2007-08-04
| ||
| 17:19 | Remember to clear ssh_simple when initialising config. check-in: 5a27b7939e user: ben tags: trunk | |
| 17:14 | In the file-transfer applications, which only ever use the main channel, arrange to set the SSH-2 window size to something very large. This prevents the connection stalling when the window fills up, and means that PSCP receives data _much_ faster. check-in: 0ce59e00b7 user: ben tags: trunk | |
| 14:16 | "CR implies LF" patch, based on one from Paul Coldrey. check-in: 7b3639872d user: ben tags: trunk | |
| 11:04 | Tweak window handling so that we send a window adjust if the window is half used up, rather than over half. That this increases the throughput of PSCP by 50% indicates just how broken our window handling is. check-in: 6d0869b7d6 user: ben tags: trunk | |
| 10:48 | When omitting session data from logs, don't omit the length of the session data string. This isn't strictly necessary, but it makes the logs easier to use. check-in: abde6881f2 user: ben tags: trunk | |
| 09:32 | Tweak to window handling: Keep the local window in a signed integer, and arrange to handle usefully the case where the server sends us more data than it's allowed to. There's no danger of overflow, since the maximum is OUR_V2_WINSIZE and the minimum is -OUR_V2_MAXPKT (at least if the server is nice). check-in: ad4c0912dd user: ben tags: trunk | |
|
2007-07-29
| ||
| 09:02 | Don't throw away data that we receive before we're ready for it. Just save it up for later. This should prevent hangs when talking to particularly enthusiastic servers. Thanks to JCA for tracking this bug down. check-in: 9eba45566e user: ben tags: trunk | |
|
2007-07-22
| ||
| 09:34 | Note lack of proxy auto-detection. check-in: 2f7560360f user: jacob tags: trunk | |
|
2007-07-21
| ||
| 16:39 | Split pkt_ctx into a separate enumeration for each of kex and userauth instead of a bitfield for both. This doesn't gain much here, but it should make it easier to make things other than logging use the context. check-in: 57e427127a user: ben tags: trunk | |
| 08:43 | Arrange that log_packet() isn't called for raw data logging if logctx is null. This allows us to send data in ssh_init(), albeit at the expense of its not being properly logged, so arrange to send the version string then if that's sensible, which should reduce the number of round-trips required to bring up an SSH-2 connection. check-in: 0c80a9a49b user: ben tags: trunk | |
|
2007-07-19
| ||
| 18:53 | Separate out the code for creating and sending SSH version strings so that in the SSH-2-only case, we can send it as soon as we connect rather than waiting for the server's one. Unfortunately, actually doing so will take a little more effort -- there are subtleties to do with having a working log context at the right moment that need to be sorted out. check-in: 3341a0fb7c user: ben tags: trunk | |
|
2007-07-18
| ||
| 17:54 | Update an outdated comment. check-in: bec140c810 user: ben tags: trunk | |
|
2007-07-01
| ||
| 10:47 | Implement Marcin Bulandra's suggestion of only automatically updating the port number in the GUI when the connection type is changed if the current port number is the standard one for the current protocol. It's not perfect, but it should make the common case of tabbing through the Session panel easier when starting non-SSH connections on odd ports. check-in: 7db7c53371 user: jacob tags: trunk | |
| 10:41 | Remove port number validation from Windows PuTTY -- it could cause unnecessary trouble with serial connections, and a port number of zero gets caught later anyway. check-in: 865a61887b user: jacob tags: trunk | |
|
2007-06-30
| ||
| 16:56 | Rationalise access to, and content of, backends[] array. Should be no significant change in behaviour. (Well, entering usernames containing commas on Plink's command line will be a little harder now.) check-in: 8b1d299a90 user: jacob tags: trunk | |
| 13:18 | Fix a couple of signedness compiler warnings, presumably due to me using a different version of gcc from before. check-in: 97c7062940 user: simon tags: trunk | |
| 13:17 | Tong Ho points out a missing ssh_pkt_ensure(). check-in: b0ce384018 user: simon tags: trunk | |
|
2007-05-29
| ||
| 15:06 | Index "MAC" a bit more thoroughly. check-in: 9369ed9aa3 user: jacob tags: trunk | |
| 15:01 | Explicitly spell out that "incorrect MAC" type errors can be caused by data corruption in the network. check-in: 48b54e0195 user: jacob tags: trunk | |
|
2007-05-22
| ||
| 13:37 | Retire the e-gold link. Nobody's used it in years; I honestly don't know how I'd go about retrieving money from them any more because my last exchange transaction went through a company who subsequently turned out to be dodgy; and a user points out that e-gold is in legal trouble, which suggests that avoiding it is probably wise. check-in: 7174c42845 user: simon tags: trunk | |
|
2007-05-09
| ||
| 16:35 | These days, you _can_ save a host name in Default Settings. check-in: 20f0201fe2 user: ben tags: trunk | |
|
2007-05-01
| ||
| 15:29 | Make bounds of automatic array constant. check-in: 30fcf1a05d user: ben tags: trunk | |
| 08:14 | Since r7496, Pageant needs sshsh256 to build (although it doesn't need SHA-256 to actually do its job). check-in: fc9bec3e7a user: jacob tags: trunk | |
| 07:26 | Reindent the section that was marked `XXX The lines below should be reindented before this is committed'. Unfortunately not before it was committed, but you can't have everything :-) check-in: ea1538e924 user: simon tags: trunk | |
|
2007-04-30
| ||
| 17:09 | Add support for RFC 4432 RSA key exchange, the patch for which has been lying around in my home directory for _years_. check-in: ba69804eab user: ben tags: trunk | |
| 15:09 | Create installations directories before installing into them, like GNU packages do. Problem reported by Manfred Pausch. check-in: e44d7df824 user: ben tags: trunk | |
|
2007-04-29
| ||
| 06:28 | Update version numbers for 0.60 release. check-in: 7614cbc865 user: simon tags: trunk | |
|
2007-04-22
| ||
| 09:39 | Avoid creating the Session/hostport control set in mid-session. check-in: ea6f078243 user: simon tags: trunk | |
| 03:56 | Capitalisation error. check-in: a43692e9ff user: simon tags: trunk | |
|
2007-04-10
| ||
| 16:46 | When we get an error writing to a local file, stop the download rather than pretending we just got -1 bytes. Not actually tested, but it looks pretty obvious. Bug reported by dking wang. check-in: 3af8c37407 user: ben tags: trunk | |
|
2007-04-02
| ||
| 03:44 | When the comments say `if we're in restart mode', the code in question should actually be conditional on restart mode! check-in: 1efe703050 user: simon tags: trunk | |
|
2007-03-27
| ||
| 14:10 | In the wake of r7415, let's have some better error reporting. Instead of passing -1 to its gotdata and sentdata callbacks on error, winhandl.c will now pass the negation of the Windows error number; and the Plink front end will now format that into an error message and pass it on to the user. check-in: 9fe9b33c47 user: simon tags: trunk | |
| 13:49 | Windows apparently sends ERROR_BROKEN_PIPE when a pipe we're reading from is closed normally from the writing end. This is ludicrous; if that situation isn't a natural EOF, _nothing_ is. So if we get that particular error, we pretend it's EOF. check-in: 293169b60e user: simon tags: trunk | |
| 13:16 | Patch from John Sullivan: process double-clicks in the session list box on button-up rather than button-down. The effect of this is that if a saved session is already selected in the list box and then you double-click it, it will open rather than beeping annoyingly. check-in: 7d216c3d83 user: simon tags: trunk | |
|
2007-03-19
| ||
| 07:05 | Fix a stupid one-character typo that was breaking 256-colour support on GTK. check-in: ee598e12ce user: ben tags: trunk | |
|
2007-03-13
| ||
| 09:43 | get_random_data() can return NULL (for instance, if we can't open /dev/random on Unix), yet cmdgen failed to deal with this. Spotted by Darren Tucker. check-in: 39d27e9f1d user: jacob tags: trunk | |
|
2007-02-28
| ||
| 17:31 | Process -t/-T later than -m, so that they can override -m's default behaviour of no pty. check-in: 6ecbbc4f02 user: jacob tags: trunk | |
| 15:30 | Prepend \\.\ to configured serial line string, to allow easy access to ports above COM9. check-in: 5260ceae34 user: jacob tags: trunk | |
|
2007-02-24
| ||
| 20:15 | Attempt to scrub -pw's argument in argv[], to make it less obvious. check-in: 20aafd8d77 user: jacob tags: trunk | |
| 18:51 | Delay evaluating the "-pw" option, so we can criticise the user's choice of backend, bailing out if anything other than SSH is in use. check-in: c4c12aecc8 user: jacob tags: trunk | |
| 18:50 | Since r7265, a user could not launch a PuTTY session to a specific host by simply specifying a hostname on the command line -- this would bring up the config dialog. Use a slightly more sophisticated notion of whether the user meant to launch a session. check-in: 3be54b7561 user: jacob tags: trunk | |
| 16:43 | "-noagent" and friends should be marked SAVEABLE, to ensure they're not clobbered by "-load". check-in: e7311276ec user: jacob tags: trunk | |
| 07:36 | Gareth pointed out yesterday that the Unix terminal front end treats BELL_DISABLED as BELL_DEFAULT. How embarrassing. check-in: 3e3c1216c5 user: simon tags: trunk | |
|
2007-02-18
| ||
| 16:05 | This reordering of the Unix Makefiles (requested by Michael Shigorin) allows use of -Wl,--as-needed. check-in: fee4847de2 user: jacob tags: trunk | |
| 13:56 | In controls where a list of entries is manipulated by Add/Remove buttons (SSH tunnels, TTY modes, and environment variables), when the Remove button is pressed, populate the edit controls from the entry that has just been deleted. Several users have requested this, as it makes editing an entry easier (read- modify-write) in the cases where order is unimportant, and also provides a degree of undo-ability. check-in: 847b1e85da user: jacob tags: trunk | |
| 13:50 | Allow dlg_listbox_index() to be called on multi-selection list boxes. check-in: 375dedc432 user: jacob tags: trunk | |
| 09:59 | Bring the OS X front end up to date with recent changes to the main code base. check-in: 2798a724a2 user: simon tags: trunk | |
| 08:02 | Ctrl-Break now sends a Break signal (previously it was equivalent to Ctrl-C). check-in: 65285954f0 user: jacob tags: trunk | |
|
2007-02-17
| ||
| 16:33 | Use preprocessor trickery to make the signal translation mechanism a little less hideous. The output of the preprocessor should be basically unchanged. check-in: 491721f229 user: ben tags: trunk | |
| 16:15 | ssh2_set_window checks whether the channel is being closed, so there's no need to check that before calling it. check-in: b91d8b1269 user: ben tags: trunk | |
| 11:44 | Unbreak "Duplicate session" on Windows, in a similar way to r7291. check-in: de46d1c4c8 user: jacob tags: trunk | |
|
2007-02-16
| ||
| 12:44 | r7265 broke the legacy `putty @sessionname' construction, which I wouldn't care about except for the fact that it's still used to implement the Saved Sessions menu item in PuTTY and Pageant. check-in: dc0247bf7b user: simon tags: trunk | |
|
2007-02-15
| ||
| 17:27 | LICENCE in the installer should have CP/M line endings. check-in: 5700f6f2ee user: jacob tags: trunk | |
|
2007-02-13
| ||
| 16:57 | It turns out that HH_INITIALIZE and HH_UNINITIALIZE are optional, and are for putting HTML Help into "single-threaded" mode. Furthermore, this requires extra work from the application (message pumping via HH_PRETRANSLATEMESSAGE). Thus, remove them and run Help in a secondary thread. This means that keyboard input into the Index and Search tabs now works. check-in: c55f4bfb2d user: jacob tags: trunk | |
|
2007-02-11
| ||
| 14:27 | Note that htmlhelp.h from HTML Help Workshop works perfectly well with Cygwin. check-in: 4919a4ebcc user: jacob tags: trunk | |
| 12:13 | chm.but contains $Id$ but didn't have a svn:keywords property. Fixed. check-in: a3b965711e user: jacob tags: trunk | |
| 12:09 | Typo. check-in: 80ed2bac99 user: jacob tags: trunk | |
|
2007-02-10
| ||
| 11:12 | Since we're now able to cope with Default Settings describing a launchable session without getting confused by it, we can relax the restriction on storing a host name in DS, which has attracted a steady stream of complaints over the past six or seven years. check-in: 81d5f6836c user: simon tags: trunk | |
| 11:02 | Avoid launching a session from the Default Settings, even if they do represent a launchable session, unless the user can be construed to have really meant it. This means: - starting up PuTTY when the Default Settings are launchable still brings up the config box, and you have to hit Open to actually launch that session - double-clicking on Default Settings from the config box will load them but not launch them. On the other hand: - explicitly loading the Default Settings on the command line using `-load' _does_ still launch them. check-in: e32793db99 user: simon tags: trunk | |
| 10:38 | More svn:ignores. I'm constantly amazed that I keep not having put in all the useful ones yet! check-in: dee2e1d2b4 user: simon tags: trunk | |
|
2007-02-08
| ||
| 12:53 | I've changed my mind about the PuTTY build script. It now delivers the release directory into a _subdirectory_ of the main build.out, and delivers the link maps and sign.sh alongside it. That simplifies both the nightly snapshot cron job (which now doesn't have to carefully move the maps out of the release directory or go looking in strange places for sign.sh) and my release procedure (for much the same reasons). check-in: 12ec555df0 user: simon tags: trunk | |
| 03:24 | The big payoff from bob (from my POV at least): the PuTTY release procedure is now a huge amount less painful. check-in: 48ac997cd1 user: simon tags: trunk | |
|
2007-02-06
| ||
| 16:39 | `installer.ico' doesn't fit into 8.3, so gets truncated to INSTALLE.ICO in the Windows source Zips. Rename to `puttyins.ico'. check-in: 0185769107 user: jacob tags: trunk | |
| 07:57 | When emitting SSH_MSG_IGNORE to protect against known-IV attacks on CBC, remember to put an empty string in it rather than sending a completely empty packet. This should help with those servers (notably RomSShell) that actually check the contents of SSH_MSG_IGNORE. check-in: bcc614254b user: ben tags: trunk | |
|
2007-02-05
| ||
| 14:14 | Ahem; other half of r7232... check-in: 6f2b9734d1 user: simon tags: trunk | |
| 14:04 | When calling TIOCSCTTY, it helps to pass it an fd that's still open, instead of one we closed two lines earlier. I apparently broke this in r7107. check-in: 4b39592852 user: simon tags: trunk | |
| 12:07 | Avoid passing modified SVN revision numbers (of the form 1234M) to parts of the versioning code which might not like them. As a result of this checkin, bob builds from modified SVN working copies will still announce themselves as revision nnnnM in the textual version strings, but their binary version in the Windows VERSIONINFO will now be 0.0.0.0. check-in: 0d6ba4a6e7 user: simon tags: trunk | |
| 09:01 | Fiddle further with .htaccess: add some $s on the ends of the regexps to stop them matching the wrong files. check-in: bf61139205 user: simon tags: trunk | |
| 08:23 | HTTP redirects for the variably-named signatures as well as their base files. (The signatures aren't actually _generated_ by bob, of course, but the redirects are harmless in their absence.) check-in: c4807a3220 user: simon tags: trunk | |
| 07:53 | Script to generate signatures on the various PuTTY build outputs. Saves me having to remember all the fiddly gpg arguments every time. Should be usable for both releases (with manual passphrase input) and snapshots (run automatically). check-in: f4a0252883 user: simon tags: trunk | |
| 06:49 | Fixes for snapshot building using bob. All of releases, snapshots and custom svn builds should now have appropriately named Unix source archives and installer binaries, plus .htaccess files providing redirects to them from totally standard filenames. I _think_ this now makes it feasible to switch the nightly builds to using bob. check-in: 4b5a9a3433 user: simon tags: trunk | |
| 02:02 | Be slightly more forgiving about the nature of SVN_REV; bob will be reliable at defining it, and it's useful to be able to pass `1234M'- type revisions in for testing purposes. check-in: 02d1e62321 user: simon tags: trunk | |
| 02:02 | Fix errors in $(Makeargs) which only occur when building development snapshots. check-in: c1d4b20b6e user: simon tags: trunk | |
|
2007-02-04
| ||
| 06:37 | PuTTY builds should save the map files. check-in: 1f0939b35e user: simon tags: trunk | |
| 06:30 | Version management updates for the new bob build script. There's now a fourth class of PuTTY version tags in addition to release, snapshot and unidentified: we now have `Custom build r1234', indicating a build made from that SVN revision in a context other than that of a dated snapshot. The build script generates these when it doesn't know what else to do; `unidentified builds' will now only occur when you run nmake from the command line. Also, the build script now generates sensible version data in the installer to match this. So I _think_ we should now be set to use bob to generate installer builds of the nightly snapshots, although of course I'll have to wait until tomorrow to test one. check-in: d9fefbf9f7 user: simon tags: trunk | |
| 06:12 | Document \\.\COM10 faff on Windows. References: <http://msdn2.microsoft.com/en-us/library/aa363858.aspx> (CreateFile() docs) describes the use of \\.\ <http://msdn2.microsoft.com/en-us/library/aa365247.aspx> ("Naming a File") lists the reserved filenames (COM1-COM9, LPT1-LPT9, CON, PRN, AUX, NUL) check-in: af7f556843 user: jacob tags: trunk | |
| 05:17 | Build script for PuTTY using bob. check-in: ff6b0c11d2 user: simon tags: trunk | |
|
2007-02-01
| ||
| 17:24 | Swap order of `Columns' and `Rows' in the config dialog, to make it consistent with sizetip.c (and more nebulous conventions). check-in: 64d5560d28 user: jacob tags: trunk | |
|
2007-01-31
| ||
| 06:30 | Colin Watson has fixed the disgusting icons on GTK1. His patch appears to merely fix the background colour (arranging for it to have transparency rather than being on some kind of default grey background), but it turns out to also fix the strange blurry behaviour I see in the GNOME Taskbar, for no very obvious reason. check-in: 11d422587d user: simon tags: trunk | |
|
2007-01-29
| ||
| 14:10 | In the cases where Setup asks to restart the computer, explain exactly why this is deemed necessary. check-in: 91c9da859e user: jacob tags: trunk | |
|
2007-01-26
| ||
| 13:43 | Switch round the order of CFLAGS and XFLAGS, so that the latter comes last on the compiler command line. This makes it easier to override the normal compile options (since conflicting command-line options usually follow a last-wins policy) in order to compile (for example) the Unix version -g -O0. check-in: 91bd9df8ab user: simon tags: trunk | |
| 08:11 | If I'd tested under Minefield before releasing, r7168 would have been committed before the release. Therefore, stick it on the checklist for next time. check-in: 221d1e2668 user: simon tags: trunk | |
| 08:06 | Kai Jourdan spotted a rather embarrassing double-free, and Minefield confirms that it's a real problem. check-in: be198c9138 user: simon tags: trunk | |
|
2007-01-24
| ||
| 18:14 | We may as well update the website icon to match the other new ones. check-in: 203b64aae3 user: jacob tags: trunk | |
| 15:43 | Post-release corrections to the checklist. check-in: c19f8fb422 user: simon tags: trunk | |
| 14:16 | Version number bumps, and associated changes, for the 0.59 release. check-in: c8cb2b479e user: simon tags: trunk | |
| 14:00 | Add .CHM to the ignore property. check-in: 2e1552cab6 user: simon tags: trunk | |
| 07:53 | The direct link between the terminal and the back end via term_provide_resize_fn() was not being broken when the back end was destroyed on session termination, causing resizing an inactive PuTTY to be a segfault hazard. check-in: f75921a917 user: simon tags: trunk | |
| 05:20 | faq-xpwontrun wants tweaking before the next release. check-in: 065773ed3e user: jacob tags: trunk | |
|
2007-01-23
| ||
| 08:12 | Mention XXX-REVIEW-BEFORE-RELEASE in the same place as XXX-REMOVE-BEFORE-RELEASE. check-in: 016bfdfedc user: jacob tags: trunk | |
| 05:38 | Mention the potential networked-CHM problem in the post-installer README. check-in: 84823feae7 user: simon tags: trunk | |
| 05:15 | Checklist updates for the upcoming release, mostly to do with the retirement of the Alpha build. check-in: e159ee7b68 user: simon tags: trunk | |
|
2007-01-22
| ||
| 12:02 | Add an icon for the PuTTY installer. Design concept (and noticing that Inno Setup had an option to specify an icon) by Jacob; detailed artwork and translation into Python by me. check-in: e5e89377a0 user: simon tags: trunk | |
| 08:04 | Improve error reporting. check-in: 7e73cf761a user: simon tags: trunk | |
|
2007-01-21
| ||
| 17:34 | Fix several bugs that stopped %proxyport from doing anything useful. check-in: 7ea0580824 user: jacob tags: trunk | |
| 17:34 | Fix Plink, the serial backend, and local-proxy support on Win98SE (at least), which have been broken since r6797. (At least some versions of Win9x are gratuitously picky about the arguments to CreateThread(), requiring lpThreadId not to be NULL.) check-in: 803dd5a810 user: jacob tags: trunk | |
|
2007-01-20
| ||
| 14:05 | Fix compiles on GCC 3.3, which doesn't know about assert(0); check-in: fe98cc1cc0 user: ben tags: trunk | |
| 10:14 | Mention more versions of Windows. (Not Vista, yet.) check-in: 869a65387f user: jacob tags: trunk | |
| 08:13 | Don't use C99 mid-block declarations and don't do arithmetic on void *. This helps with compilations on ancient Sun compilers. check-in: cb66fce8a1 user: ben tags: trunk | |
|
2007-01-19
| ||
| 08:33 | Move README.txt into windows subdir. It's specific to the Windows installer, so it seems unnecessarily confusing to have it in the top level of the source distribution alongside README. check-in: 1e87ebdb85 user: jacob tags: trunk | |
|
2007-01-17
| ||
| 12:38 | Flag user cancellation of authentication as a clean exit, so that it will close the window even in `close window only on clean exit' mode. Also, while I'm here, arrange a suitable exit code for "exit-signal". check-in: b95f1de6c0 user: simon tags: trunk | |
|
2007-01-16
| ||
| 15:32 | Update WINVER to 0x500 to avoid build failures from Jacob's FlashWindow changes. Also fiddle with the <multimon.h> include, which was subtly broken in turn by that. check-in: 93485461a3 user: simon tags: trunk | |
| 14:54 | At least, I have the technology to fix `beepind-win2k'. Tested on Win98, Win2K, and WinXP. check-in: d34719e103 user: jacob tags: trunk | |
| 13:26 | Add more ifdefs to make uxser.c compile on OS X. check-in: 194a6ad085 user: simon tags: trunk | |
| 12:48 | Fold up the `SSH' branch of the treeview by default; it's getting quite big and tends to hide the existence of the `Serial' config panel. This is implemented by folding up every branch of depth 2 or more, which with any luck might turn out to be general enough to carry over unchanged if other branches start expanding. Then again, we may have to fiddle with it again when that time comes; who knows? check-in: 0a82529a8f user: simon tags: trunk | |
|
2007-01-14
| ||
| 15:50 | I've just realised that the data-logging options only work in PuTTY proper. Document this. check-in: 7eaf06be84 user: jacob tags: trunk | |
| 07:44 | Remove the loops that close all open fds before running a subprocess. They were intended to make sure the child process didn't inherit anything embarrassing or inconvenient from us, such as the master end of its own pty, but now we instead do this by making sure to set all our own fds to not-FD_CLOEXEC on creation. This should fix Debian bug #357520. (This doesn't seem to work _quite_ right in uxproxy.c's invocation of a local proxy command: both ends of a GTK internal pipe end up in the child process's fd space. This appears to be another GTK 1 bug, inasmuch as it goes away when I build with Colin's preliminary GTK 2 patch; for the moment I think leaving that pipe lying around is probably less harmful than hampering the proxy process's ability to use extra fds by prior arrangement with PuTTY's parent process.) check-in: 5efc5c6876 user: simon tags: trunk | |
|
2007-01-12
| ||
| 17:35 | Experimental fix for `psftp-hang'. (Experimental only in that I haven't thought about it very hard; it's a plausible fix for the observed cause of the extreme CPU usage, being that we were asking to be notified of Windows messages and then not dealing with them, plausibly leading to a loop. Works for me, anyway.) check-in: 03548c6c2e user: jacob tags: trunk | |
| 14:00 | Remove redundant sentence. check-in: ed59f62f69 user: jacob tags: trunk | |
|
2007-01-09
| ||
| 18:54 | Miscellaneous updates. check-in: 3f94e0a489 user: jacob tags: trunk | |
| 18:46 | According to Frank Dijcks, this cast makes OpenWatcom happier. check-in: 75ed054d54 user: jacob tags: trunk | |
| 18:16 | Various SSH-related things were appearing in the PuTTYtel configuration dialog, probably since the addition of the serial backend. Use a more robust check for SSH support. check-in: b777e07a90 user: jacob tags: trunk | |
| 17:47 | MinGW needs an extra symbol _WIN32_IE defined to a particular value before it'll let you see an identifier (SHGFP_TYPE_CURRENT) referenced since r7082. (Actually, you need a pretty recent w32api before it's there at all.) Morally, this should be defined for all toolchains, not just MinGW/Cygwin, but I'll leave that to people who have those toolchains. <http://msdn2.microsoft.com/en-us/library/aa383745.aspx> Also add some other comments on our use of this API (since it's a horrible one that I suspect will come back and haunt us...) check-in: 01620f18e2 user: jacob tags: trunk | |
| 12:24 | Get rid of all the MSVC warnings. check-in: 1ef7a9aa1d user: simon tags: trunk | |
| 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 | |