Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
264 check-ins using file cproxy.c version 8a449ecc1b
|
2005-01-19
| ||
| 17:30 | Add an assertion so that short-rsa2-key-crash at least avoids segfaulting while we come up with a better solution. check-in: 83675aee49 user: ben tags: trunk | |
| 11:41 | While we're here, pad USERAUTH_INFO_RESPONSEs to 256 bytes too. check-in: b1da03aeda user: ben tags: trunk | |
| 06:34 | Make the outgoing SSH2 sequence number unsigned, so as to avoid depending on overflow behaviour of signed integers. check-in: 9ab372a1fe user: ben tags: trunk | |
| 04:07 | Add a lengthy comment warning future front-end implementors about the right and wrong way to implement the timing interface. check-in: 108c4ea6f7 user: simon tags: trunk | |
|
2005-01-18
| ||
| 16:01 | Bits and pieces, mostly stubs, for the Mac port. check-in: 35d32b9f38 user: owen tags: trunk | |
| 13:09 | Yes we do mean assignment. Bah. check-in: a4d7543bf7 user: owen tags: trunk | |
| 13:04 | The terminal reengineering of r4609 left an unused `start' lying around. Remove it. check-in: b8b50be09e user: owen tags: trunk | |
| 03:38 | ssh_pkt_getstring wants a boring int rather than an unsigned int. Let's give it one. check-in: e1b90bc8b9 user: owen tags: trunk | |
|
2005-01-17
| ||
| 10:38 | Currentish ssh.com supports single-DES in SSH2 as "des-cbc@ssh.com". It seems to be entirely the same as "des-cbc", so supporting it is trivial and we may as well do so. If nothing else, it makes it clear whose fault it is. check-in: 8fabb7fcd3 user: ben tags: trunk | |
| 04:07 | Change some function arguments to void * to placate picky compilers. check-in: e8bda63d8d user: owen tags: trunk | |
|
2005-01-16
| ||
| 18:50 | In SSH2, rather than sending an SSH_MSG_IGNORE after every password, just pad the packet out to 256 bytes. Much simpler. This leavs ssh2_pkt_defer() unused, so ifdef it out. check-in: 175fa7a092 user: ben tags: trunk | |
| 08:43 | Be a little less enthusiastic about sending SSH_MSG_CHANNEL_WINDOW_ADJUST: only send it when it will significantly increase the server's idea of our window. This avoids the slew of one-byte WINDOW_ADJUSTs that an interactive shell typically generates. check-in: 0268510fc1 user: ben tags: trunk | |
| 08:33 | Mac SC compiler whinges about trailing commas in enums check-in: 3758a51734 user: owen tags: trunk | |
| 08:29 | Support for falling back through the list of addresses returned from a DNS lookup, whether they're IPv4, v6 or a mixture of both. check-in: d774282d73 user: simon tags: trunk | |
| 08:14 | Make our SSH2 maximum packet size into a constant, since it's used in several places. check-in: bb2febbcff user: ben tags: trunk | |
| 08:02 | Owen tells me the Mac compiler complains at a char / unsigned char mismatch in the invocation of hmacmd5_key(). Do it properly with a void * argument. check-in: 7b7d4829ed user: simon tags: trunk | |
| 07:40 | Add minibidi to Mac PuTTY objects check-in: 8a93208499 user: owen tags: trunk | |
| 06:37 | Rewrite of Unix sk_newlistener() which should fix any possible problems involving trying to bind an IPv6 socket to an IPv4 address. check-in: f1b4410202 user: simon tags: trunk | |
|
2005-01-15
| ||
| 14:39 | Turn of ICRNL in the client tty when we're not in editing mode. This means that we send literal CRs and let the remote pty layer work out what to do with them, so that if it wants raw mode it can have it. check-in: 4bdb86742e user: ben tags: trunk | |
| 12:30 | FWHACK has been dead for years. Remove it from the Makefiles. check-in: 3e4c94b2d7 user: ben tags: trunk | |
| 11:28 | Fix prototypes for mactcp_new and ot_new. check-in: 00cfc31784 user: owen tags: trunk | |
| 11:16 | Throw away "./" in findfile so that the Mac makefile has valid paths. check-in: 8ea6b14ef5 user: owen tags: trunk | |
|
2005-01-14
| ||
| 13:28 | INADDR_NONE is nonstandard. Use (in_addr_t)(-1) instead. check-in: 746221d47e user: ben tags: trunk | |
| 06:26 | Don't use GNUish pattern rules in the Unix Makefile, since they're not supported by non-GNU makes. This allows the standard Solaris /usr/ccs/bin/make to handle that Makefile. check-in: a7aa20415e user: ben tags: trunk | |
|
2005-01-13
| ||
| 15:50 | Mention Cygwin/X as a potential X server, since it's free. check-in: 7bacb09766 user: ben tags: trunk | |
|
2005-01-11
| ||
| 13:33 | Fix `disconnect': arrange that we keep track of when we're expecting to see the server slam the TCP connection shut (i.e. almost never, unless it's just sent us an SSH_MSG_DISCONNECT), and treat an unexpected closure as a non-clean session termination. Previously any server-initiated connection closure was being treated as a clean exit, which was a hangover from the good old Telnet-only days. check-in: cffc0c078a user: simon tags: trunk | |
| 10:33 | Versions of OpenSSH before 2.5.4 kill the connection if the client attempts to rekey. Extend the description of SSH2_BUG_REKEY to cover this situation and apply it to the relevant OpenSSH versions. check-in: 7b589f12f9 user: ben tags: trunk | |
| 09:33 | Bah, I left a rogue event log entry lying around. check-in: 885c74ec18 user: simon tags: trunk | |
| 07:24 | Sun_SSH_1.0.1 also has BUG_SSH2_REKEY. check-in: a46b1af183 user: ben tags: trunk | |
| 04:45 | The Unix `make install' target now allows you to define UTMP_GROUP, in which case pterm will be installed setgid that, or to define UTMP_USER in which case it will be installed setuid that. If you define neither, it will be installed without any set-id bits as before. check-in: 956cdd1384 user: simon tags: trunk | |
| 04:37 | Servers announcing themselves as `Sun_SSH_1.0' apparently cannot deal with rekeys at all: they totally ignore mid-session KEXINIT sent by the client. Hence, a new bug entry so we don't try it. check-in: ed28fd9a5d user: simon tags: trunk | |
|
2005-01-09
| ||
| 08:55 | sk_namelookup() on Unix was failing to translate from our platform- independent ADDRTYPE_* constants to real AF_* ones, causing explicit protocol specification to fail. check-in: b98c6290a2 user: simon tags: trunk | |
| 08:45 | Remove unwanted underscore. check-in: 77e38f22b1 user: owen tags: trunk | |
| 08:27 | New function ltime() returns a struct tm of the current local time. Fixes crashes when time() returns (time_t)-1 on Windows by using the Win32 GetLocalTime() function. (The Unix implementation still just uses time() and localtime().) check-in: b5b804da44 user: owen tags: trunk | |
| 05:58 | Having laboriously constructed a hints parameter for getaddrinfo, it would help to _use_ it! check-in: 74977dc42d user: simon tags: trunk | |
| 05:44 | I've changed my mind about what the IP version selection options in the config should do when IPv6 is configured out. They shouldn't sit there looking silly with only `Auto' and `IPv4' settings: they should instead be completely absent. I had thought the former was acceptable since IPv4-only was a configuration that people should only be using if their compilers didn't support IPv6, but now it occurs to me that ports to fundamentally non-IPv6-supporting platforms are not implausible, and on such ports the presence of a vestigial config option under the _standard_ build conditions would be a low-quality solution. check-in: b0fa9fd94c user: simon tags: trunk | |
|
2005-01-08
| ||
| 08:45 | For local and dynamic port forwardings (i.e. the ones which listen on a local port), the `Auto' protocol option on the Tunnels panel should always produce a port you can connect to in _either_ of IPv4 and v6, because the aim is for the user not to have to know or care which one they're using. This was not the case on Windows, and now is. Also, updated the docs to give more detail on issues like this. check-in: f307208157 user: simon tags: trunk | |
| 08:02 | Cleanups to sk_namelookup(). In particular, it now doesn't segfault if you explicitly specify IPv6 and then try to look up a hostname which doesn't have an IPv6 address. check-in: 096be4666f user: simon tags: trunk | |
| 07:28 | Clear the kex-specific context in ssh->pkt_ctx for every new key exchange. Without doing this, after we have done one specific-group DH exchange (group1 or group14), ssh2_pkt_type _always_ translates 30 and 31 as KEXDH_INIT and KEXDH_REPLY, making a subsequent group-exchange kex look rather strange in an SSH packet log. check-in: 779096703f user: simon tags: trunk | |
| 07:08 | Jacob points out that changing TICKSPERSEC in unix.h changed the meaning of BellOverload{T,S} in Unix saved sessions. Add a Unix- specific backwards compatibility wart to settings.c to compensate. Of course when I do the serious config format revamp, I will ensure that no config item depends on internal #defines (these time intervals will be specified as a floating-point number of seconds) and this horror will be relegated to the old-config-compatibility code. check-in: 0b3bd20177 user: simon tags: trunk | |
|
2005-01-07
| ||
| 10:55 | Simon points out that r5068 broke keyboard-interactive with multiple INFO_REQUESTs, and for some reason Debian OpenSSH is sending INFO_REQUESTs containing no prompts after a normal password authentication, so this should fix Shai's problem. check-in: 8f61fc5781 user: jacob tags: trunk | |
| 09:25 | Update faq-bce further for changes in 0.54. check-in: c9b14f9851 user: jacob tags: trunk | |
| 08:22 | Proxy command formatting now recognises `%proxyhost' and `%proxyport' in addition to the other things it interpolates. This is useful when using the Unix-only `Local' proxy type: it allows me to, for example, set up a proxy command such as ssh %proxyhost nc -q0 %host %port and then enter the name of the proxy machine in `Proxy hostname', which makes it marginally more convenient to quickly change to using a different proxy to get at the same target. I haven't documented this, because we currently don't document the Local proxy type at all. Possibly we should, though. check-in: e7bfc6f3eb user: simon tags: trunk | |
| 03:24 | Use sk_set_frozen() to ensure that no data will be accepted from an SSH connection when we're in the middle of asking the user a dialog-box-type question. Fixes `unix-kex-packet', which has just bitten me when connecting to one of the work Suns. check-in: 65b1240966 user: simon tags: trunk | |
|
2005-01-06
| ||
| 11:05 | Add an explicit message about lack of support for PASSWD_CHANGEREQ in a half-hearted attempt to flush out any uses of it. check-in: a79322b17b user: jacob tags: trunk | |
| 09:47 | I can't believe that after all this time we still had a rogue set of `' quotes! Changed to \q{}. check-in: e8f108306c user: simon tags: trunk | |
| 07:23 | `kbdint-failure': we now offer keyboard-interactive auth to the user for as long as the server offers it, rather than only once, unless the server responds to our initial USERAUTH_REQUEST("keyboard-interactive") with FAILURE, in which case we give up on it entirely. check-in: 3f7f4f0136 user: jacob tags: trunk | |
| 06:37 | Try to make it clearer that "-be" and "-bc" must be specified in _addition_ to "-b batchfile". check-in: 8773e36e4b user: jacob tags: trunk | |
|
2005-01-04
| ||
| 11:39 | Don't forget to initialise ret->ai to NULL in sk_nonamelookup. Was causing segfaults in IPv6-enabled Unix PuTTY connecting through a proxy when letting the proxy do the DNS. check-in: 3df2181140 user: simon tags: trunk | |
| 08:37 | If we're going to use select(), we need <sys/select.h>. check-in: e32d59fc67 user: ben tags: trunk | |
|
2005-01-02
| ||
| 07:17 | colon in kex UI check-in: cfb5a7b051 user: jacob tags: trunk | |
| 03:19 | It's a new year! check-in: 0dcd4c8d0c user: simon tags: trunk | |
|
2005-01-01
| ||
| 10:43 | Localise "not connected to a host" messages. check-in: 2497e12c47 user: jacob tags: trunk | |
| 10:35 | Now that rm, mkdir, and rmdir can operate on lots of files, make them more chatty like the other multiple-file commands. check-in: 4363630adb user: jacob tags: trunk | |
| 10:16 | Document recent changes to PSFTP (and other documentation tweaks). check-in: 87aa86cb7f user: jacob tags: trunk | |
| 08:06 | Remove rogue sfree()s inside new wildcard action functions -- were causing segfaults in failure cases. check-in: 394dfda4b4 user: jacob tags: trunk | |
| 07:01 | There's always one: fix small memory leak introduced in last revision. check-in: becb9e9fd7 user: simon tags: trunk | |
| 06:34 | "Nirwana Nirwana" points out that mget, mput and ls are not the only PSFTP commands that can make good use of wildcards! Now implemented wildcard support in rmdir, rm, mv and chmod. check-in: cb00dfec44 user: simon tags: trunk | |
|
2004-12-31
| ||
| 13:06 | A couple of people have pointed out that the local variable `reading' in this file is not reliably initialised. check-in: 3d18309490 user: simon tags: trunk | |
| 07:02 | Rename some of the more stupidly named files in the Unix back end. Notably pterm.c, which was a sensible name right at the start but became a misnomer as soon as I created Unix PuTTY. check-in: afc775a19a user: simon tags: trunk | |
| 05:46 | In r5043 Jacob removed the `Load' and `Delete' buttons in the saved- sessions panel in the reconfig box. I think, given that, the title of that box also wants work :-) check-in: abaca4dd76 user: simon tags: trunk | |
| 04:51 | Allow reconfiguration of compression and cipher settings in mid-session in SSH2: this forces an immediate rekey to activate the new settings. I'm not sure exactly what this will be useful for (except possibly it might make comparative performance testing easier?), but it has wonderful James Bond value for being able to switch to a more secure cipher before doing anything sensitive :-) If, that is, you weren't using the most secure one to begin with... check-in: 6bca0a2afd user: simon tags: trunk | |
|
2004-12-30
| ||
| 11:53 | Reinstate the textual service name in port forwarding Event Log messages where specified. (I had removed this in the previous revision through forgetfulness.) check-in: 084642d5c1 user: simon tags: trunk | |
| 11:48 | Jacob points out that when we reconfigure port forwarding, we ought to be destroying old ones _before_ creating new ones, so that we can reuse a port for a new purpose without colliding with ourselves. Also fixed port forwarding, which my IPv6 checkin had completely funted :-) check-in: 3e59d470f1 user: simon tags: trunk | |
| 11:29 | If we're going to define _XOPEN_SOURCE, we should at least define it to a version that includes putenv(). Make it 600 (the current one) for good measure. check-in: a7dc2dc328 user: ben tags: trunk | |
| 10:45 | Integrate unfix.org's IPv6 patches up to level 10, with rather a lot of polishing to bring them to what I think should in principle be release quality. Unlike the unfix.org patches themselves, this checkin enables IPv6 by default; if you want to leave it out, you have to build with COMPAT=-DNO_IPV6. I have tested that this compiles on Visual C 7 (so the nightlies _should_ acquire IPv6 support without missing a beat), but since I don't have IPv6 set up myself I haven't actually tested that it _works_. It still seems to make correct IPv4 connections, but that's all I've been able to verify for myself. Further testing is needed. check-in: 99d7fec46d user: simon tags: trunk | |
| 09:29 | Stray // comments. check-in: a7351a8274 user: simon tags: trunk | |
| 07:51 | I've decided that trying to do wildcards in PSFTP as a special case of directory recursion was a strategic error: it obfuscates sftp_{get,put}_file(), and also it makes it very hard to handle subdirectory wildcards such as `foo/*'. Accordingly, here's a completely different approach, in which sftp_{get,put}_file() are still responsible for directory recursion, but wildcards are expanded in sftp_general_{get,put}() before being passed thereto. Subdirectory wildcards are now handled consistently across Unix, Windows and the remote server. check-in: 46c1373c46 user: simon tags: trunk | |
| 04:58 | Remove "Load" button in mid-session configuration dialog, as it allows the user to manipulate settings they can't see so could lead to confusion. (Also remove "Delete" button for some sort of UI consistency even though it's harmless.) Also conditionalise other aspects of sessionsaver_handler() that don't make sense mid-session. check-in: 711d82ee73 user: jacob tags: trunk | |
|
2004-12-29
| ||
| 07:44 | Add some discussion of rekeys-as-keepalives, and their potential adverse effect on the life expectancy of a low-use connection over a low-reliability network. check-in: be824f099e user: simon tags: trunk | |
| 06:32 | Loose end from r5031: the Kex panel should only be displayed in mid-session if we are not using SSHv1. I've done this by introducing a generic `cfg_info' function which every back end can use to communicate an int's worth of data to setup_config_box; in SSH that's the protocol version in use, and in everything else it's currently zero. check-in: 8cec6d493a user: simon tags: trunk | |
|
2004-12-28
| ||
| 11:12 | The latest unfix.org IPv6 patch contains these apparently IPv6-unrelated changes, which convert ints into unsigned in a few key places in ssh.c. Looks harmless at worst, possibly terribly useful, so I think we'll have these no matter what the real IPv6 stuff is up to! check-in: 23840b0529 user: simon tags: trunk | |
| 10:46 | Ability to save in mid-session! Simplest possible resolution to all the difficult questions about when it's sensible to offer the option of saving to the slot we loaded from: _we never do_. The user must always explicitly specify a slot to save to. check-in: 9a448e7d3f user: simon tags: trunk | |
| 10:18 | Forgot to initialise ssh->portfwds to NULL. Unusually, this was pointed out by the MSVC debugger, not by valgrind :-) check-in: 8a11a858c7 user: simon tags: trunk | |
| 08:11 | Can't use `d' for an accelerator in the Kex panel, since it clashes with the `d' used for the Down button in the Windows preference list. check-in: c74909c32f user: simon tags: trunk | |
| 08:10 | Support reconfiguration of key exchange in mid-session. The fiddly bit is working out when to reschedule the next rekey for when the timeout or data limit changes; sometimes it will be _right now_ because we're already over the new limit. Still to do: the Kex panel should not appear in mid-session if we are using SSHv1. check-in: 25f79c1e9a user: simon tags: trunk | |
| 08:07 | SSH port forwarding is now configurable in mid-session. After doing Change Settings, the port forwarding setup function is run again, and tags all existing port forwardings as `do not keep'. Then it iterates through the config in the normal way; when it encounters a port forwarding which is already in the tree, it tags it `keep' rather than setting it up from scratch. Finally, it goes through the tree and removes any that haven't been labelled `keep'. Hence, editing the list of forwardings in Change Settings has the effect of cancelling any forwardings you remove, and adding any new ones. The SSH panel now appears in the reconfig box, and is empty apart from a message explaining that it has to be there for subpanels of it to exist. Better wording for this message would be welcome. check-in: 771c5deefb user: simon tags: trunk | |
| 08:04 | Abstracted out the rather large port-forwarding setup code into a routine which is common between SSH1 and SSH2. Since this routine is not part of the coroutine system, this means it can't sit and wait to get its various success/failure responses back. Hence, I've introduced a system of queued packet handlers, each of which waits for exactly one of a pair of messages (SSH1_SMSG_{SUCCESS,FAILURE} or SSH2_MSG_REQUEST_{SUCCESS,FAILURE}), handles it when it arrives, and automatically de-registers itself. Hence the port-forwarding setup code can be called once, and then subsequent packets related to it will automatically be handled as they arrive. The real purpose of all this is that the infrastructure is now there for me to arrange mid-session configurability of port forwarding. However, a side benefit is that fewer round trips are involved in session startup. I'd quite like to move more of the connection setup (X forwarding, agent forwarding, pty allocation etc) to using the new queued handler mechanism for this reason. check-in: 5c871b121e user: simon tags: trunk | |
| 08:04 | Fix divide overflow in internal_mod(). Thanks to William Petiot for spotting a special case that the DIV instruction can't quite cover. check-in: 7f128afe0a user: simon tags: trunk | |
|
2004-12-24
| ||
| 07:39 | Basic configurability for client-initiated rekeys. check-in: 10eff8e7d3 user: jacob tags: trunk | |
| 04:04 | Don't offer repeat key exchange as a special command in SSH-1. check-in: 7730aea1d9 user: jacob tags: trunk | |
|
2004-12-22
| ||
| 23:54 | Minimally document "repeat key exchange" special command. check-in: ece0722d35 user: jacob tags: trunk | |
| 20:24 | Add a preference list for SSH-2 key exchange algorithms, on a new "Kex" panel (which will gain more content anon). Retire BUG_SSH2_DH_GEX and add a backwards-compatibility wart, since we never did find a way of automatically detecting this alleged server bug, and in any case there was only ever one report (<3D91F3B5.7030309@inwind.it>, FWIW). Also generalise askcipher() to a new askalg() (thus touching all the front-ends). I've made some attempt to document what SSH key exchange is and why you care, but it could use some review for clarity (and outright lies). check-in: c0c1b1745c user: jacob tags: trunk | |
| 17:17 | Fix potential access of freed data (only if we couldn't create the second of two registry keys, so pretty unlikely). check-in: d6440b9496 user: jacob tags: trunk | |
| 04:53 | Support diffie-hellman-group14-sha1 group exchange. Tested against locally built OpenSSH 3.9, and seems to work fine. check-in: 1716598298 user: simon tags: trunk | |
| 04:21 | In my revamp of cursor handling I had assumed that you were supposed to call _either_ do_text() _or_ do_cursor() on a given character cell. In fact you're supposed to call do_text() no matter what, and then call do_cursor() as well if it's got the cursor on it, since do_cursor() _only_ draws the actual cursor, which often doesn't also cause the text to get drawn. I'm half tempted to change this in the interface, retire do_cursor() as an external function and relegate it to an internal function in each front end, and require that do_text() must fully process all cursor attributes it is passed. However, I haven't done this yet. check-in: ec3c52848a user: simon tags: trunk | |
|
2004-12-20
| ||
| 03:27 | The end condition in the binary search loop in the new getType() was incorrect. I must have written that binary search idiom a hundred times, so it's rather embarrassing that I can't _automatically_ get it right! This was causing all kinds of characters to be classified as ON when they should have been various other classes. Also while I'm here, I've added another test case to utf8.txt (a small piece of Arabic within a predominantly L->R line), and also supplied a means to compile minibidi.c with -DTEST_GETTYPE to produce a command-line character class lookup tool. (Not sure what use that'll be _other_ than debugging this precise problem, but I don't like to throw it away now I've written it :-) check-in: d5e3c234a7 user: simon tags: trunk | |
|
2004-12-19
| ||
| 17:37 | Restore border around terminal to default background colour rather than something outside colours[] (consistently brown on my system). (I don't understand why this code was the way it was, but it gave the correct result before r4917 `256-colours', and now doesn't.) check-in: 0302a088bc user: jacob tags: trunk | |
| 17:15 | Correct number of configurable colours (NCFGCOLOURS) to match reality (leftover from `256-colours', r4917). check-in: dd7d41edc3 user: jacob tags: trunk | |
| 16:37 | Fix line cursor colours (fallout from `256-colours'), on both Windows and Unix. check-in: fc8fba4a2e user: jacob tags: trunk | |
|
2004-12-18
| ||
| 05:34 | Make sure the docs in a Unix release tarball are generated with the correct version info. check-in: 61da0dbc9d user: jacob tags: trunk | |
| 04:46 | Missed options off mput help check-in: 8b8fc6fa16 user: jacob tags: trunk | |
| 04:00 | zip apparently gives a warning (`-l used on binary file') when you use -l on a UTF-8 text file. Move potentially UTF-8 things (the new testdata files) into a new category of source files, and suppress zip's warning for that category. check-in: 63ce6ba766 user: simon tags: trunk | |
|
2004-12-17
| ||
| 08:25 | Jacob has pointed out why SIGCHLD was blocked, so I've updated the comment when I unblock it in pty.c to reflect reality. Also I've moved block_signal() out of pterm.c into signal.c, so I can conveniently use it for unblocking SIGCHLD rather than having to reinvent it in pty.c. check-in: e6e6127715 user: simon tags: trunk | |
| 07:39 | The xfer mechanism wasn't gracefully terminating when an error was encountered part way through transfer. In particular, this caused psftp to hang (waiting for FXP_READ replies which had already arrived) if you try `get' (without -r) on a remote directory. check-in: 9b4c7b154a user: simon tags: trunk | |
| 07:00 | Document recent SFTP changes: - document behaviour of "-r" with mget/mput/reget/reput - document "close" command - document SFTP wildcard syntax for those who may not be familiar with Unix wildcards check-in: d7c8b9fbfa user: jacob tags: trunk | |
| 06:55 | I _think_ I've just fixed `font-overflow'. term->disptext now tracks the start of every contiguous run passed to do_text() or do_cursor(), and arranges never to overwrite only part of such a run on the next update. I'm a bit worried about this checkin because I've also completely revamped cursor handling: the cursor was previously being drawn _outside_ the main loop over the display line, and is now drawn as part of that loop when it gets to the cursor location. It _seems_ to still work sensibly, even in complex cases involving LATTR_WIDE and double-width CJK characters etc, but I won't be entirely happy until it's had some beta use. check-in: b868941b5d user: simon tags: trunk | |
| 06:15 | Update online help for "-r" and "--" options to get/put commands. Use command name in error messages rather than hardcoded "get:"/"put:". check-in: ce3882214d user: jacob tags: trunk | |
| 05:37 | Divide the do_paint() loop into several subloops. The activity of going through the line and working out which bits need to be redrawn is now in a separate loop from the subsequent activity of actually going through and doing the redraws. This _should_ enable me to tinker with the which-bits-to-redraw data in between the two, thus fixing `font-overflow'. However, I thought it would be sensible to break the work up into two commits so we can track bugs in the restructuring separately from bugs introduced by the new feature. Also added a couple more terminal test files. check-in: 529f5d4832 user: simon tags: trunk | |
| 05:24 | I had apparently broken wrapping of double-width characters (again). Also fixed the new UTF-8 test file so that it tests double-width wrapping both with _and_ without LATTR_WRAPPED2. check-in: 5f0baf2cd5 user: simon tags: trunk | |
| 05:18 | I'd rather not keep losing these little test files, so here's some stuff that I can `cat' into a terminal to test particular features of it. check-in: 82be78c949 user: simon tags: trunk | |
| 03:43 | Apparently SIGCHLD is blocked by default in processes run in a pterm, which was breaking my bash job notification patch. This is apparently not the case for xterm, so I've fiddled with it. Not entirely sure _why_ it did this in the first place, but there we go. check-in: 1d52612956 user: simon tags: trunk | |
|
2004-12-16
| ||
| 13:36 | General mechanism for ensuring a dodgy SFTP server can't return malicious filenames via FXP_READDIR. check-in: c846e64623 user: simon tags: trunk | |
| 13:19 | Implement the `close' command, which terminates an SFTP session but does not quit PSFTP, so you can then issue another `open' to connect to somewhere else. This has apparently been trivial for some time, for exactly the same reasons that `reuse-windows' was so easy, but it hadn't occurred to me to actually do it until now. check-in: 54f8df664d user: simon tags: trunk | |
| 13:15 | Jacob points out that I introduced a bug in PSFTP when I did the timing shakeup: just running `psftp' caused the net/stdin select loop (on both Unix and Windows) to get confused at the lack of any network connection and give up immediately. Should now be fixed. check-in: 7f1a80cc9d user: simon tags: trunk | |
| 11:45 | Wildcards in `ls'. I think that completes `psftp-multi'. Woo! check-in: 23bacbfd9f user: simon tags: trunk | |
| 11:35 | Implement mget and mput in PSFTP, supporting wildcards. check-in: 292ea1d038 user: simon tags: trunk | |
| 10:37 | Support for recursive file transfer in PSFTP. check-in: 8d0de62bb0 user: simon tags: trunk | |
| 09:38 | Fix obviously stupid segfault. Ahem. check-in: 95d7fcd0a1 user: simon tags: trunk | |
| 09:22 | Abe Crabtree complains that flushing the log file as often as we do in 0.56 results in unacceptable performance for him on Win2000. Add a checkbox to revert to the old behaviour. check-in: e3ced0602f user: jacob tags: trunk | |
| 09:01 | Rename scp.* to pscp.*, because I always misspell it that way. Also it's more consistent with PSFTP like this: scp.c/pscp.c is more similar to psftp.c (the main application framework) than it is to sftp.c (a set of back-end library routines). check-in: 769189a6e0 user: simon tags: trunk | |
|
2004-12-10
| ||
| 05:41 | Unix PSCP was tight-looping when connecting through a ProxyCommand. Turned out that sk_localproxy_close() was closing the pipe fds without removing them from the uxsel list. check-in: d33391ac70 user: simon tags: trunk | |
|
2004-12-08
| ||
| 13:41 | Replace the RLE-based getType() function with one that binary- searches a list of (start,end,type) tuples. This increases data size by about 5Kb, which is a shame; but on the plus side, it boosts performance from O(N) to O(log N). As an added bonus, the table now covers _all_ of Unicode, not just the BMP. check-in: 2a29cfc6ba user: simon tags: trunk | |
| 13:07 | Further clarity and speed cleanups of minibidi: - rewrote the reversal loop in flipThisRun to be considerably clearer - rewrote leastGreaterOdd and leastGreaterEven as bit-twiddling macros - replaced malloc/free with snewn/sfree - lost some gratuitous repeat calls of getType on the same character And most noticeably: - got rid of minibidi.h, since it was entirely full of minibidi.c internals (including constant data definitions!) and wasn't used to provide an external interface at all. Everything in it has been folded into minibidi.c. check-in: 6a1f4de516 user: simon tags: trunk | |
|
2004-12-07
| ||
| 12:18 | Reformat minibidi.[ch] in line with my coding conventions. It was just getting to be too much hassle trying to work with the existing indentation. check-in: 7c396881dd user: simon tags: trunk | |
| 12:10 | Bidi stability work. I _think_ I've now removed all the failures of array bounds checking. check-in: 985fa45e60 user: simon tags: trunk | |
| 05:50 | Fix segfault when HOME not set on Unix. check-in: 64f18d2b49 user: owen tags: trunk | |
|
2004-12-02
| ||
| 07:48 | \n and \r need double backslashes in Halibut. check-in: b51bd05d37 user: simon tags: trunk | |
| 07:37 | NULL a couple of members after freeing them in ssh_free(). In particular, should stop ssh_do_close() accessing freed ssh->channels when invoked later from ssh_free(). Spotted by Fred Sauer. (Perhaps this is the cause of the crashes people have been reporting on abnormal closures such as `Software caused connection abort'? I've not been able to test this.) check-in: f3f0eafa38 user: jacob tags: trunk | |
| 07:07 | Mention our assumptions about the execution character set. Not very well-written, since my brain is largely absent today. check-in: 70c76c16bd user: ben tags: trunk | |
|
2004-12-01
| ||
| 09:34 | Bah. Ben points out that SSH_1_ version strings should still end in \n, and also that `\r' and `\n' don't mean what I think they mean on all compilers (Mac reverses them). check-in: 5cfe4be596 user: simon tags: trunk | |
| 07:42 | And now I look at it, the latest draft also says version strings should be followed by \r\n, not just \n. check-in: 138a06123c user: simon tags: trunk | |
| 07:37 | Kimmo Parviainen points out that SSH software version strings have restrictions on the use of hyphens and spaces. check-in: 9b824c14f2 user: simon tags: trunk | |
| 03:25 | term_bidi_cache_store() now has a need to distinguish between the _width_ of a terminal line (number of character cell positions) and its _size_ (number of termchars), since of course these differ in the presence of combining characters. check-in: 3182fb76d5 user: simon tags: trunk | |
|
2004-11-30
| ||
| 07:39 | Fix large memory leak introduced in the r4915 bidi changes. check-in: 19cb7e3f26 user: simon tags: trunk | |
|
2004-11-29
| ||
| 19:07 | Another default-background fix for 256-colour mode check-in: da93f608bb user: jacob tags: trunk | |
| 10:58 | Nitpick, close bracket. check-in: 1305136e4a user: owen tags: trunk | |
| 05:31 | Some blurb about terminal types and 256-colour xterms. Thanks to Dan Nicolaescu for the suggestion. check-in: 38b8c1bf4d user: simon tags: trunk | |
| 03:40 | rm '$Source$' from comments as not meaningful under Subversion check-in: 42e6df4e40 user: jacob tags: trunk | |
| 03:27 | typo in comment check-in: c12759e021 user: jacob tags: trunk | |
| 03:23 | Briefly document the "CP866" manual-entry feature on Windows in the dialog itself (since we have a bit of room). check-in: cdce670586 user: jacob tags: trunk | |
|
2004-11-28
| ||
| 09:18 | Bah, there's always one thing I miss. Correct the background-colour handling in Unix PuTTY. check-in: b306166356 user: simon tags: trunk | |
| 09:13 | Implement xterm 256-colour mode. check-in: 1d10fbc8cf user: simon tags: trunk | |
| 03:32 | Stability fixes (thanks valgrind). check-in: 0f2074ec6b user: simon tags: trunk | |
| 03:24 | Cursor position, selection highlights and mouse clicks are now all transformed back and forth according to the character position permutation output from the bidi algorithm. I was expecting that to be a lot harder. check-in: fcf7a639b6 user: simon tags: trunk | |
|
2004-11-27
| ||
| 18:48 | Oops; forgot to add this file in r4913. check-in: 2f7ca41897 user: simon tags: trunk | |
| 13:56 | Loose end from timing shakeup: sshrand.c is now a client of timing.c, and hence takes its own responsibility for calling noise_regular() at regular intervals. Again, this means it will be called consistently in _all_ the SSH-speaking tools, not just those in which I remembered to call it! check-in: 4150c7ebb8 user: simon tags: trunk | |
| 13:41 | Changes in startup order to ensure any subsystem which might attempt to schedule timers is not started until after hwnd is initialised. check-in: 25fee5edd7 user: simon tags: trunk | |
| 13:34 | Slight improvement to cursor blink timing: since the cursor doesn't blink when the window doesn't have focus, we don't schedule blink timers at that point either. Infrastructure change: term->has_focus should now not be written directly from outside terminal.c. Instead, use the function term_set_focus, which will sort out the blink timers as well. check-in: 7a1f0222f8 user: simon tags: trunk | |
| 09:32 | Almost _all_ of the final connection-layer loop, in both SSH1 and SSH2, is now handled by the packet dispatch table. Dispatch table entries are enabled as soon as possible, so that if anyone tries to (for example) start using a forwarded port before the main shell session setup has finished, things should work sensibly. The SSH code is now a hybrid of coroutine-based sequential logic and table-driven event dispatch, each where it makes the most sense. I'm rather pleased with it. Should fix: ext-data-at-start, portfwd-at-start. check-in: b15612d1c4 user: simon tags: trunk | |
| 08:29 | Implement client-initiated rekeys after an hour, or after 1Gb of data transfer in either direction (whichever comes first), or at explicit client request (nice idea Jacob). Have tested by lowering the limits, and it all seems solid enough; in particular, this has also allowed me to test the behaviour when connection-level data is received during rekey, and that looks fine too (at least it does _now_ :-). check-in: a58a9529c0 user: simon tags: trunk | |
| 07:31 | Bah, I knew I'd miss _something_. term_out is now static, so declaring it in putty.h gives a warning under Unix. check-in: 2f29b2a9ed user: simon tags: trunk | |
| 07:20 | New timing infrastructure. There's a new function schedule_timer() which pretty much any module can call to request a call-back in the future. So terminal.c can do its own handling of blinking, visual bells and deferred screen updates, without having to rely on term_update() being called 50 times a second (fixes: pterm-timer); and ssh.c and telnet.c both invoke a new module pinger.c which takes care of sending keepalives, so they get sent uniformly in all front ends (fixes: plink-keepalives, unix-keepalives). check-in: 683ee6bed3 user: simon tags: trunk | |
|
2004-11-25
| ||
| 07:40 | uint64_decimal() incorrectly output 0 as "" instead of "0". This only affected PSFTP's "reput" chat. Spotted by Greg Parker. check-in: b78a11829c user: jacob tags: trunk | |
|
2004-11-24
| ||
| 14:35 | Re-architected the top level of the SSH protocol handlers. ssh1_protocol() and ssh2_protocol() are now high-level functions which see _every_ SSH packet and decide which lower-level function to pass it to. Also, they each support a dispatch table of simple handler functions for message types which can arrive at any time. Results are: - ignore, debug and disconnect messages are now handled by the dispatch table rather than being warts in the rdpkt functions - SSH2_MSG_WINDOW_ADJUST is handled by the dispatch table, which means that do_ssh2_authconn doesn't have to explicitly special-case it absolutely every time it waits for a response to its latest channel request - the top-level SSH2 protocol function chooses whether messages get funnelled to the transport layer or the auth/conn layer based on the message number ranges defined in the SSH architecture draft - so things that should go to auth/conn go there even in the middle of a rekey (although a special case is that nothing goes to auth/conn until initial kex has finished). This should fix the other half of ssh2-kex-data. check-in: 3ffc78a463 user: simon tags: trunk | |
| 13:53 | random_init() should be called at most once during the running of PuTTY, even if it's managing multiple sessions. check-in: 39b712e47a user: simon tags: trunk | |
| 13:23 | Now that Packet structures are dynamically allocated, it means we can keep several of them in parallel. In particular, this allows us to queue outgoing packets during repeat key exchange, to be actually sent after the rekey completes. (This doesn't fully fix ssh2-kex-data; also required is the ability to handle _incoming_ connection-layer packets during rekey without exploding.) check-in: be91e5a407 user: simon tags: trunk | |
| 12:45 | Minor refactoring: the fields `pktin' and `pktout' in the Ssh structure have been retired. Now all Packet structures are dynamically allocated. Each rdpkt function allocates one, and it's freed after being used; and the packet construction functions allocate them too, and they're freed by the send functions. `pktin' and `pktout' were ugly. They were _morally_ still global variables; even though they were replicated per SSH session to comply with the Mac no-globals requirement, they weren't really in the _spirit_ of `dynamically allocate your data'. As a side effect of this change, the `pktout_blanks' and `pktout_nblanks' fields in the Ssh structure have been moved into the Packet structure. check-in: 55fff29d00 user: simon tags: trunk | |
| 05:42 | I think rjk meant `setpgid', not `setpgrp'. check-in: ef747fcdbc user: simon tags: trunk | |
| 05:36 | RJK's OS X portability patch: - initialise blank mbstate_t using memset rather than an ad-hoc initialiser. - expand the OMIT_UTMP ifdefs to enclose a load of entire functions that would generate `static function never called' warnings if left as empty shells. - couple of other fiddly things. check-in: d8510637ed user: simon tags: trunk | |
| 05:35 | It's probably about time I took my private path to the Halibut binary out of the PuTTY docs Makefile. Instead, I expect to find Halibut as simply `halibut' on the PATH, and anyone who doesn't have it there can always do `make HALIBUT=/path/to/halibut'. check-in: ba11d868ac user: simon tags: trunk | |
|
2004-11-23
| ||
| 21:18 | \k --> \K check-in: b32223caeb user: jacob tags: trunk | |
| 10:43 | Darek Olszewski points out that telnet->ldisc is never initialised to NULL. check-in: 72fd066536 user: simon tags: trunk | |
|
2004-11-22
| ||
| 07:49 | Fix typo in term_size(), flagged by a Dr Watson log from Temme Rainer. check-in: a66ea5ad2e user: simon tags: trunk | |
| 06:42 | Minor index tweakery. check-in: 23767676d8 user: simon tags: trunk | |
| 05:02 | Trivial bug fix pointed out by Paul Fox: potentially missing fclose(). check-in: 3c03a1f730 user: simon tags: trunk | |
|
2004-11-20
| ||
| 13:07 | Add missing backslash in "Unable to create registry key" messages. check-in: ce7d538ed6 user: jacob tags: trunk | |
| 12:29 | UI tweak from Malcolm Rowe: set IDM_VIEWKEYS as the default menu item and use that mechanism to invoke it on double-click; this emboldens it in the right- click menu. check-in: 75eace3be5 user: jacob tags: trunk | |
| 11:47 | XXX comment in the logic which sends failed password auth back to username prompt for keyboard-interactive. I suspect we should do the same with that method (especially given the apparent number of systems that use it for regular password auth), but in the absence of systems to test against I've not actually made the change. (I'm worried that the `partial success' field might not be set correctly in a multi-stage authentication, for instance.) check-in: 1de0f52527 user: jacob tags: trunk | |
| 11:11 | As a result of the policy allowing changes of username to reset the authentication state, a failed `password' authentication in SSH-2 was sending us back to trying `none' and `keyboard-interactive' each time round, which uses up OpenSSH's quota of authentication attempts rather quickly. Added a check for `cfg.change_username' to the logic which sends us back to the start. check-in: ad08d145bf user: jacob tags: trunk | |
|
2004-11-19
| ||
| 15:24 | Make PSFTP use console_get_line() to fetch username, so that that prompt is affected by `-batch'. check-in: 26e5debddb user: jacob tags: trunk | |
| 15:05 | console_get_line() returns failure iff console_batch_mode is set, whereas before is would return success and the empty string. IMO this makes `-batch' much more useful; before, utilities such as Plink in `-batch' mode would attempt to plough on using empty strings for usernames, passwords, and so on. check-in: 85f4e4b0c4 user: jacob tags: trunk | |
| 14:57 | Remove FLAG_INTERACTIVE test from "login as:" prompt. Kelly John Carney pointed out that Plink would attempt to use a zero-length username iff a remote command was specified (because the FLAG_INTERACTIVE test was erroneously combined with the no-username test). I don't think this will break non-interactive use; in the cases which behave differently, Plink would be attempting to use the empty username, which was almost certainly wrong, whereas now it will give a prompt (which can be avoided with -batch as usual). (Although perhaps we should attempt to use a local username as a guess for the remote username, as PSCP does? I've not done this.) check-in: 052f19dc36 user: jacob tags: trunk | |
|
2004-11-18
| ||
| 13:44 | "Connection reset by peer" is apparently not the only error that keepalives can help with. check-in: 2ba2803830 user: jacob tags: trunk | |
| 13:41 | "Software caused connection abort": a couple of people now have got rid of this with keepalives. Also try to emphasise that this seems to be a generic catch-all type of error. check-in: e7ccea5765 user: jacob tags: trunk | |
| 11:13 | *sigh* X11 forwarding to a local display (":0" or similar) specified in the environment rather than the configuraton was failing as of 0.56 (introduced in r4604). This probably only bit users of Unix PuTTY. Didn't spot in testing as I was forwarding to already-forwarded displays. I really wasn't having a good month that month, was I? check-in: 02e36a55f2 user: jacob tags: trunk | |
| 09:16 | Add an extra appendix to the manual containing PuTTY's (hitherto) unwritten design principles, so would-be contributors won't have to either read our minds or pay _very_ close attention to the code. check-in: 795c13d68b user: simon tags: trunk | |
| 05:30 | Move MODULE files out of individual project directories into a MODULES top-level directory, which is where the Tartarus website scripts will (hopefully) start reading them from. check-in: 1e22c22481 user: simon tags: trunk | |
|
2004-11-17
| ||
| 12:27 | mkunxarc.sh was still including (mostly empty) .svn directories, and that in turn was confusing the new doc/Makefile mechanism. Fixed the former, and also put an additional safeguard in the latter in a belt-and-braces sort of fashion. check-in: 79d77aaf06 user: simon tags: trunk | |
| 12:16 | Now we use Subversion, it seems excessive to have an individual $Id$ line for every single .but file at the bottom of each page of the HTML PuTTY docs. However, we can't _always_ replace that with a single SVN revision, because there isn't always one available (SVN still allows mixed working copies in which some files are deliberately checked out against a different revision). Hence, here's a mechanism for doing better. It uses `svnversion .' to determine _whether_ a single revision number adequately describes the current directory, and replaces all the version IDs with that if so. If it can't do that, it uses the version IDs as before. Also, this allows an explicit version string to be passed on the make command line which will override _both_ these possibilities, so that release documentation can be clearly labelled with the release version number. check-in: ca9c212395 user: simon tags: trunk | |
| 02:02 | Fix mksrcarc.sh for directory reorganisation. check-in: 1f75bbb07c user: simon tags: trunk | |
|
2004-11-16
| ||
| 17:58 | pedantic s/CVS/Subversion/ check-in: 1e7235c40e user: jacob tags: trunk | |
| 17:32 | Some tweaks for Subversion and windows/ subdir. check-in: b16f306be1 user: jacob tags: trunk | |
| 17:26 | Fix Windows installer script: the paths were wrong after the directory reorganisation, and also the EOL style needs to be CRLF or Inno Setup gets upset. check-in: 1ab925824c user: simon tags: trunk | |
| 16:14 | Now that we have Subversion's file renaming ability, it's time at long last to move all the Windows-specific source files down into a `windows' subdirectory. Only platform-specific files remain at the top level. With any luck this will act as a hint to anyone still contemplating sending us a Windows-centric patch... check-in: a6928f6770 user: simon tags: trunk | |
| 12:01 | Various changes related to the Subversion migration. check-in: a885a86071 user: simon tags: trunk | |
| 09:29 | Remove .cvsignore files on all active branches. check-in: 5056e73ac2 user: simon tags: trunk | |
| 09:27 | CVS revision numbers, stored as `cvs2svn:cvs-rev' properties, are a useful piece of history in this repository but we don't want to preserve their latest values on future commits. Accordingly, I'm deleting them from all active development (though not from past release branches). check-in: 804f5806a0 user: simon tags: trunk | |
|
2004-11-15
| ||
| 09:57 | Mention that comp.terminals may also be a useful newsgroup. I've done this by centralising information about newsgroups in feedback.but and linking to that from elsewhere; I've also put in a link to Google Groups. check-in: 7f2bab7ad5 user: jacob tags: trunk | |
| 05:10 | Miloslav Cempirek Ing points out that we should return from sessionsaver_handler after processing a one-click saved session launch, to protect against accidentally calling dlg_end twice on the same dialog. check-in: 4d04cab8ad user: simon tags: trunk | |
|
2004-11-11
| ||
| 03:40 | I masked off LATTR_WRAPPED et al in do_text_internal(), but forgot to do the same in do_cursor(). Bet that's the cause of Andrey Borzenkov's cursor positioning bug. check-in: 58f5a1164f user: simon tags: trunk | |
|
2004-11-09
| ||
| 11:57 | DJSD requests a force-monochrome option for users who dislike angry- fruit-salad applications :-) check-in: 33c221f28a user: simon tags: trunk | |
|
2004-11-02
| ||
| 17:06 | Note upper limit of WM_SYSCOMMAND identifiers in a comment. check-in: 8c6f402124 user: jacob tags: trunk | |
| 17:06 | Go back to using intervals of 16 for the saved session identifiers for the system menu, but expand from 256 entries to 1024 as there seems to be plenty of space. Also remove a couple of unused IDM_* constants. check-in: bea10e6972 user: jacob tags: trunk | |
| 16:30 | Simon has reminded me _why_ menu identifiers were spaced every sixteen, so let's add a comment so that we don't forget again. Source: <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardaccelerators/keyboardacceleratorreference/keyboardacceleratormessages/wm_syscommand.asp> check-in: 00c981a774 user: jacob tags: trunk | |
| 11:44 | Since neither I nor Owen know why the IDM_ values for the saved-sessions submenu were going up in steps of 16, I've changed to steps of 1, thus increasing the possible number of sessions from ~256 to 4096, since a recent report seemed to indicate that the previous limit might not be enough for someone (!) I can't find any documentation that puts an upper limit on the number of menu items, and it seems to work on Win98, which is where I'd expect it to break if anywhere. Also a number of other tweaks to this code. check-in: 9dabd7d0df user: jacob tags: trunk | |
|
2004-11-01
| ||
| 08:18 | Argh, I messed up SSH1 remote tunnels too (same mistake). check-in: 6ef518b9a5 user: jacob tags: trunk | |
|
2004-10-31
| ||
| 18:47 | Ahem, let's not try initialising a static with a non-constant initialiser. Also, I'm pretty sure that adding a source address to a remote SSH-2 forwarding can never have worked, since we added an address string to the packet twice in that case. OpenSSH 3.4p1 certainly doesn't like it (`Server has disabled port forwarding' debug message). Fixed (and OpenSSH is happier now). check-in: fb4b938df2 user: jacob tags: trunk | |
| 18:17 | Argh. Failure to make a variable static to get round coroutine mechanics means that each SSH-2 remote tunnel will sfree() something random and thus have a chance of crashing or doing something else bad, although it won't otherwise affect execution. Introduced in 1.319 [r4529] (some of my improved diagnostics). One day I'll make a checkin to ssh.c without forgetting about the coroutines... check-in: b5c42f2525 user: jacob tags: trunk | |
|
2004-10-27
| ||
| 19:23 | Malcolm Rowe spotted that we broke display of SSH2_MSG_DEBUG messages while fixing `vuln-ssh2-debug', by missing out a field. In most cases (always_display = 0) we would log a zero-length or truncated message. (Also add a prototype for ssh2_pkt_getbool().) check-in: 911eda30fa user: jacob tags: trunk | |
| 10:50 | Malcolm Rowe's UI tweak patch for About/Licence: recognise `Esc' to close windows (PuTTY, Pageant, PuTTYgen); Licence window parent in PuTTY. check-in: 267adc6657 user: jacob tags: trunk | |
|
2004-10-26
| ||
| 14:47 | Good grief! I should create the `htmldoc' subdir in the release tree _before_ I create the md5sums files. I am a gibbon. check-in: 2ecfd9b02a user: simon tags: trunk | |
| 14:32 | Add bumping version number on trunk to new post-release checklist. Also, sometimes `0.XX' is used in the docs as a placeholder for a version number. check-in: 5bfbc957d3 user: jacob tags: trunk | |
| 13:59 | Merge version number bump (0.56) from release branch. check-in: b36810f643 user: jacob tags: trunk | |
| 13:44 | Reorder a couple of points on the wishlist, and also add a few helpful chunks of `sh' to make life easier next time I make a release. check-in: 49204859d4 user: simon tags: trunk | |
|
2004-10-24
| ||
| 17:57 | Add a note about documentation of the Unix port (i.e., we don't, specifically). This is mainly intended to make the documentation suitable for including in distributions such as the Debian package, but won't be amiss on the web site docs. It will look a bit out of place in the .HLP, but never mind. check-in: 89c758179e user: jacob tags: trunk | |
| 13:30 | Mention -i. check-in: a9b40c286e user: jacob tags: trunk | |
| 13:26 | Random tweaks: - change click-by-click advice on modifying saved sessions - add `Restart Session' as another reason you might not want to close the window on exit; other tweaks to this language - mention Shift-Backspace action - the window resizing configuration documentation was completely out of date; rewrite - add a note about Default Bold Background since it's caused confusion - "remote terminal" -> "remote system" in terminal-type doc check-in: 3cd1ba067c user: jacob tags: trunk | |
| 11:48 | Freshness tweaks: - mention `Restart Session' - tweak language of `-N' (plural->singular) check-in: 0e995a94a2 user: jacob tags: trunk | |
| 11:24 | Freshness tweaks: - soften language around changing-username-during-login section; with SSH-2 this is a misfeature of implementations rather than the protocol itself - tweak new-host-key dialog text check-in: 3206cdad9b user: jacob tags: trunk | |
| 10:58 | Differences between protocols: remove the entire paragraph about environment variables. It was no longer true (given that we support them in SSH-2 now), and the new situation was probably too complex to explain in an introductory chapter. And the utility of setting them seems to be marginal these days given the lack of server support. check-in: 557443edea user: jacob tags: trunk | |
| 10:41 | Mention PSFTP on title page check-in: 16816a48a2 user: jacob tags: trunk | |
|
2004-10-22
| ||
| 11:50 | Better bounds checking in the exit-signal handler. check-in: b0f77e81a6 user: simon tags: trunk | |
| 11:47 | We ought to be using the ssh_pkt_* routines for the messages which we process at any time in the rdpkt routines, as well as everywhere else. check-in: dcee5dd92a user: simon tags: trunk | |
|
2004-10-21
| ||
| 05:59 | I just had a need to decode a piece of Zlib data from out of the middle of a PDF. So here's a modification to sshzlib.c which enables it to be compiled into a standalone Zlib decoder if you define ZLIB_STANDALONE. As an added bonus, it (both standalone and in PuTTY) also validates the Zlib header, just to make sure someone hasn't defined a new compression format. check-in: 2fd4126e27 user: simon tags: trunk | |
|
2004-10-19
| ||
| 08:54 | Munge line-drawing description to match current naming and order of options (in the Windows version), and hopefully to clarify distinction between line charset and local font, which has occasionally foxed me. Cross-reference the Translation panel reference section from the intro section in using.but and mention line-drawing characters there also. check-in: 8e4659b566 user: jacob tags: trunk | |
|
2004-10-17
| ||
| 19:41 | Add support for logging "exit-signal", why not. This is disgustingly huge because old versions of OpenSSH got the message format wrong, so we have to infer which format is in use. Tested with Debian stable OpenSSH (3.4p1), with `uint32' packet, and lshd, which uses the correct `string' packet, and also let me test "core dumped" and the explanatory message. check-in: 4b7166ef39 user: jacob tags: trunk | |
| 16:22 | Support the SSH-2 mechanism for sending signals to a running session. Neither of the SSH servers I conveniently have access to (Debian stable OpenSSH -- 3.4p1 -- and lshd) seem to take a blind bit of notice, but the channel requests look fine to me in the packet log. I've included all the signals explicitly defined by draft-ietf-secsh-connect-19, but I've put the more obscure ones in a submenu of the specials menu; there's therefore been some minor upheaval to support such submenus. check-in: e613d9b7a0 user: jacob tags: trunk | |
| 10:32 | We shouldn't offer the Break special when we don't have a session to send it down. (A side effect of fixing this is that ssh->mainchain is set to NULL when it closes, which might avoid other sorts of trouble.) While we're here, don't bother offering SSH1_MSG_IGNORE if we believe the remote will barf on it. check-in: 48e6df5b2f user: jacob tags: trunk | |
| 09:44 | Telnet specials menu was not being reinstated after a session was restarted in the same window (Windows version only). Policy change: it's now the backend's responsibility to call update_specials_menu() at the start of a session (or whenever it feels ready), if it has any special commands. Otherwise the menu won't be displayed. check-in: df3849f621 user: jacob tags: trunk | |
|
2004-10-16
| ||
| 09:17 | Markus Kuhn's UTF-8 page http://www.cl.cam.ac.uk/~mgk25/unicode.html#activate feels strongly that it should be easy to make _all_ your applications work in UTF-8 mode, without having to remember a switch for each one. Every application should simply note a UTF-8 locale setting and switch into UTF-8 mode automatically. Therefore, for the Unix port only, there's now a checkbox, enabled by default, which causes the drop-down Translation box to be overridden if the locale indicates UTF-8. Anyone who doesn't like this, or doesn't like MGK, is welcome to turn it straight back off. I'm not _completely_ convinced by MGK's argument myself; for xterm/pterm to do _useful_ UTF-8 you also need to specify a decently Unicode-capable font, and there's no way _that_ can be automagically done on noticing a locale setting. But it's a de facto standard (i.e. xterm does it :-) so I might as well at least be _able_ to support it. check-in: c05196ad7c user: simon tags: trunk | |
| 07:36 | Fix bug in scrollback compression, which manifested when attempting to encode a very long (len>128) run of the same literal. check-in: 8d37d576b7 user: simon tags: trunk | |
| 05:56 | Moved the environment variables config block out of the Telnet panel into the Connection panel, and implemented support for the SSH2 "env" request. (I haven't yet found a server which accepts this request, so although I've visually checked the packet log and it looks OK, I haven't yet been able to do a full end-to-end test.) Also, the `pty' backend reads this data and does a series of `putenv' commands before launching the shell or application. This is mostly because in last week's UTF-8 faffings I got thoroughly sick of typing `export LANG=en_GB.UTF-8' every time I started a new testing pterm, and it suddenly occurred to me that this would be precisely the sort of thing you'd want to have pterm set up for you, particularly since you can configure it alongside the translation settings and so you can ensure they match up properly. check-in: a859123a17 user: simon tags: trunk | |
|
2004-10-15
| ||
| 18:32 | Mention plink's new -N option in usage and man page. check-in: f398d0b241 user: jacob tags: trunk | |
| 07:37 | Fix two memory leaks in the new code. (There's no point compressing the scrollback if you then leak away all the memory you saved!) One of the leaks - by far the bigger of the two - was in my temporary diagnostic function cc_check(), which is particularly embarrassing :-) check-in: 620424d7a0 user: simon tags: trunk | |
| 07:25 | And fix _cursor_ display on double-width double-width characters (as it were). check-in: e281797263 user: simon tags: trunk | |
| 07:17 | Double-height and double-width line attributes (ESC#3, ESC#4, ESC#6) were not working correctly with double-width Unicode characters (CJK). check-in: ea8e22ac07 user: simon tags: trunk | |
| 06:51 | Add missing check_boundary() calls in destructive backspace handler. check-in: f19e9e6ded user: simon tags: trunk | |
| 06:42 | A combining character on U+0020 SPACE stops it from being `uninteresting' to the clipboard processing. check-in: 0e05808329 user: simon tags: trunk | |
| 06:29 | Mark the trial decompress in every call to compressline() with the XXX-REMOVE-BEFORE-RELEASE tag. check-in: 00a7e068ee user: simon tags: trunk | |
| 06:14 | Don't forget to flush the bidi cache when the user enables or disables bidi or shaping, otherwise they'll have to do a manual screen refresh to see any difference. check-in: 22fc1ead4c user: simon tags: trunk | |
| 06:11 | Store line widths in the bidi cache, so we don't fail to re-bidi a line when the window size changes. check-in: da6aad9925 user: simon tags: trunk | |
| 05:48 | Fix many bugs in resizeline(). check-in: 48ba521b21 user: simon tags: trunk | |
| 04:28 | Fix applying combining characters to double-width characters. check-in: 424c2ef604 user: simon tags: trunk | |
| 04:16 | Fix Windows redraw problem on RH half of wrapped lines. (term_paint was checking whether lattr == LATTR_NORM, where it should have been checking (lattr & LATTR_MODE) to mask off LATTR_WRAPPED et al. check-in: 43382ea21b user: simon tags: trunk | |
| 04:06 | I broke ordinary line wrapping as a result of retiring cpos. Oops. check-in: 2c85376278 user: simon tags: trunk | |
| 03:51 | Fix cursor display on a combined character cell. check-in: 5b0b76fdd5 user: simon tags: trunk | |
| 03:22 | Mark cc_check() and all calls to it with the new XXX-REMOVE-BEFORE-RELEASE tag, since they're performance-intensive. And now that I'm reasonably confident of remembering to remove them before the next release, I feel less guilty about adding them willy- nilly all over the place, so I've shoved in a couple more for now :-) check-in: 84fb320ebc user: simon tags: trunk | |
| 03:16 | I'm instituting a policy that before every release I will grep the PuTTY source for the word XXX-REMOVE-BEFORE-RELEASE, and not release until I've got rid of all of them. Hence, here's an addition to the release checklist which will remind me to do so. I don't want this mechanism to seriously inhibit a release by being a placeholder for a large piece of work we might never get round to. It should be used only in cases where it's _simple_ to change the offending code: for example, a performance-impacting diagnostic might be invaluable while testing nightly snapshots but wouldn't want to slow down everyone's next release, and it's easy to get rid of on release day. check-in: 60ff6fea69 user: simon tags: trunk | |
|
2004-10-14
| ||
| 11:42 | First-stage support for Unicode combining characters. The `chars' array of each `termline' structure now contains optional additional entries after the normal number of columns, which are used to chain a linked list of combining characters off any primary termchar that needs it. This means we support arbitrarily many combining characters per cell (unlike xterm's hard limit of 2). Cut and paste works correctly (selecting a character cell containing multiple code points causes all those code points to be cut and pasted). Display works by simply overlaying all the relevant characters on top of one another; this is good enough for Unix (xterm does the same thing), and mostly seems OK for Windows except that the Windows Unicode fonts have a nasty habit of not containing most of the combining characters and thus overlaying an unknown-code-point box on your perfectly good base glyph. I had no idea how to add support in the Mac do_text(), so I've simply stuck in an assertion that will trigger the first time a combining character is displayed, and hopefully this will bite someone with the clue to fix it. check-in: 873b9560c1 user: simon tags: trunk | |
|
2004-10-13
| ||
| 08:43 | Implement part of `ssh2-generality': introduce the ability to tell PuTTY / Plink not to run a remote shell/command at all. Supported in the GUI configuration and via the (OpenSSH-like) -N command-line option. No effort is currently made to arrange `nice' UI properties. If you do this in GUI PuTTY, a full-size terminal window will still be created, and will sit there with almost nothing in it throughout your session. If you do it in Plink, Plink will not accept any kind of request to terminate gracefully; you'll have to ^C or kill it. Nonetheless, even this little will be useful to some people... check-in: ec1afd9c5e user: simon tags: trunk | |
| 08:35 | Fix segfaults in terminal resizing, introduced by re-engineering. check-in: a6f541d35b user: simon tags: trunk | |
| 07:29 | I think we've been told before that you're not supposed to CloseHandle() the thing returned from MonitorFromPoint. Certainly MS Visual Studio's debugger complained about it just now. CloseHandle() call removed. check-in: d3b96a42ab user: simon tags: trunk | |
| 07:10 | Fix '/*' in comment. check-in: 8e5a2d6820 user: jacob tags: trunk | |
| 06:50 | Re-engineering of terminal emulator, phase 1. The active terminal screen is no longer an array of `unsigned long' encoding 16-bit Unicode plus 16 attribute bits. Now it's an array of `termchar' structures, which currently have 32-bit Unicode and 32 attribute bits but which will probably expand further in future. To prevent bloat of the memory footprint, I've introduced a mostly RLE-like compression scheme for storing scrollback: each line is compressed into a compact (but hard to modify) form when it moves into the term->scrollback tree, and is temporarily decompressed when the user wants to scroll back over it. My initial tests suggest that this compression averages about 1/4 of the previous (32 bits per character cell) data size in typical output, which means this is an improvement even without counting the new ability to extend the information stored in each character cell. Another beneficial side effect is that the insane format in which Unicode was passed to front ends through do_text() has now been rendered sane. Testing is incomplete; this _may_ still have instabilities. Windows and Unix front ends both seem to work as far as I've looked, but I haven't yet looked very hard. The Mac front end I've edited (it seemed obvious how to change it) but I can't compile or test it. As an immediate functional effect, the terminal emulator now supports full 32-bit Unicode to whatever extent the host platform allows it to. For example, if you output a 4-or-more-byte UTF-8 character in Unix pterm, it will not display it properly, but it will correctly paste it back out in a UTF8_STRING selection. Windows is more restricted, sadly. check-in: fd15c23f41 user: simon tags: trunk | |
|
2004-10-08
| ||
| 07:38 | faq-alternate-localhost: You can now download the fix directly rather than having to go through MS support. check-in: 52297f2907 user: jacob tags: trunk | |
|
2004-10-07
| ||
| 05:19 | faq-permission: xref licence check-in: 82d263ee0a user: jacob tags: trunk | |
|
2004-10-06
| ||
| 17:31 | X forwarding changes: - new function platform_get_x_display() to find a sensible local display. On Unix, the Gtk apps weren't taking account of --display when determining where to send forwarded X traffic. - explicitly document that leaving X display location blank in config tries to do something sensible (and that it's now blank by default) - don't override X11Display setting in plink, since that's more properly done later check-in: 3d586c00d5 user: jacob tags: trunk | |
|
2004-10-01
| ||
| 19:33 | `ssh-log-pw-blank': known password fields are now omitted from SSH packet logs by default (although they can be included). There's also an option to remove session data, which is good both for privacy and for reducing the size of logfiles. check-in: a52cfa28f7 user: jacob tags: trunk | |
|
2004-09-29
| ||
| 18:57 | Mention the negotiated SSH-2 MAC algorithm(s) in the Event Log. (It should be possible to at least see what MAC is in use without going to a SSH packet log.) check-in: c7e8751c9d user: jacob tags: trunk | |
| 07:38 | Report details in Event Log when receiving SSH2_MSG_CHANNEL_OPEN_FAILURE. check-in: 860ea1bd0c user: simon tags: trunk | |
|
2004-09-28
| ||
| 15:42 | Line (as opposed to block) cursors were being displayed when they shouldn't have been, including when they were blinked off. Fixes Debian bug #272877. check-in: f3871b7c8f user: jacob tags: trunk | |
|
2004-09-26
| ||
| 19:23 | "Incoming packet was garbled on decryption": I think this could in principle be due to corruption on the wire? check-in: bf13a7252a user: jacob tags: trunk | |
|
2004-09-22
| ||
| 17:38 | Treat USER specially in event logging of Telnet ENVIRON option; it's occasionally been a pain that the username wasn't visible in the Event Log. check-in: 7a3f30def7 user: jacob tags: trunk | |
| 17:15 | Document telnet_keyboard more completely, cross-reference from "Special Commands" section, and tweak option description in code. check-in: 05721e69bd user: jacob tags: trunk | |
| 09:07 | faq-missing-slash: the missing-slash-in-PSFTP OpenSSH bug keeps coming up. check-in: 0cea8e2c2b user: jacob tags: trunk | |
|
2004-09-21
| ||
| 16:04 | Add `OSU_1.5alpha4' to BUG_CHOKES_ON_SSH1_IGNORE; this is apparently enough to enable login with this version. (I'd suspected as much -- see ssh.c CVS log 1.299 [r3359] -- and Geoffrey Hughes has now confirmed this.) check-in: 00d9c804fc user: jacob tags: trunk | |
| 11:49 | `ampersat-in-username': tweak `strchr' to `strrchr' where necessary to consistently support usernames containing `@'. check-in: b6d76d9903 user: jacob tags: trunk | |
|
2004-09-20
| ||
| 17:10 | Reformat special commands to use \b instead of \dt / \dd. check-in: f7b2b4d1f7 user: jacob tags: trunk | |
| 17:06 | Explicitly list all the special commands supported by PuTTY. check-in: 2e3478a3bf user: jacob tags: trunk | |
| 16:42 | Add accelerator for "Special Command" sub-menu. check-in: 7721346dbc user: jacob tags: trunk | |
|
2004-09-19
| ||
| 18:49 | First gentle encouragement to direct mirroring efforts to regions where we don't already _have_ lots of mirrors. check-in: 7383d2409d user: jacob tags: trunk | |
|
2004-09-17
| ||
| 09:26 | Make it a bit easier to find our explanation of `raw' mode. check-in: 95b6943b86 user: jacob tags: trunk | |
|
2004-09-16
| ||
| 10:44 | Tweak language re "Remote ports [accept connections from other hosts]" check-in: d7b7a43913 user: jacob tags: trunk | |
|
2004-09-12
| ||
| 17:02 | `dwalin' spotted a NULL dereference in the new makekey() error handling. Oops. check-in: fa5478bc99 user: simon tags: trunk | |
|
2004-09-09
| ||
| 13:00 | Mention requirement for Gtk+-1.2. Other minor cleanups. check-in: 3966759b11 user: jacob tags: trunk | |
| 05:37 | Make it clearer that the XP SP2 hotfix is described in the KB article. check-in: 938ea3b2ea user: jacob tags: trunk | |
|
2004-09-03
| ||
| 08:46 | Improved diagnostics in port-forwarding: we now log any error returned by pfd_addforward() rather than just ignoring it. check-in: 7ab101a451 user: jacob tags: trunk | |
| 07:28 | In SSH-2, list each compression algorithm only once. (No particular reason for this change, just tidiness.) check-in: 60397c817a user: jacob tags: trunk | |
|
2004-09-01
| ||
| 05:19 | Bleh, grammar. check-in: 8c57528772 user: jacob tags: trunk | |
| 05:12 | Documentation existence of SOCKS5 CHAP authentication. check-in: 93846ed333 user: jacob tags: trunk | |
|
2004-08-31
| ||
| 13:26 | Ben Hutchings points out that the initial states of the key-type radio buttons and menu items are inconsistent. check-in: 220e635f4d user: simon tags: trunk | |
|
2004-08-30
| ||
| 08:23 | Credit Malcolm Smith in the copyrights. check-in: d4475a5d51 user: simon tags: trunk | |
| 08:11 | Malcolm Smith's patch to support CHAP (digest-based) authentication when talking to SOCKS 5 proxies. Configures itself transparently (if the proxy offers CHAP it will use it, otherwise it falls back to ordinary cleartext passwords). check-in: ec02c8cc8f user: simon tags: trunk | |