Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

778 check-ins using file puttymem.h version 6d34f79f0f

2005-02-19
15:56
Correct some comments based on feedback from Thomas Dickey. check-in: d2701c9e97 user: ben tags: trunk
09:53
Grey the titles of group boxes when the config box is not frontmost. Edit box values still fail to be greyed. check-in: 96a56a0d0d user: owen tags: trunk
08:48
Oops; missed out a crStop in the new host key verification code. check-in: db594ef974 user: simon tags: trunk
2005-02-18
19:20
Log file open mode lost a "b" in r5344. Windows at least needs log files to be written in binary mode with the current code. check-in: 32af9a3e5a user: jacob tags: trunk
16:03
New enum constant ERROR clashed with a macro in MinGW's wingdi.h. Use uglier names. check-in: 6514b4f779 user: jacob tags: trunk
12:35
Add plain-Unix binaries to the `make clean' list in the OS X makefile. check-in: 61139cb104 user: simon tags: trunk
12:33
Add asynchronous callback capability to the askappend() alert box. This was harder than verify_ssh_host_key() and askalg() put together, because: (a) askappend() can be called at any time, since it's a side effect of data-logging functions. Therefore there can be an unfinished askappend() alert at any time, and hence the OS X front end has to be prepared to _queue_ other alerts which occur during that time. (b) logging.c has to do something with data that comes in while it's waiting for an answer to askappend(). It buffers it until it knows what the user wants done with it. This involved something of a reorganisation of logging.c. check-in: 104367e90f user: simon tags: trunk
12:19
A few more fixes in the new asynchronous-alert-box mechanism. check-in: a5d370224a user: simon tags: trunk
03:22
We have a host key database, just not a very good one. check-in: 4cbbf22b3f user: owen tags: trunk
2005-02-17
13:31
Adjust the semantics of cfg.remote_cmd_ptr: it is now NULL when cfg.remote_cmd is to be used, rather than actually pointing at cfg.remote_cmd. This change restores the ability to structure-copy Configs without breaking them. (Though of course this is only a temporary solution: really what wants doing is to fix `config-struct'.) check-in: ac54c8cf58 user: simon tags: trunk
12:56
Ahem. Actually _checking_ that asynchronous askalg() worked would have been helpful. Since async verify_ssh_host_key() worked, I didn't think anything else could go wrong. How wrong I was. check-in: e84ffae719 user: simon tags: trunk
12:34
Revamp interface to verify_ssh_host_key() and askalg(). Each of them now returns an integer: 0 means cancel the SSH connection and 1 means continue with it. Additionally, they can return -1, which means `front end has set an asynchronous alert box in motion, please wait to be called back with the result', and each one is passed a callback function pointer and context for this purpose. I have not yet done the same to askappend() yet, because it will take a certain amount of reorganisation of logging.c. Importantly, this checkin means the host key dialog box now works on OS X. check-in: 2b45db1342 user: simon tags: trunk
2005-02-16
20:00
ssh_do_close() should close any listening sockets associated with port-forwardings. check-in: 8934c0e310 user: jacob tags: trunk
19:47
ssh_do_close() was only closing about half the channels. Fixed. check-in: 835f964689 user: jacob tags: trunk
17:30
On the Mac, support for setting the line codepage and for combining characters. I've just used libcharset in macucs.c since there seemed little reason not to, and implemented combining characters by naive overprinting. It's not yet a lot of use without the ability to select a font, of course. check-in: 694ac360c6 user: owen tags: trunk
06:13
portfwd validation was sometimes not picking up a blank source port check-in: 88587bfc5b user: jacob tags: trunk
05:56
Fix a minor valgrind issue in dynamic port-forwarding. check-in: 16a0978eb7 user: jacob tags: trunk
05:44
Simon suggests a better solution to valgrind's complaining about (struct Socket_tag).connected -- it should be entirely irrelevant to listening sockets. Valgrind is still happy. check-in: be6e51d68c user: jacob tags: trunk
03:01
Oops! Didn't mean to check in the OS X Makefile; that is of course built by mkfiles.pl just like all the rest. Well spotted, Jacob. check-in: 1ec5faee2f user: simon tags: trunk
2005-02-15
19:47
Minor reorganisations to WinHelp support. (Done as part of a - failed - attempt to fix `winhelp-crash', but we may as well keep them.) check-in: 10431bbf1a user: jacob tags: trunk
17:39
Update on Mac ports. check-in: 2013140e50 user: jacob tags: trunk
16:41
Grouping boxes for the configuration dialogue. The System 7 version is completely untested so far, but the Appearance Manager version works and looks plausible. There are still some HI Guideline spacing issues to address. check-in: 4158a49ba3 user: owen tags: trunk
16:23
The Windows host key dialogs now have a `Help' button that should give appropriate context help, iff the help file is present. (Shame it's prey to `winhelp-crash'.) (I've perpetrated a widening of visibility of `hwnd'; the alternative, putting it into a frontend handle, seemed too likely to cause maintenance trouble if we don't also _use_ that frontend handle everywhere we now use the global `hwnd'.) check-in: 277a81e93c user: jacob tags: trunk
15:45
Initial checkin of a native Mac OS X port, sharing most of its code with the Unix port and layering a Cocoa GUI on top. The basics all work: there's a configuration panel and a terminal window, the timing interface works and the select interface functions. The same application can run both SSH (or other network) connections and local pty sessions, and multiple sessions in the same process are fully supported. However, it's horribly unfinished in a wide variety of other ways; anyone interested is invited to read README.OSX and wince at the length and content of its `unfinished' list. check-in: 9524a62065 user: simon tags: trunk
13:22
Add a couple of other sensible button defaults in MessageBox()s. check-in: c96098badb user: jacob tags: trunk
13:10
Martin Radford points out that the default action for the host key confirmation dialogs should be "cancel", not "accept". check-in: bb9c323321 user: jacob tags: trunk
11:05
The terminal window can now indicate that PuTTY is busy in various ways, by changing its mouse pointer. Currently this is only used in the (slightly- arbitrarily-defined) "heavy" bits of SSH-2 key exchange. We override pointer hiding while PuTTY is busy, but preserve pointer-hiding state. Not yet implemented on the Mac. Also switch to frobbing window-class cursor in Windows rather than relying on SetCursor(). check-in: 14b560857a user: jacob tags: trunk
06:35
Extra note on "connection reset by peer" on Windows. Note default circumstances of cipher warning. (I haven't bothered with the similar kex warning since it doesn't come up in the default configuration, and is in any case unlikely to be common.) check-in: d5c2714533 user: jacob tags: trunk
2005-02-14
09:30
Initialise (struct Socket_tag).connected in sk_register(). Again, the value could do with review. check-in: df4a929685 user: jacob tags: trunk
09:03
Initialise (struct Socket_tag).connected in sk_newlistener() since Valgrind complained. (I _think_ this is the correct initialisation.) check-in: 5c0134a833 user: jacob tags: trunk
05:43
Martin Prikryl points out that we weren't always initialising new "addrinfo" members of Windows SockAddr_tag; particular in sk_nonamelookup() (proxy resolution at far end) this was causing trouble. Make sure they _always_ start out NULL (since the Windows getaddrinfo() documentation doesn't make any claims about initialisation), and also initialise 'naddresses' in sk_nonamelookup() for good measure. check-in: a61944970c user: jacob tags: trunk
05:07
WSAECONNABORTED: Soften claims + emphasise applicability to established connections, based on KB 819124. check-in: 5e014e402c user: jacob tags: trunk
01:44
Oh, and (there's always one) remove the unnecessary extra parameter from unix_setup_config_box(). check-in: afe9d5581e user: simon tags: trunk
01:41
Saw uxcfg.c in half down the middle, to separate out config changes that apply to all Unix-like systems from those which apply specifically to the GTK front end. check-in: cae2b163bd user: simon tags: trunk
2005-02-12
18:00
Display panel titles and grouping box titles. check-in: b5209b2944 user: owen tags: trunk
2005-02-11
12:01
Tidy up the host key alerts a little, and swap the Just Once and Cancel buttons so that they appear in the standard action and cancel positions. check-in: 5ef74a6569 user: owen tags: trunk
2005-02-09
19:25
Mention saving mid-session and some of its wrinkles. Formatting tweaks in the same general area. check-in: 5ef7f2f090 user: jacob tags: trunk
19:04
Document effect of settings changes on existing connections/forwardings. Also mention that service names can be used instead of port numbers. check-in: db70d0d7eb user: jacob tags: trunk
19:03
ssh_setup_portfwd() should usually be looking at the new cfg, not the old one, so that changes to port visibility are honoured in new forwardings. check-in: 2f298ec6aa user: jacob tags: trunk
18:16
Slightly gratuitous logeventf() crusade and purge of fixed-length buffers. Also a bonus sfree(). check-in: 0e48334e09 user: jacob tags: trunk
15:18
Add some host key dialogue boxes. These still look a little rough around the edges and need to have all their controls properly aligned and spaced according to the HI guidelines. Also, fix store_host_key() so that it replaces a host key correctly when the host key has changed and the user opts to update the cached one. check-in: 85f028418e user: owen tags: trunk
09:57
Improve documentation of the SCP wildcard safety issue: in particular, mention that doing an SCP wildcard download into a clean directory is adequate protection against a malicious server trying to overwrite your files. check-in: 1cc7618cf9 user: simon tags: trunk
09:42
Missing {Question} check-in: d58402dfbf user: jacob tags: trunk
2005-02-08
08:13
We _really_ don't need to hear about WSAECONNABORTED any more. check-in: a698b14861 user: ben tags: trunk
06:40
Mention that a common reason for keys' being rejected is dodgy permissions. check-in: fa7fd252a6 user: ben tags: trunk
2005-02-07
17:43
Add the new mk.mpw to the ignore list. check-in: b4e5465141 user: simon tags: trunk
14:24
Revert my LF->CR change following Owen's comment that it actually breaks netatalk-based setups (which _swap_ LF and CR). Instead, setfile.sh (which I have to run _anyway_ on OS X) copies mkputty.mpw to mk.mpw and then makes that CR-based. check-in: 80e340bcf7 user: simon tags: trunk
09:23
Comment explaining location in top-level directory. check-in: f458beae5d user: jacob tags: trunk
06:23
Petri Kero pointed out a FreeLibrary() call that should be guarded by NO_IPV6. check-in: 5ad1988749 user: jacob tags: trunk
04:47
Add a comment about the deficiencies of the host key cache implementation. check-in: 66a04eea30 user: owen tags: trunk
2005-02-06
09:52
Reinstate the broken -e option in pterm. Also I've just worked out a much better way of handling pty_argv which doesn't require uxpty.c to be linked in to Unix PuTTY and PuTTYtel. check-in: 0632fdc578 user: simon tags: trunk
09:14
Encapsulated most of the pty backend's variables into a proper data structure, in preparation for wanting more than one of them in a single process. This can't be done cleanly, because the whole business with pty_pre_init pre-allocating the pty rather assumes we want a known number of the things before we drop privileges; so there's a horrid hack to make pty_pre_init work on platforms that have at most one pty instance per process, but at the same time things ought to work sensibly with more than one per process _if_ pty_pre_init isn't required. check-in: df1c22fdcb user: simon tags: trunk
09:00
First stab at a host key cache on the Mac. check-in: 1d8e672a89 user: owen tags: trunk
07:33
The pty backend won't _always_ be running under X, so it should be possible to compile it without the WINDOWID variable. check-in: 7b85fe471f user: simon tags: trunk
2005-02-05
09:33
When allocating BSD-style ptys, we should not be satisfied with a /dev/ptyXX we can open: we must also check that we can open and use the corresponding /dev/ttyXX, because if it's been left in the wrong mode then we will look terribly silly when we fork and _then_ discover our pty is unusable. check-in: 04b0d0c117 user: simon tags: trunk
08:50
Implement refreshing the whole dialogue box with dlg_refresh, so that if you load a session all the panels in the configuration dialogue reflect the new settings. However, there's a glitch which paints a white rectangle between the Saved Sessions listbox and the Close-on-exit radios. check-in: 8646a1479e user: owen tags: trunk
08:46
Added a small shell script to run enough SetFile commands to make MPW builds work after checking out on Mac OS X. check-in: 80a92bc7ce user: simon tags: trunk
08:39
This file needs to have CR line endings for MPW to be happy with it. check-in: 7eb218aa63 user: simon tags: trunk
04:55
Mac PuTTY.ppc wouldn't compile for me until I added this prototype. Not sure why it's been working for Owen and not me, but the prototype ought to be there anyway, so *shrug*. check-in: 322f1d77de user: simon tags: trunk
2005-02-04
18:29
Times and dates in the event log, fixing ltime() in the process. check-in: d6f5e385d3 user: owen tags: trunk
18:14
mac_pollterm() is no longer useful and can be retired. check-in: 24b5193a6e user: owen tags: trunk
2005-02-02
17:51
Implement anti-replay protection for XDM-AUTHORIZATION-1, as required by the specification. We keep a cache of tickets we've seen recently and reject duplicates. Once a ticket in our cache is old enough that we wouldn't accept a duplicate anyway, we expire it. check-in: 1d0e47190a user: ben tags: trunk
15:33
Flashing things now work as a natural consequence of the timing interface. check-in: 2e1798a5cd user: owen tags: trunk
15:18
Make ot_recv less voracious. check-in: 502fc43066 user: owen tags: trunk
13:56
Update the configuration when the window is resized. check-in: 991b1e8bb0 user: owen tags: trunk
2005-01-30
08:59
Hide/show the scrollbar check-in: f840505864 user: owen tags: trunk
08:10
The HI guidelines seem adamant that the File menu should never be called anything but File, and two Mac users expressed profound distress at the thought of it being called Session. File it is. check-in: 4306c8d022 user: owen tags: trunk
2005-01-29
16:50
Another compiler pickiness. It feels wrong to be doing this to perfectly idiomatic code, somehow, and I half wonder whether the Mac compilers are too stupid to be allowed to treat warnings as errors. check-in: ff9e65da30 user: owen tags: trunk
16:46
Make Change Settings do something. check-in: c5bbbb4611 user: owen tags: trunk
2005-01-28
17:39
Enable the Open Transport networking implementation unless NO_OT is defined. check-in: 5117367d1a user: owen tags: trunk
07:47
Split discussion of diabling rekeys between time-based and data-based, since disabling the former is much more useful, and much safer, than disabling the latter. The new wording on data-based rekeys might need some polishing. check-in: 08df01e69b user: ben tags: trunk
05:50
sfree the memory dupprintf allocated check-in: 76ee7d7459 user: owen tags: trunk
05:47
Use AF_UNIX, not AF_LOCAL, since the former is in POSIX and the latter is not. check-in: c53b6f6ed8 user: ben tags: trunk
05:39
Overhaul of client-side XDM-AUTHORIZATION-1: * Make sk_getxdmdata() return an arbitrary string rather than two integers. This better matches the spec, even if the current version always returns six bytes * On Unix, for PF_UNIX sockets, return a counter rather than a constant along with the PID. This should allow multiple clients to connect within one second, and is what Xlib does. * On Unix, interpret AF_INET6 addresses like Xlib does, returning the embedded IPv4 address for v4-mapped addresses, and six bytes of zeroes otherwise. The latter is silly, but if I'm going to do anything more sane I need to check that X servers won't reject it. check-in: e5bafedcaf user: ben tags: trunk
2005-01-26
17:49
Buffer overruns are embarassing (even if caused by user error), so assert that this one can't happen until I actually fix it. check-in: a5f438af43 user: ben tags: trunk
17:30
Add a Change Settings dialogue box. Doesn't do anything yet. check-in: 8115201999 user: owen tags: trunk
14:18
Move sockaddr_is_loopback() to before sk_address_is_local(), and define the latter in terms of the former. Also adjust the definition of ipv4_is_loopback() to avoid using the non-standard inet_netof() and IN_LOOPBACKNET, and move it next to its remaining uses. check-in: 8ef41e7a61 user: ben tags: trunk
13:05
Move sk_poll() inside (!gotevent), which is more logical but doesn't have any actual beneficial effect on event handling, sadly. check-in: a2af347d3b user: owen tags: trunk
13:04
Add ssh.h for prototypes for the X display stubs check-in: 07f3ffc93d user: owen tags: trunk
12:11
Make a few things static check-in: 4c389d057e user: owen tags: trunk
2005-01-23
09:01
Give the config window a title. check-in: 00781b36fb user: owen tags: trunk
08:31
When checking if a connection comes from localhost, don't assume it's an IPv4 connection. Instead, correctly check IPv4 and IPv6 connections, assume that AF_LOCAL is always local, and anything else is always remote. This makes trivial local-to-remote forwarding work on my system. check-in: c6292f3f4e user: ben tags: trunk
2005-01-22
10:06
Don't abuse a remote channel number of (unsigned)(-1) to indicate a channel for which we don't yet have a remote number, and instead add a flag to indicate this fact. Fixes bug ssh-remoteid-minusone. check-in: 6039240c89 user: ben tags: trunk
09:32
When calling getaddrinfo() for a listening socket, pass in a suggested type of SOCK_STREAM, since that's what we'll be using. check-in: 8ea07ec929 user: ben tags: trunk
09:20
Stupid typo, spotted by GCC. check-in: 86f06745c5 user: ben tags: trunk
09:19
If getaddrinfo() fails, it's not safe to dereference the struct addrinfo* it passes back to us, so don't. check-in: 6caff86de4 user: ben tags: trunk
08:51
Owen's just pointed out that random_stir() is capable of recursion. I'm sure I didn't mean that to happen! Added a lock to stop it. check-in: 7efec92a4c user: simon tags: trunk
08:01
Explicitly ignore SCI rather than translating it into DECID. Should fix bug sci-is-not-decid. check-in: 8eaf1fe1c5 user: ben tags: trunk
07:32
Probable support for first_kex_packet_follows in KEXINIT. Not significantly tested since none of the common key-exchange protocols starts with a packet from the server, so I don't have a server that implements this. check-in: 834d6a4042 user: ben tags: trunk
2005-01-20
18:02
Colours now work properly, including 256-colour stuff. Timing stuff now there, but almost certainly bogus. check-in: c0f994b601 user: owen tags: trunk
15:45
Dispose of a variable whose only use was being set to zero. check-in: 45991831e2 user: ben tags: trunk
10:42
Fix/bludgeon Mac compile wrinkles. check-in: 50d019225c user: owen tags: trunk
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
2004-08-28
11:51
More sensible error handling when we receive an SSH1 public key modulus of zero (!!), and also a robustness fix in ssh1_rdpkt which I happened to notice while debugging that. check-in: bea2fe89de user: simon tags: trunk
2004-08-27
08:33
faq-alternate-localhost language tweak check-in: ed04d98dac user: jacob tags: trunk
07:24
Handle WM_SYSCOLORCHANGE if using system colours. (Resets the whole palette, whereas ideally it would restrict itself to the affected colour slots.) check-in: 3bb030b079 user: jacob tags: trunk
2004-08-25
04:20
Add comments indicating why these manifest files are present at all. check-in: 95e0a50cec user: jacob tags: trunk
2004-08-20
09:04
Patch to use enum constants for cfg.funky_type instead of numeric literals, from "Anthony" <410C2A86.2010003@mail2004.ajrh.net>. check-in: c811f4d966 user: jacob tags: trunk
04:09
alternate-localhost: add "apparently" since none of this is first-hand check-in: fd0f77c9c3 user: jacob tags: trunk
03:32
alternate-localhost WinXP SP2: apparently SP2 fixes the problem with Terminal Services that meant you needed to use alternate-localhost in the first place! check-in: d70b051289 user: jacob tags: trunk
2004-08-19
10:05
Fix an annoying inconsistency that's been bugging me for years: "plink host" and "plink user@host" differed in that the former attempted to load session `host' while the latter didn't. Now both forms attempt to load a session. Someone will probably complain, but hey. check-in: d9558ed80a user: jacob tags: trunk
08:15
Remove claim in usage text that Plink defaults to SSH, since it's not true in a number of situations. check-in: 6c160c851e user: jacob tags: trunk
07:58
Add the WinXPSP2 alternate-localhost problem to the FAQ. check-in: 87c50c8685 user: jacob tags: trunk
2004-08-18
05:24
Mention the mirroring guidelines on the web. check-in: 25ebc5f04a user: jacob tags: trunk
2004-08-17
09:08
Someone complained that their keyboard-interactive password prompt was being truncated - it was from OpenSSH on HP/UX and had all sorts of stuff in it ("last successful login" etc). Bodged it by bumping up the space allocated in the fixed array for a password prompt. Also added an indication that the prompt is being truncated, as required by draft-ietf-secsh-auth-kbdinteract-06. (NB that before this checkin, there was a more-or-less harmless buffer overread where if we ever received a keyboard-interactive prompt with echo=1, we'd probably spew goo on the terminal; fixed now.) check-in: 4614439a8b user: jacob tags: trunk
2004-08-16
09:43
Update comment on dupprintf(). check-in: b56fc779d2 user: simon tags: trunk
04:38
Patch from Kurt Roeckx: apparently on Debian amd64, the ut_time member of struct utmp is not equivalent to time_t (it's 32-bit). From Debian bug#265910. check-in: 73d18097ab user: jacob tags: trunk
2004-08-15
12:21
Note behaviour of `cd' with no arguments. check-in: b479a51631 user: jacob tags: trunk
2004-08-14
08:04
Implement `Restart Session', in both Unix and Windows PuTTY. Largely because Owen questioned whether it was really easy enough to be labelled `fun' in the bug database :-) check-in: 3ba6f1b539 user: simon tags: trunk
07:24
ssh_free() should not call log_free(); it's for the front end to decide whether the logctx is finished with or not. check-in: f83300ea9e user: simon tags: trunk
2004-08-12
20:08
Extra logging in SSH-2 port-forwarding. Most obviously, the opening of a forwarded X11 connection is now logged as well as the closing; but we also log the peer IP/port in case it's interesting, and log the reason for refusing to honour a channel open. check-in: 8c739cf713 user: jacob tags: trunk
15:55
add xref at the bottom of X11 section to options in config.but check-in: 1ffac7eb65 user: jacob tags: trunk
2004-08-11
20:02
Flush the logfile reasonably frequently in `printable output only' and `all session data' modes, without completely mauling the performance, by fflush()ing once per term_out(). If anyone complains I suppose we can make this optional. check-in: 5a5d921af2 user: jacob tags: trunk
04:04
My new rsync mirror setup might need attention when we do a new release. Add to checklist. check-in: da51daeff9 user: simon tags: trunk
2004-08-10
12:12
Remove the email address from the footer of the HTML manual, and replace it with a link to the Feedback page, as we have long since done everywhere else on the PuTTY website. check-in: 0bd6689864 user: simon tags: trunk
11:50
Update link to s2putty. check-in: 788030bc57 user: jacob tags: trunk
2004-08-09
12:04
Oops - merge version number bump from branch-0-55 (such was the plan). check-in: 31044e1180 user: jacob tags: trunk
12:01
Apparently sending the tar output to stdout rather than a file causes tar to pad with trailing NULs, which slightly upsets old versions of gzip (1.2.4, not 1.3.x), which upsets some of our correspondents. Use -f to send it to a file instead. (It's not transparently clear what happens when you mix -f and -C; I've tested this with ixion's tar, 1.13.25.) Also add option -o to generate POSIX tar files, as for halibut/Makefile; apparently this shuts up a `trailing garbage' error from WinZip. check-in: 8dfaf512b2 user: jacob tags: trunk
2004-08-05
09:10
Fix for `mazovia': add Mazovia translation table based on info from Slawomir Oczkowski and "Diron". check-in: 63943c9436 user: jacob tags: trunk
2004-08-03
18:43
When using remote forwarding with SSH-1, you'd get bogus 'SSH1 cannot handle source address spec ":10023"; ignoring' type errors in the Event Log. The forwarding would go ahead as normal so this is cosmetic. Fixed. check-in: d385f8c410 user: jacob tags: trunk
08:23
Merge minor usage message tweaks (but not version number changes) from branch-0-55. check-in: 0dad1fc016 user: jacob tags: trunk
2004-08-01
07:07
Merged SSH1 robustness changes from 0.55 release branch on to trunk. check-in: 461113bfb0 user: simon tags: trunk
2004-07-30
04:38
Tweak to make it more obvious that the System menu is only available from the _terminal_ window -- should be obvious from context but the nearest context is some distance away. check-in: b9230cffc9 user: jacob tags: trunk
2004-07-29
10:44
Improve robustness in modpow(). check-in: 62ab6c37f7 user: simon tags: trunk
05:23
"Where does PuTTY store its data?" -- mention where Unix PuTTY stores its data check-in: b8743e20af user: jacob tags: trunk
05:09
Talk about Halibut; mention Unix `install' target; mention lack of Makefiles if you check out directly from CVS as it's come up once or twice. check-in: 52f743d33d user: jacob tags: trunk
2004-07-28
06:04
Another wart in the command-line processing: if the user just specifies `-load sessname', and that mentions a hostname, that should be sufficient to start a connection. check-in: 99ccf1dbe3 user: jacob tags: trunk
2004-07-27
10:20
Fix double-free in X selection code. check-in: cd12e8a582 user: simon tags: trunk
2004-07-25
14:52
Attempt to make Windows pointer hiding more robust by ignoring MOUSEMOVE and NCMOUSEMOVE messages where nothing actually changes. It seems Windows likes to send such messages occasionally when other stuff is going on (e.g., in other windows). (Also spotted by Franco Barber <20040122055232.GA8168@febsun.cmhnet.org>.) check-in: 0605efdcdd user: jacob tags: trunk
11:10
PSFTP was ignoring `-1' and `-2' and always using SSH-2 with fallback to SSH-1. It also ignored any settings forbidding fallback to SSH-1. Ignoring `-1' and `-2' is hardly the end of the world, as it'd be difficult to think of a realistic situation where fallback didn't do the right thing and PSFTP was still useful. However, ignoring a user's `SSH-2 only' setting was a bit rude. check-in: 3a402d8dab user: jacob tags: trunk
09:00
Fix for `psftp-pscp-ignore-load': Default Settings is now loaded before "-load" is processed so that it doesn't clobber it. I've also changed the semantics of "-load" slightly for PSCP, PSFTP, and Plink: if it's specified at all, it overrides (disables) the implicit loading of session details based on a supplied hostname elsewhere (on the grounds that the user is more likely to want the "-load" session than the implicit session). (PuTTY itself doesn't do implicit loading at all, so I haven't changed it.) This means that all the PuTTY tools' behaviour is now consistent iff "-load" is specified (otherwise, some tools have implicit-session, and others don't). However, I've not documented this behaviour, as there's a good chance it will be swept away if and when we get round to sorting out how we deal with settings from multiple sources. It's intended as a "do something sensible" change. check-in: 81963a938a user: jacob tags: trunk
07:12
Text around -load option "(although Plink still requires an explicitly specified host name)" didn't appear to actually be true any more (see `cmdline-host-override'). Removed check-in: 0bf8cf2a62 user: jacob tags: trunk
2004-07-24
14:25
Comment explaining `need_save' argument to cmdline_process_param(). check-in: 1edef308e8 user: jacob tags: trunk
07:37
In faq-bce, mention that the non-immediate effect of changing BCE only applies to versions prior to 0.54. check-in: 06491e28dd user: jacob tags: trunk
2004-07-22
07:38
Add a section on the errors you see when you attempt to load a key of the wrong type. check-in: 89aee0114d user: jacob tags: trunk
06:18
Mention bps units of terminal speeds (FWLIW). check-in: 17af8ab389 user: jacob tags: trunk
2004-07-20
15:13
We shouldn't reference off the end of the display line when checking for UCSWIDE. Thanks Jacob, for catching this with valgrind. check-in: 74194b842e user: simon tags: trunk
10:34
Limitations of -m option. check-in: 58c72ddac5 user: jacob tags: trunk
10:30
Mention the dangers of the "-pw" option. check-in: 82de58625e user: jacob tags: trunk
2004-06-27
06:04
grammer check-in: f020e52bca user: jacob tags: trunk
2004-06-20
12:07
Add a configuration option for TCP keepalives (SO_KEEPALIVE), default off. No very good reason, but I've occasionally wanted to frob it to see if it makes any difference to problems I'm having, and it was easy. Tested that it does actually cause keepalives on Windows (with tcpdump); should also work on Unix. Not implemented on Mac (does nothing), but then neither is TCP_NODELAY. Quite a big checkin, much of which is adding `keepalive' alongside `nodelay' in network function calls. check-in: d6cbea6730 user: jacob tags: trunk
2004-06-15
06:31
hide scrollbar - you can use more than just Shift+PgUp/Dn to scroll now. check-in: 6f546f5552 user: jacob tags: trunk
06:11
Mention "beep using the PC speaker" on general principles (although there isn't much to say about it). check-in: 8e5c9c09ae user: jacob tags: trunk
06:00
It's probably worth mentioning that SSH stands for `secure shell'. check-in: 8a64b9c7d6 user: jacob tags: trunk
05:38
Add index.but to build. check-in: b1216dd33f user: jacob tags: trunk
05:17
Fix Halibut warnings about merging distinct-case index terms. check-in: 95dc070a37 user: jacob tags: trunk
04:50
`Authenticating with key' message when using a local key file in SSH2 was not contained within a test for FLAG_VERBOSE. Thanks to Paul Gotch for pointing this out. check-in: 916230d9e9 user: simon tags: trunk
2004-06-10
05:01
Explain that the configurable window title is only an initial setting. check-in: 9aa6a0a405 user: jacob tags: trunk
2004-06-03
05:36
Spotted by Dimitry Andric: `ssh-termspeed' implementation was not taking account of coroutines and used local variables over a crFoo. I believe the impact was cosmetic, affecting the speeds reported in the Event Log only. I've put the variables `ispeed' and `ospeed' in the main ssh_tag structure, even though they're only live for a short duration; I did this rather than create a new state struct for ssh1_protocol() (since ssh_tag already has short-duration junk like portfwd_strptr). check-in: dc2e4b9a58 user: jacob tags: trunk
2004-05-31
09:01
RJK's patch to enable PuTTY's X forwarding to connect to local X servers using Unix sockets (on Unix only, obviously!). check-in: 8f708bbf81 user: simon tags: trunk
2004-05-26
04:19
In the entry about twiddling Windows TCP timeouts, mention that it's OK to create the registry values, and link back to the original MS KB articles. check-in: 474fc44886 user: jacob tags: trunk
2004-05-24
12:12
Typos in Borland Makefile pointed out by Arnaud Desitter check-in: 621b8fe48d user: jacob tags: trunk
06:30
Arnaud Desitter points out a silly mistake in retrieve_cutbuffer() (don't test for `int *nbytes' being <= 0, test for the integer it points to being <= 0!). check-in: fdd818ac08 user: simon tags: trunk
04:55
There do in fact appear to be help topics for the Arabic and bidi options, so use them. Also use an accelerator that actually exists for bidi. check-in: d09803c3a2 user: jacob tags: trunk
2004-05-22
09:21
Fix indentation after Richard B's patch in rev 1.137 [r3409]. check-in: bc17c95964 user: simon tags: trunk
06:09
Halibut now warns about code paragraph lines which are too long to fit in the text output format. If only to stop myself getting pestered with cron stderr messages every night, here are some changes that remove over-long code lines from the PuTTY manual. check-in: da285a278c user: simon tags: trunk
06:04
Fix Halibut syntax errors in the new shaping/bidi doc sections. check-in: 160e0b1647 user: simon tags: trunk
05:36
At last! After much delay, much faffing back and forth, and much enhancement and fiddling, I have now massaged Arabeyes' first patch into a form I'm happy to check in. Phew. check-in: 02962abb0e user: simon tags: trunk
2004-05-20
07:48
I added more detail to the `Authentication failed at PuTTY X11 proxy' error message some time ago, but forgot to change the wording in the error messages chapter. check-in: 49edce0555 user: simon tags: trunk
2004-05-06
06:27
A user at ARM just found his home directory was _world_ writable, and this caused public key authentication to fail in spite of following our instructions to the letter. It can't hurt to s/g-w/go-w/ here, just in case! check-in: b35836a8bd user: simon tags: trunk
2004-04-29
09:41
Mention -scp/-sftp check-in: aab2f14c7b user: jacob tags: trunk
2004-04-28
12:26
"Does PuTTY support storing settings, so I don't have to change them every time?" appears to be a FAQ. (Some renumbering will ensue.) check-in: 3ee8408f7f user: jacob tags: trunk
12:16
update pocketputty URL check-in: dc54362daa user: jacob tags: trunk
2004-04-27
13:23
Krzysztof Kowalczyk notes that 'etastr' can overflow if the times involved start to get silly. Replace it with a dynamically allocated string instead. check-in: bcf91bc3f3 user: jacob tags: trunk
13:16
Krzysztof Kowalczyk's fix for "Assertion failed: actuallen <= len" when transferring files >2G with PSCP. (I'm unable to actually test this works, but it looks plausible, and small transfers aren't mangled.) check-in: 58b1f30aef user: jacob tags: trunk
07:57
Remove now-unused variable pwrstat. Spotted by Krzysztof Kowalczyk. check-in: 1108804865 user: jacob tags: trunk
07:52
Add notes on our globs' incompatibilities with POSIX check-in: 3295072e20 user: jacob tags: trunk
07:31
Various tweaks to header comments to remind me which bits are meant to be platform-independent, etc. check-in: 9bda77c20e user: jacob tags: trunk
2004-04-25
17:18
Implement `pscp-select-backend'. check-in: 322435bf8c user: jacob tags: trunk
10:33
In the special case that handles selecting a session and hitting Enter, there is a structure copy of a Config, which invalidated the remote_cmd_ptr in that structure (pointing to its own remote_cmd). This was causing remote commands not to be executed in this special case. I've patched the pointer up manually (as is done in plink.c), but ugh. check-in: 71ac91fd07 user: jacob tags: trunk
04:26
More portability fixes. check-in: 7201c604af user: simon tags: trunk
04:04
Make mkfiles.pl less tied to PuTTY in particular, by inventing new directives that allow me to move some of the PuTTY-specific Makefile fragments into Recipe. Not complete yet, but ought to be enough for me to at least _try_ using mkfiles.pl in another project. check-in: 67adfc99d3 user: simon tags: trunk
2004-04-24
15:05
In SSH, we now send terminal speeds to the server when requesting a pty (we didn't before) - `ssh-termspeed'. In the process, I've removed the individual controls on the Telnet and Rlogin panels and replaced them with one on the Connection panel (since they were backed by the same storage anyway). The terminal speeds sent in SSH are logged in the Event Log. check-in: fd231b00d9 user: jacob tags: trunk
07:25
Tweak documentation of -V option. check-in: 1320ac3f25 user: jacob tags: trunk
2004-04-17
15:25
Add -V for version information to plink, pscp, and psftp. check-in: f304a84750 user: owen tags: trunk
2004-04-08
07:38
Added indexing for the first three chapters of the manual. This is a big job :-/ check-in: 113d20de64 user: simon tags: trunk
2004-04-01
11:34
Clean up Makefile now that Halibut's new command-line options make life easier. check-in: 5425737106 user: simon tags: trunk
11:33
What was that rogue man-mindepth directive doing in here? check-in: eb77db32a2 user: simon tags: trunk
2004-03-31
06:50
Add `can I put PuTTY on a coverdisk / bundle it / etc' to the FAQ in case people are incapable of spotting it on the Feedback page. Also add to both locations Owen's point about first-line support. check-in: d0461fadad user: simon tags: trunk
03:00
grammer check-in: b347690962 user: jacob tags: trunk
2004-03-30
15:35
Reasonably grotty hacks so that the droppings left by the man page generation don't interfere with the main HTML doc generation. check-in: a417aef738 user: jacob tags: trunk
05:36
Miscellaneous tinkering: - remove a couple of "fixed in 0.52" (or before) type questions - mention Mac OS X port that someone was working on - add a missing {Question} check-in: 2b0acbad1f user: jacob tags: trunk
2004-03-29
05:37
PayPal is actually _much_ easier to work with than e-gold these days, so I've reversed the order in the donations question. check-in: ab9073ac97 user: simon tags: trunk
2004-03-26
09:18
More experimental hackery for `win-dead-keys'. Works for me as well as it did in the one case I can test, but I suspect this isn't the whole story. Bletch. check-in: bedf0e581d user: jacob tags: trunk
2004-03-25
05:33
tweak text about mouse reporting and copy and paste to indicate that shift's only necessary for mouse-based actions (since we seem to be growing more copy-and-paste options) check-in: 9b5b843723 user: jacob tags: trunk
03:03
Hmm. Better turn that `make' into a `make -s', or else my nightly snapshot cron job will fill my mailbox with goo every day. check-in: de9af9cf40 user: simon tags: trunk
2004-03-24
14:03
Use $(HALIBUT) variable consistently. check-in: 5bba68ed8d user: jacob tags: trunk
13:51
Oh yes, and the Unix Makefile needs to know that as well. check-in: a0abe4a0a9 user: simon tags: trunk
13:50
The Unix source archive ought to have pre-built docs (in particular man pages) in it, if only so that non-Halibut-users have what they need. check-in: 2ca7e92c9b user: simon tags: trunk
13:36
Now that Halibut is capable of generating man pages better than I can do it by hand, I've converted the man page set from Unix PuTTY into Halibut format, and enhanced the Makefile so it will build them. At some future point this will also allow me to include the man pages as an appendix in the main manual (once I _have_ a main manual for Unix PuTTY). check-in: 8ed8af69e7 user: simon tags: trunk
08:53
Fix from Thomas Henlich for bug in dead key support. I've reproduced the problem and verified the fix on Win2K with the US-International keyboard layout. (Closes: `win-dead-keys') <20040323143836.GA40414@rcs.urz.tu-dresden.de> check-in: 3efd8415bb user: jacob tags: trunk
2004-03-17
10:03
Remove GetSystemPowerStatus() - should resolve hard-hangs check-in: 64f4920516 user: owen tags: trunk
2004-03-16
02:18
Mention explicitly that offering us a reciprocal link is a very silly way to persuade us to link to a website. check-in: 6bd33101be user: simon tags: trunk
2004-03-11
04:59
Tweak doc to reflect wrinkle in Owen's fixed implementation. check-in: 0cac237bdc user: jacob tags: trunk
2004-03-10
11:11
Make `Copy all to Clipboard' copy all non-empty lines from the scrollback and the terminal to the clipboard, rather than just the content before the cursor. Should fix copyall-to-cursor. check-in: 080a2aa1ea user: owen tags: trunk
2004-03-05
13:01
Finally correct REGEDIT syntax for "saving in a file" hack. (verified on Win2K) check-in: c59d59e737 user: jacob tags: trunk
2004-03-04
15:24
Mention Links page in ports section, since there are now a number of third-party ports check-in: 7c9421dcd3 user: jacob tags: trunk
2004-03-01
12:17
Mention that proxy password is saved in plain text in configuration, since we've had a couple of indignant e-mails. check-in: 0cd41d1245 user: jacob tags: trunk
2004-02-23
13:10
Mention PocketPuTTY check-in: 19ffbc0f7a user: jacob tags: trunk
2004-02-22
10:52
Expand "what platform" text to take account of Unix. check-in: 16bfe1ab55 user: jacob tags: trunk
09:05
Add (probably frustratingly) bare-bones man pages for pscp and psftp. check-in: b234a49a5a user: jacob tags: trunk
08:57
Correct slightly misleading usage check-in: ddafdba3a3 user: jacob tags: trunk
08:48
Minor fix in usage message check-in: 2a40a6be8f user: jacob tags: trunk
08:40
Fix typo in -C check-in: cf6924efab user: jacob tags: trunk
08:37
Tart up, fix outright lies, mention web docs check-in: 45e76596ab user: jacob tags: trunk
2004-02-16
08:38
Couple of new FAQ questions: `what's the point of the Unix port' and `why does scrollback no longer work when I run screen'. check-in: 757cecbb9d user: simon tags: trunk
2004-02-13
06:19
bloody PageRank hackers. (since no-one objected to this wording back in October) check-in: ed84158c07 user: jacob tags: trunk
05:20
I don't think iXplorer is now sufficiently unique to mention in the docs (given that we have a Links page full of such things now) check-in: 8f703c093d user: jacob tags: trunk
01:42
Alexei Podtelezhnikov points out that PuTTYgen's key-type default ought to have moved in sync with PuTTY's SSH version default. check-in: dfeb697d71 user: simon tags: trunk
2004-02-12
18:41
Add .map files to Cygwin "clean" target check-in: b4a718318e user: jacob tags: trunk
18:40
Makefile.cyg now generates a link map. check-in: b7bd9aa3a7 user: jacob tags: trunk
18:21
Remove claim that there's no Unix puttygen check-in: 04ffb96117 user: jacob tags: trunk
18:20
Missed one: sftp-slow has gone away with 0.54 check-in: 4bd7bb3717 user: jacob tags: trunk
17:26
Bah! Knew there'd be _something_. check-in: ff49dbc8ca user: simon tags: trunk
13:45
Modifications to the release procedure as a result of actually trying to _follow_ it for the first time :-) And also due to the fact that it now needs to mention the Unix source tarball as well. check-in: 21ee2b6ec1 user: simon tags: trunk
12:28
Back out my temporary edit of the FAQ, to make it once again 0.54-ready. check-in: 8344daa2ec user: simon tags: trunk
2004-02-11
07:58
Jacob's last-minute testing found a couple of trivial bugs in import.c, and my attempts to reproduce them in cmdgen found another one there :-) check-in: bab44f7875 user: simon tags: trunk
2004-02-10
13:32
Sigh. Since Mailman breakage means we won't be releasing 0.54 today after all, I'll slightly edit those FAQ changes. check-in: a7c334f8d3 user: simon tags: trunk
13:07
Jacob reports a segfault when using HTTP proxying under Minefield. It appears that this is because Visual C's sscanf works by first calling strlen to get the length of the string, so that its internal read-character routine can be sure of never overrunning the buffer. Quite why the internal read-char routine can't detect \0 _itself_ rather than having to have it found for it in advance I have no idea. Sigh. check-in: 3ec197ac8d user: simon tags: trunk
12:22
Jacob's FAQ changes for 0.54. check-in: 74c857ec0e user: simon tags: trunk
2004-02-07
18:14
Briefly document the "special commands" menu. check-in: 23e50f9479 user: jacob tags: trunk
17:49
Document the new "Compromise" mouse-handling option introduced 2003-11-20 check-in: c7619015fd user: jacob tags: trunk
17:35
Mention the Ctrl+right-click context menu now available on Windows. check-in: b4575ce886 user: jacob tags: trunk
17:21
Update the advice about updating the wishlist post-release check-in: a1f161f987 user: jacob tags: trunk
12:17
Update version numbers preparatory to tagging for release. check-in: d12e611422 user: simon tags: trunk
12:14
Another admin script, to build the Unix source archive. check-in: 5b54f9b6f6 user: simon tags: trunk
12:10
Added a wrinkle to the version.c build in the Unix makefile, which will validate an md5sums manifest and if all md5sums match will use a version number provided in a file. This should allow me to produce a Unix release source archive with the property that when unpacked and built it will produce binaries advertising themselves as `Release X.YZ', but as soon as the user starts fiddling with the sources it will revert to `Unidentified build' (though of course the user can still _explicitly_ ask for a release tag, and in fact this will override the default if any default is specified). check-in: e466cedb10 user: simon tags: trunk
11:38
Add some Unix blurb. check-in: c22ba93d5c user: simon tags: trunk
11:36
Silly grammatical error. check-in: 28298cc16e user: simon tags: trunk
04:02
Charles Wilcox reported a signature validation bug with 2500-bit RSA keys. This _appears_ to be due to me computing the byte count of the key by dividing the bit count by 8 and rounding _down_ rather than up. Therefore, I can't see how this code could ever have worked on any SSH2 RSA key whose length was not a multiple of 8 bits; and therefore I'm staggered that we haven't noticed it before! OpenSSH's keygen appears to be scrupulous about ensuring the returned key length is exactly what you asked for rather than one bit less, but even so I'm astonished that _all_ keygen implementations for servers we've ever interoperated with have avoided tripping this bug... check-in: 8b68dde6cc user: simon tags: trunk
2004-02-04
12:39
Host key q: mention kh2reg.py check-in: c7c545bb08 user: jacob tags: trunk
2004-02-03
08:47
Patch from Theo Markettos: apparently "BSD-derived IP stacks fall over when trying to bind to the localhost interface with a sockaddr_in which has non-zero sin_zero fields." Zero sockaddr_in (and sockaddr_in6) before any use. check-in: fbed7799c5 user: jacob tags: trunk
08:36
Patch from Colin Watson: document pterm.WarnOnClose check-in: 26037d0de4 user: jacob tags: trunk
2004-01-24
12:30
Unix PuTTYgen: exists check-in: ab3d188cf0 user: jacob tags: trunk
11:16
Reasonably thorough test suite for command-line PuTTYgen, and several bugs fixed in the process of constructing same. check-in: 1f6bbae224 user: simon tags: trunk
2004-01-23
07:21
Add a man page for the new command-line PuTTYgen. check-in: ae2438c41a user: simon tags: trunk
07:21
Couple of bits missing from the command-line help. check-in: 1280360923 user: simon tags: trunk
2004-01-22
13:15
Added a command-line key generation tool. Currently builds and runs on Linux, but the (very few) platform-specific bits are already abstracted out of the main code, so it should port to other platforms with a minimum of fuss. check-in: 78dba49b08 user: simon tags: trunk
12:52
Placate some gcc warnings. check-in: 1b3470bc88 user: simon tags: trunk
12:37
Fix a casting bug with the length-independent sshbn code. check-in: 6b1ac946a2 user: simon tags: trunk
2004-01-21
15:11
Bah! Nicolas Barry correctly points out that my async agent code simply doesn't work - if multiple concurrent agent requests are attempted, some of them will fail for no apparent reason. I assume concurrent SendMessage() calls don't work in the Windows API, or some such. So I'm commenting out the async code for the moment (there wasn't a Windows Pageant that made helpful use of it anyway yet) and returning to the drawing board. check-in: 97b606b22e user: simon tags: trunk
14:59
Kaisuke Nakajima points out that it's unnecessary to translate negative font sizes (meaning pixels) into positive ones (points) in winstore.c, since it gets done anyway at the point of font creation; and removing the code in winstore.c means that the precise font entered by the user is saved in the config, rather than being rounded. check-in: d86c347e2d user: simon tags: trunk
13:56
Darryl L. Miles's patch to support an optional port number argument on the PSFTP `open' command; it was arguably a bug that this command couldn't do such an obvious thing that could be done from the main command line. Also had to fix a NULL-dereference in do_sftp_cleanup in the process. check-in: 84e5eca94f user: simon tags: trunk
13:45
Theo Markettos's unsigned-vs-signed-char pedantry patch. check-in: d58f7637c1 user: simon tags: trunk
13:41
Two small memory leaks, also noticed by Martin Prikryl. check-in: 086da3a301 user: simon tags: trunk
13:33
Martin Prikryl points out that need_pw may be used uninitialised. check-in: e13b2bf694 user: simon tags: trunk
11:11
`What is PuTTY?' gets asked _just_ frequently enough to have finally annoyed me. check-in: 6ded91a6e0 user: simon tags: trunk
2004-01-20
15:00
Update for latest mkfiles.pl kerfuffle check-in: 09fcfb0ba6 user: jacob tags: trunk
14:42
Fix unterminated comments in previous checkin check-in: e625c500bd user: jacob tags: trunk
14:35
Oh, and mention lcc in the README. check-in: afc7394a15 user: simon tags: trunk
14:35
Alexey Savelyev's mkfiles.pl patch to support lcc-win32. This has caused a small amount of extra inconvenience at the tops of .rc files, but it's been positive overall since lcc has managed to point out some pedantic errors (typically static/extern mismatches between function prototypes and definitions) which everything else missed. check-in: c0d4df0389 user: simon tags: trunk
13:46
Paul van der Meij points out that do_reconfig() should not free dp.errtitle, since it's also freed in dp_cleanup(). Minefield agrees. Fixed. check-in: 55462fd892 user: simon tags: trunk
13:41
Josh Hill's patch for full-screen mode on a multi-monitor system: clicks in the top left of the window should not be detected by comparing the coordinates with (0,0) since this won't work on secondary monitors. check-in: d8dda0a4ee user: simon tags: trunk
13:30
Mark Wutzke points out that the comment in sk_proxy_set_frozen() states that plug_receive() may recurse back into sk_proxy_set_frozen() again. Therefore, bufchain_consume() should have been called _before_ calling plug_receive(), to prevent an infinite loop overflowing the stack. I can't immediately figure out under what circumstances this might happen, but it seems an obviously sensible precaution. check-in: 438d79e310 user: simon tags: trunk
06:46
`portfwd-loopback-choice' was not consistently documented. - update usage info in tools - ack, plink is over 24 lines now - update man pages for Unix version - Doc changes: - move long description from (GUI) "config" to "using" - sorry if complete specification isn't what this section is meant for, but if you only read "using" it was hard to find. - ensure enough references to this made in other sections (GUI, command-line) - update instance of plink usage info check-in: d90d7ccbd4 user: jacob tags: trunk
2004-01-19
03:37
Idiot me _twice_! The new store_host_key() was failing in the absence of an existing host key file. Duhh. check-in: fa6ecdda0f user: simon tags: trunk
2004-01-18
18:19
Re local X server auth, clarify that it's _us_ you should mail, and link to the Feedback section. check-in: d6a959cf10 user: jacob tags: trunk
03:14
Memory management fixes. Fixed a segfault in SSH1 compression cleanup noticed by Gerhard Wiesinger, and also fixed some memory leaks spotted by valgrind while debugging same. check-in: ce29cbc0c9 user: simon tags: trunk
02:45
Oops, two lines moved out of my snapshot script should have been left there! Bah. check-in: a2cb22291d user: simon tags: trunk
2004-01-17
08:25
Various uninitialised-variable accesses picked up by valgrind. check-in: a59ea011be user: simon tags: trunk
08:17
Building source archives for previous releases has always been a fiddly process. Let's have a magic script designed to do it right. check-in: 586b37108e user: simon tags: trunk
07:48
Joe Yates's patch to make mkfiles.pl generate Visual Studio project files as well as an nmake makefile. Needed line-end tweakery in order to be able to generate usable project files when run on Unix, but other than that appears fine. Ooh! check-in: 60f90a9de8 user: simon tags: trunk
07:24
So _that's_ why mkfiles.pl was running so slowly on my Windows box! &findfile() now caches its results. At least one full order of magnitude speedup when running on an SMB-mounted volume. Phew. check-in: 0b3db4a44c user: simon tags: trunk
07:00
Idiot me! store_host_key() was blindly _appending_ new host keys to the end of the host key file. This is perfectly all right if a host key never changes, but it's completely useless if you need to replace an existing entry. This version should do better. check-in: 5d35d98cee user: simon tags: trunk
2004-01-01
10:47
It's a new year. check-in: 99a396bcef user: simon tags: trunk
10:42
Joe Yates's memory leak patch was overenthusiastically freeing things; it called freebn on the DH gex values even if DH gex had not taken place. Bug was trivially reproducible as a NULL-dereference segfault by making any SSH2 connection with DH gex disabled. Should now be fixed. check-in: 698fe6e51d user: simon tags: trunk
2003-12-31
10:09
D'oh! WideFont and WideBoldFont were being read from session files, but not written. I _thought_ something odd was happening with my UTF-8 pterms. check-in: 0b63c7c0f9 user: simon tags: trunk
2003-12-19
06:44
Joe Yates's memory leak patches. check-in: e9b1098ae1 user: simon tags: trunk
2003-12-16
12:28
Andy Hood points out that `#ifdef MONITOR_DEFAULTTONEAREST' would benefit from _also_ being conditional on NO_MULTIMON not being defined, to prevent the possibility of only half the multimon code being included. check-in: be5ecc4c16 user: simon tags: trunk
2003-12-03
18:10
tweak for consistency with previous checkin check-in: daec97e28d user: jacob tags: trunk
17:32
Fix from Michael Wardle in bell error message check-in: 0b83b0b033 user: jacob tags: trunk
17:25
Spotted by Tim Kosse: reput on an already complete file was hanging. Should be fixed now (we only wait for packets if we know there are some that haven't been replied to yet). check-in: 55d3234383 user: jacob tags: trunk
16:49
Add updating the wishlist to the Release checklist check-in: f56ed8a4b4 user: jacob tags: trunk
16:45
fflush(stdout) after each line of stats check-in: c43e506a03 user: jacob tags: trunk
13:17
Fix for `logging-save-default': allow logging settings to be saved with Default Settings. check-in: f702cc8509 user: jacob tags: trunk
2003-11-24
07:40
I think the time has come for PuTTYgen to mention "authorized_keys" instead of "authorized_keys2" by default. I believe this change was made in OpenSSH around June 2001, so any versions which it applies should have been replaced by now for other reasons. (The docs still adequately document the confusion surrounding this) check-in: 71e1929ea0 user: jacob tags: trunk
2003-11-22
08:50
Trivial braino in parsing of the port forwarding config data. Was causing all port forwardings after the first dynamic one to be ignored. check-in: 4295b1eb03 user: simon tags: trunk
2003-11-20
12:41
Introduce a new mouse handling option, in which the right button brings up the context menu (and you can then paste by selecting `Paste'). Should be more friendly to Windows-oriented users as opposed to expatriate X users; also has the effect of making it more difficult to paste into PuTTY by a single misplaced mouse click, which has been a common theme of complaint recently. For the moment, `Compromise' (the X-like behaviour with the right and middle buttons reversed so that two-button users still get the two most important functions) is still the default. I'm uncertain that it might not be better to make the new option the default, though, since the compromise option is optimal for _nobody_. check-in: cc4808683d user: simon tags: trunk
12:33
Move the `translation of line drawing characters when pasting' option from the Selection panel to the Translation panel (where it fits at least as well). This frees a line in the Selection panel which I'm about to use for an additional mouse handling option. check-in: 63b0990c9f user: simon tags: trunk
2003-11-19
14:48
Introduce a context menu which appears on Ctrl+rightclick. This menu contains all the stuff in the System menu except for the standard System menu bits (move, resize, close etc), and also contains `Paste'. check-in: 27e67f22ab user: simon tags: trunk
13:09
Make that last checkin more explicit, and in particular reference the "common errors" section of the documentation. check-in: 9c2acc565c user: jacob tags: trunk
13:03
Soften language in `faq-incorrect-mac': buggy ssh.com servers aren't the only possible reason for this message. check-in: 5bae2a07fe user: jacob tags: trunk
11:30
I _think_ this should fix the problem reported by `Stacey': failure to fclose a private key file. check-in: 06b26aa384 user: simon tags: trunk
2003-11-06
08:17
Cosmetic fix from Daniel Fazekas: apparently we were failing to allow window-furniture in Playschool Windows be animated on mouse-over. This fix also seems like the Right Thing to do. I've tried it and it seems harmless enough on Win2K. check-in: 5436148628 user: jacob tags: trunk
2003-11-03
07:59
We now mention the version number on the Download page, so I'd better remember to change it next time :-) check-in: 7ab4267691 user: simon tags: trunk
2003-10-31
15:45
Close the host keys file after use. Well spotted Theo Markettos. check-in: e8d0cbf914 user: simon tags: trunk
2003-10-30
04:41
Hmm, that relative link wasn't too good. Try a more helpful one. Also add to the release checklist so that I'll remember to set this up properly in the next set of release docs... check-in: 5a27b67f71 user: simon tags: trunk
04:30
Move the reference to sitestyle.css out into a separate .but file which is only included if you explicitly tell the docs Makefile to do so. Also make it a relative reference, while we're at it. check-in: d832d51c39 user: simon tags: trunk
2003-10-21
08:26
Fix usage comments check-in: 8930a931d1 user: jacob tags: trunk
2003-10-15
07:09
Update faq-pscp-ascii. check-in: 5a312a46a0 user: jacob tags: trunk
2003-10-14
18:23
Add `--unix' mode to generate ~/.putty/sshhostkeys from known_hosts. (should now be called `kh2putty.py') check-in: c5b55a8520 user: jacob tags: trunk
16:01
Remove dead comment about writing settings, and query one about reading them. check-in: d9123c46c5 user: jacob tags: trunk
14:57
We now have Unix ports of PSCP and PSFTP. check-in: 5bf0544db6 user: jacob tags: trunk
2003-10-12
09:12
Actually fix winnet-if2lo, I think. Tested in an ad-hoc manner by deliberately making a connection from nemesis's real IP address to its loopback address; not tested in the original failing case of SMB. check-in: b7737bd583 user: simon tags: trunk
08:46
The WinSock library is now loaded at run-time, which means we can attempt to load WS2 and then fall back to WS1 if that fails. This should allow us to use WS2-specific functionality to find out the local system's list of IP addresses, thus fixing winnet-if2lo, while degrading gracefully back to the previous behaviour if that functionality is unavailable. (I haven't yet actually done this; I've just laid the groundwork.) This checkin _may_ cause instability; it seemed fine to me on initial testing, but it's a bit of an upheaval and I wouldn't like to make bets on it just yet. check-in: 6773da81d2 user: simon tags: trunk
08:16
Remove all the "assert(len>0)" which forbade zero-length writes across the from_backend() interface, after having made all implementations safe against being called with len==0 and possibly-NULL/undefined "data". (This includes making misc.c:bufchain_add() more robust in this area.) Assertion was originally added 2002-03-01; e.g., see plink.c:1.53 [r1571]. I believe this now shouldn't break anything. This should hopefully make `ppk-empty-comment' finally GO AWAY. (Tested with Unix PuTTY.) check-in: 5ec3c6472e user: jacob tags: trunk
2003-10-10
17:58
Add random commentary to SOCKS code. Also fix what I think are a couple of very minor bugs in SOCKS4; one won't affect anyone AFAIK, and the other is unlikely to cause trouble. check-in: 3c15567b1d user: jacob tags: trunk
16:20
In SOCKS5 dynamic forwarding, we were echoing back DST.{ADDR,PORT} as BND.{ADDR,PORT}. Besides being clearly wrong, correspondence with Sascha Schwarz suggests that this can confuse some SOCKS5 clients (Aventail and sockscap32) which seem to assume that the reply must have ATYP=1 (IPv4 literal) and so get the length wrong. Now all replies have ATYP=1 with BND.{ADDR,PORT} = 0.0.0.0:0 -- this apparently follows practice in OpenSSH. (We don't have enough info to fill these fields in correctly.) check-in: cb48fb86c6 user: jacob tags: trunk
2003-10-08
16:39
missed a bit in last commit check-in: 46fb6c3314 user: jacob tags: trunk
15:09
Cosmetic, to fix ssh2-des-cbc-is-std check-in: 3d5de8a690 user: owen tags: trunk
2003-10-07
16:31
`baltic-default-translation': change default Baltic (CP1257) encoding from 8859-4 to 8859-13 as suggested by Vaidrius Petrauskas, on the grounds that he has a .lt address and sounds like he knows what he's talking about. check-in: 3196e02431 user: jacob tags: trunk
2003-10-03
16:21
My ASN.1 decoder returned wrong IDs for anything above 0x1E! Good job it's never had to yet. Ahem. check-in: 241e1c801f user: simon tags: trunk
2003-09-29
10:39
PSCP in SFTP mode now uses the fast download/upload manager. check-in: f7725510cb user: simon tags: trunk
10:39
Obvious memory leak in new fast download management. Oops. check-in: 25ccd57cf4 user: simon tags: trunk
2003-09-28
09:24
Uploads turn out to be much easier than downloads, so here's faster upload support in PSFTP as well. check-in: f977cd8508 user: simon tags: trunk
2003-09-27
12:52
First cut at speeding up SFTP. Generic download-management code in sftp.c, and psftp.c now uses that instead of going it alone. Should in principle be easily installed in PSCP as well, but I haven't done it yet; also it only handles downloads, not uploads, and finally it doesn't yet properly calculate the correct number of parallel requests to queue. Still, it's a start, and in my own tests it seemed to perform as expected (download speed suddenly became roughly what you'd expect from the available bandwidth, and decreased by roughly the expected number of round-trip times). check-in: 98245922c2 user: simon tags: trunk
2003-09-26
08:04
Clarify what happens when you enter a code page that's not listed. check-in: 45f26718dd user: jacob tags: trunk
2003-09-25
07:38
Note what versions of SOCKS are implemented for dynamic port forwarding. check-in: 05fb7776e6 user: jacob tags: trunk
2003-09-23
05:12
Imply that some features that have been implemented may appear on the Wishlist but not the Changes page, as this is now often the case. check-in: 8b4a9b1b0b user: jacob tags: trunk
05:05
Mention Windows on Alpha as worth mentioning check-in: ed7b3cb62e user: jacob tags: trunk
2003-09-10
07:30
Oops. Fix a bug in my `keyfile-diagnostic' work which caused SSH-2 key loading in pageant (and presumably puttygen) to crash. check-in: df0f8663d9 user: jacob tags: trunk
2003-09-03
15:14
Implement `default-colours' on Windows based loosely on Michael Wardle's patch. check-in: 97f6c76b52 user: jacob tags: trunk
13:37
Add pscp to .cvsignore check-in: 1865367963 user: jacob tags: trunk
2003-09-02
14:02
Change an incorrect comment about "PuTTY-User-Key-File-2" private key format after discussion with Simon. check-in: 0015f045db user: jacob tags: trunk
14:00
When loading SSH-2 key, ignore passphrase argument if key is unencrypted. This should get rid of a problem that three or four people reported where PuTTY intermittently reports "Unable to load private key" (MAC failed). (ssh.c:do_ssh2_authconn() should also initialise its passphrase so it's not passing garbage passphrases around, of course, but I haven't yet worked out where the best place in the auth loop to do that would be.) check-in: eaa02b3a3e user: jacob tags: trunk
04:52
Include stdlib.h for exit() - thanks Colin. check-in: 655b9d0df4 user: simon tags: trunk
2003-09-01
16:27
Add support for a DESTDIR variable in the Unix makefile to set the root of the installation tree (for building packages etc). check-in: 118376130e user: ben tags: trunk
2003-08-29
17:52
Work towards wish `keyfile-diagnostic'. Many sshpubk.c keyfile-loading functions have sprouted `**errorstr' arguments, which if non-NULL can return a textual error message. The interface additions are patchy and ad-hoc since this seemed to suit the style of the existing interfaces. I've since realised that most of this is masked by sanity-checking that gets done before these functions are called, but it will at least report MAC failures and the like (tested on Unix), which was the original point of the exercise. Note that not everyone who could be using this information is at the moment. check-in: 3623e79240 user: jacob tags: trunk
17:14
dupstr() should cope with being passed NULL check-in: 152e1176e6 user: jacob tags: trunk
14:41
Minimal fixes to minimal plink man page. check-in: babae13135 user: jacob tags: trunk
14:21
Add "-s" option to Unix plink too. Compiled, but not tested as Unix plink seems to be segfaulting today. check-in: ed421cd20a user: jacob tags: trunk
14:06
New option for plink: "-s" specifies that the remote command is an SSH-2 subsystem. (pinched from OpenSSH) check-in: 926a02fe4a user: jacob tags: trunk
2003-08-25
09:30
... and there's a Unix port of PSCP. Ooh. check-in: 7ca13b1af9 user: simon tags: trunk
09:18
Fix a couple of blatant memory leaks; thanks to Ruurd Beerstra for pointing at least one of them out. check-in: 2b5ae5cfd4 user: simon tags: trunk
08:53
Windows PSCP now links against winsftp.c, and scp.c is now a platform-independent source file. Haven't yet added the extra abstraction routines to uxsftp.c to create a Unix PSCP port, but it shouldn't take long. Also in this checkin, a change of semantics in platform_default_s(): now strings returned from it are expected to be dynamically allocated. check-in: 902945de56 user: simon tags: trunk
2003-08-24
08:22
And just to prove that psftp.c really is now platform-independent ... here's a Unix port of PSFTP. Woo. (Oddly PSCP looks to be somewhat harder; there's more Windows code interleaved than there was in PSFTP.) check-in: a9746849d8 user: simon tags: trunk
07:47
Next phase of general SFTP reworking: psftp.c is now a platform- independent source file. All Windowsisms have been moved out to winsftp.c. check-in: cf9dbdd668 user: simon tags: trunk
2003-08-21
14:48
Fix for `slow-startup-printer': use PRINTER_INFO_4 on NT-class systems, which apparently tries less hard to find printers so won't slow the system down. Tested on 2000 and 98; in both cases printer enumeration and printing worked as well as they did in 2003-08-21. Made a single shared copy of osVersion in winmisc.c so that printing.c can find it. Made other users (window.c, pageant.c) use this copy. check-in: 7271667d51 user: jacob tags: trunk
13:39
Richard B's patch to enable users to explicitly request shadow bold by disabling bold-font-name guessing (if their bold fonts are ugly). I've turned the UI inside out, but the meat is pretty much the same. check-in: ff01a069c4 user: simon tags: trunk
13:07
Richard B's patch to support X cut buffers as well as ordinary selections, meaning that (a) a pterm can leave copied text in the cut buffer after it terminates so that applications can pick it up even though it isn't still around to deliver the selection in person, and (b) pterm can pick up things left in this way by other apps. Downside is that all of this only happens in ISO8859-1, because X is weird like that. check-in: 620a90455a user: simon tags: trunk
13:03
Richard Boulton's patch for improved correctness in selection handling (generally, selection request timestamps should be set to the timestamp on the event that caused them). check-in: ca4726e5f8 user: simon tags: trunk
2003-08-07
11:04
Control of 'addr' is now handed over to {platform_,}new_connection() and sk_new() on invocation; these functions become responsible for (eventually) freeing it. The caller must not do anything with 'addr' after it's been passed in. (Ick.) Why: A SOCKS5 crash appears to have been caused by overzealous freeing of a SockAddr (ssh.c:1.257 [r2492]), which for proxied connections is squirreled away long-term (and this can't easily be avoided). It would have been nice to make a copy of the SockAddr, in case the caller has a use for it, but one of the implementations (uxnet.c) hides a "struct addrinfo" in there, and we have no defined way to duplicate those. (None of the current callers _do_ have a further use for the SockAddr.) As far as I can tell, everything _except_ proxying only needs addr for the duration of the call, so sk_addr_free()s immediately. If I'm mistaken, it should at least be easier to find the offending free()... check-in: d318104cf5 user: jacob tags: trunk
2003-07-16
03:28
Clarify that '-m' takes a _local_ file. ref. <kjt9hv49dagqmvru0nq9qcc0f5p11vg0ma@4ax.com> check-in: 0174559f47 user: jacob tags: trunk
2003-07-12
08:45
Add SSH-1 password camouflage bug detection for version OSU_1.4alpha3 of the OSU VMS SSH server <http://kcgl1.eng.ohio-state.edu/~jonesd/ssh/>. The changelog appears to indicate that the server was fixed for pwplain1 at 1.5alpha4, and for IGNORE and DEBUG messages at 1.5alpha6. However I'm going to go on the reports we've had as I haven't tested this; and they indicate only that 1.5alpha6 is known not to require any bug compatibility modes. (I wasn't sure whether to add this at all, given that upgrading to version OSU_1.5alpha6 is an easy way to fix the problem. However, there is precedent for adding detection for old versions of servers which have since been fixed.) check-in: 2cf32ed275 user: jacob tags: trunk
08:25
Add section on "Access denied". This was mostly inspired by the password camouflage problems with SSH-1.5-OSU_1.4alpha3. check-in: 7efa9327f7 user: jacob tags: trunk
2003-07-06
04:34
Mention Roald Ribe's success with OpenWatcom and Makefile.vc check-in: 524b21d095 user: jacob tags: trunk
2003-07-05
06:35
Consider bells as a display event. check-in: 50345c3388 user: owen tags: trunk
2003-06-29
09:47
Phase 1a of SFTP re-engineering: fix the glaring memory and request ID leak in the previous checkin. Oops :-) check-in: 0180a6b327 user: simon tags: trunk
09:26
First phase of SFTP re-engineering. Each base-level fxp_* function has been split into a send half and a receive half, so that callers can set several requests in motion at a time and deal with the responses in whatever order they arrive. check-in: b9024f3254 user: simon tags: trunk
2003-06-28
09:11
Failure to set multipliers[NPRIMES] was rendering the input-modulus feature (make sure your prime is not congruent to Foo mod Bar) largely ineffective. As a result, RSA keys were being generated every so often with at least one prime congruent to 1 mod 37, causing modinv(37, phi(n)) to divide by zero, and rightly so. I believe this fixes `puttygen-zero-div'. check-in: 7806f0f2c6 user: simon tags: trunk
09:10
bignum_mod_short shouldn't be depending on a fixed place value in the bignum data! This wasn't actually causing puttygen-zero-div (its unwarranted assumption was still correct under Windows) but it would have caused the same symptoms under Unix when I got round to porting PuTTYgen. check-in: 17934d0f46 user: simon tags: trunk
02:52
Someone pointed out that ^~ should generate the same as ^^, for consistency with xterm. check-in: 54510097cb user: simon tags: trunk
2003-06-26
10:08
Implement sftp-backend-diagnostic in pscp. check-in: 2cb6a9eb00 user: owen tags: trunk
09:19
Implement hostkey-prompt-type everywhere except Macintosh. check-in: 4f0e9c740b user: owen tags: trunk
08:41
Fix a segfault (non-security-critical - null dereference for reading) in the zlib code when fed certain kinds of invalid data. As a result, ssh.c now needs to be prepared for zlib_decompress_block to return failure. check-in: 0d2defefe0 user: simon tags: trunk
2003-06-25
10:52
Incorporate Brad Clarke's suggestion to use "REGEDIT /EA" rather than "REGEDIT /E". On newer versions of Windows (verified on 2K), this will cause the .REG file to be saved in REGEDIT4 format (ASCII) which can be read by older Windows, rather than REGEDIT5 (Unicode). On older Windows, the extra "A" is harmless (verified on Win98). check-in: c7a798eb4f user: jacob tags: trunk
2003-06-21
18:13
Missing part of my recent SCOANSI fix. check-in: 43df005e0b user: ben tags: trunk
17:40
Improve SCOANSI emulation: The colours that SGR 0 returns to are now changed by the SCO SNF and SNB sequences, which seems to be what the SCO console does (at least in the new mode documented for OpenServer 5.0.6). check-in: c31bb4b658 user: ben tags: trunk
16:19
Oops, Ben got there first. Oh well, here's a comment. check-in: 1fe3821653 user: jacob tags: trunk
15:21
The specific SSH cipher algorithms supported by PuTTY weren't listed anywhere in the documentation. Added some detail - feel free to tweak. check-in: d54cd3d495 user: jacob tags: trunk
14:38
Add comments to case statements containing the mnemonics for the various escape and control sequences. This should make it easier to find the implementation of the one you're interested in. check-in: 0051dbf761 user: ben tags: trunk
14:34
Remove -DNO_SECURITY from the cygwin build, since <aclapi.h> has been available in cygwin for a year and a half. Pointed out by Bruno Kozlowski. check-in: 820c046442 user: ben tags: trunk
2003-06-19
18:04
Fix problem quitting terminal window while Change Settings active check-in: bb5b43fd80 user: owen tags: trunk
15:42
Fix for `double-alt-keystrokes'. Thanks to Leonid Lisovskiy. check-in: fdafcc52a8 user: jacob tags: trunk
2003-06-18
12:25
Make SaneDialogBox and SaneEndDialog use [GS]etWindowLong rather than a global variable. Should mean that pageant builds. check-in: fac607e778 user: owen tags: trunk
2003-06-16
18:55
Fix double-keystrokes by wrapping CreateDialog check-in: f097cec457 user: owen tags: trunk
2003-06-15
17:05
Support for more SCO ANSI escape sequences: CSI = Ps c CSI = Pn1 ; Pn2 C CSI = Ps D CSI = Ps F CSI = Ps G SGR 6 Patch derived from one supplied by Leonid Lisoskiy, with several fixes from me. check-in: caf1367436 user: ben tags: trunk
2003-06-14
13:27
Fix a couple of memory leaks pointed out by Adam Bernstein. check-in: f251013cab user: ben tags: trunk
2003-06-06
13:16
Suggest that local support staff are useful. check-in: e0337d361a user: ben tags: trunk
05:42
Move prototype for platform_new_connection() to a header file so the definitions can be checked against it. check-in: ee0a576001 user: ben tags: trunk
2003-05-27
04:43
Experimental change in the behaviour of `disable alternate terminal screen'. Now it also disables the save-and-restore-cursor behaviour of ESC[?1048h and ESC[?1049h, since these sequences seem to be output by software trying to switch to the alternate screen, and it looks very odd to have the cursor position restored to where it was before `less' when the garbage `less' wrote all over the screen is still around. The `traditional' ESC 7 and ESC 8 still function as normal, on the basis that they aren't usually used in conjunction with the alternate screen. I'm not sure whether this will be the right decision; I'm prepared to change it back if a sufficiently serious counterexample shows up. check-in: 28053f5cb7 user: simon tags: trunk
2003-05-24
14:03
Add exceptions for "VShell" to the ssh.com bug compatibility modes (which are just numbers) in an attempt to fix `vshell-no-bug-compat'. Not even tested a little bit. check-in: 07103bef21 user: jacob tags: trunk
13:02
Fixed accelerator clash between "Conversions" menu and "key comment" control (former is now "Con&versions"). Add shortcut to key fingerprint for ease of copy-and-paste. check-in: 0ef9f00904 user: jacob tags: trunk
07:31
Modified form of Jim Lucas's PC speaker patch. I don't like discriminating on the Windows version in order to decide whether to call MessageBeep(-1) or Beep() - I'd prefer to directly test the specific OS property in any given case - but it looks as if this is the best available option. check-in: ec24b318e6 user: simon tags: trunk
05:57
Incorporate matthew.gabeler-lee's suggested fix for badness with multiple exact hostnames in the proxy exclusion list. <OF63043512.26ABC6B9-ON85256D21.006C33C6-85256D21.006C4B81@EU.novartis.net> check-in: 19dcf6e327 user: jacob tags: trunk
2003-05-22
03:43
Update a couple of bits of the FAQ. We do now default to SSH2, and we do have a Unix port of PuTTY proper. check-in: e699ed6ea4 user: simon tags: trunk
2003-05-14
13:53
Rene Post's other patch: PuTTYgen was generating double file dialogs by mistake. check-in: bea54a66b8 user: simon tags: trunk
2003-05-13
14:57
Real COMPOUND_TEXT support! I was expecting to have to read the spec and implement the required subset of ISO-2022 in libcharset, but it turns out that Xlib provides conversion functions between UTF-8 and compound text, which are just about ideal for us. So now we can paste multilingual stuff both to and from emacs21. Rock on. check-in: f09b9e07b0 user: simon tags: trunk
13:43
Allow pterm to receive selections in compound text format. Doesn't actually _understand_ compound text yet - anything with non-ASCII-or-8859-1 characters will fail miserably - but it will at least successfully receive plain text if the pasting application doesn't see fit to give it out in any other format. check-in: 968a183c28 user: simon tags: trunk
13:23
Rename crc32() to crc32_compute(), to avoid clashing catastrophically with the crc32() function in the zlib interface. (Not that PuTTY itself _uses_ zlib, but on Unix it's linked against libgtk which uses libpng which uses zlib. And zlib has poor namespace management so it defines this ridiculously intrusive function name. Arrrrgh.) check-in: 3bdddd4aca user: simon tags: trunk
13:14
Debian bug #193013 points out that the (default-)one-pixel border is not redrawn when the window background colour is reconfigured mid- session. In addition, the Official Window Background is not reset, meaning that opaque resizes etc will flicker in the old background colour. This checkin should fix both. check-in: 58b0de2d23 user: simon tags: trunk
2003-05-12
08:41
Patch from Rene Post: ctrl_{drag,drop}list both now initialise the same set of structure fields that the ordinary ctrl_listbox does. check-in: 831ebbbfab user: simon tags: trunk
2003-05-11
09:32
Brief man pages for PuTTY and PuTTYtel. check-in: f5b8fd889c user: simon tags: trunk
09:19
Missing full stop. check-in: 475007a30b user: simon tags: trunk
09:19
Some time ago I arranged for -geometry to be able to specify window position as well as size. Now reflected in manpage. check-in: a083cca719 user: simon tags: trunk
07:28
I think I've just fixed Debian bug #166396. The +ut option was causing pty_utmp_helper_pipe to be closed, but its fd was kept around even when stale, and closed again when the main child process terminated - by which time the fd number had been reused for a rather more vital fd, which GTK didn't appreciate having closed under its feet. Hence, spin on POLLNVAL. Should now be sorted. check-in: 3000ac05c2 user: simon tags: trunk
2003-05-10
15:51
Finally, column spanning. check-in: 4801159691 user: ben tags: trunk
15:23
Change the way that panel-switching works so that we only hide the panel we're switching from and show the panel we're switching to, rather than iterating over all the panels, hiding and showing them as appropriate. This has that consequence that all controls have to be created invisible, since they no longer get hidden after creation. As usual, the scroll bars on list boxes have a special hack of their own. check-in: acb67a74ed user: ben tags: trunk
07:54
Make ssh_agent_callback() and ssh_agentf_callback() static. check-in: 4e8c6bdb81 user: ben tags: trunk
07:27
I believe that verify_ssh_host_key() should now be passed a real front-end handle, which removes one of its many flaws. check-in: 05277e0eb1 user: ben tags: trunk
06:57
Extra const for loop_init() and null_init(). check-in: d3d894df55 user: ben tags: trunk
06:50
Eliminate a "possible unintended assignment" warning. check-in: 84bfa51b16 user: ben tags: trunk
06:40
Update signature of agent_query() to match the rest of the world. check-in: 92853bdca9 user: ben tags: trunk
06:26
Comment a few things I need to fix. check-in: a512e8630f user: ben tags: trunk
05:15
Remove the now incorrect `Unicode is not supported' from the bugs in the pterm man page :-) check-in: b41b828c1d user: simon tags: trunk
05:15
pterm will now attempt to guess suitable names for any missing fonts from the ones given; so it'll ask for a font twice as wide as your base one if you don't specify a wide font, it'll ask for a bolded version of your base font if you don't specify a bold font, and similarly for a wide/bold font. Should solve Debian bug #187389; at least it works for me. check-in: d3acdabf8d user: simon tags: trunk
04:06
pterm's manpage now documents the NoRemoteQTitle resource. Should fix the other half of Debian bug #191751. check-in: fb72bd7176 user: simon tags: trunk
04:05
Stupid braino in get_window_title (thanks Colin): window and icon titles were being reported the wrong way round. Should fix half of Debian bug #191751. check-in: d622d5a81e user: simon tags: trunk
03:37
Should fix Debian bug #192674: another gcc complaint about potentially uninitialised variable. check-in: ce4d5b47fb user: simon tags: trunk
03:35
Fixes for Debian bug #192701 (64-bit gccs warn about casts between ptrs and ints of different size and -Werror makes this serious). The GTK bits are done by Colin's patch to use GINT_TO_POINTER (thanks); the uxnet bits are done by cleaning up the rest of the code. In particular, network.h now typedefs `OSSocket' to be a type capable of holding whatever the OS's socket data type is that underlies our socket abstraction. Individual platforms can make this typedef themselves if they define OSSOCKET_DEFINED to prevent network.h redoing it; so the Unix OSSocket is now int. Default is still void *, so other platforms should be unaffected. check-in: e1f861acb0 user: simon tags: trunk
2003-05-08
04:07
Fix a typo in my backwards-compatibility wart. Oops. check-in: 1ca67c7332 user: simon tags: trunk
2003-05-07
08:14
Bah. Stop the Proxy panel appearing empty in Change Settings. One day I'll make a reasonably big checkin and _not_ have six tiny mop- up issues after it... check-in: 1106ef9013 user: simon tags: trunk
07:07
Yesterday's proxy enhancements also slightly nadgered the config box, in that it started to expand under the weight of proxy options. Now fixed, by folding the SOCKS version selector into the general proxy type selector so there's one single 5- or 6-way radio button set split over two lines. settings.c has of course grown a backwards compatibility wart to deal with legacy config data. check-in: e5c791f97a user: simon tags: trunk
03:49
Ahem. Well, the complicated Unix implementation of platform_new_connection() worked fine, but the really simple stub version for the other ports fell over horribly because I got its name wrong. NEVER ASSUME YOU'VE DONE THE EASY BIT RIGHT. check-in: af02c1fbaa user: simon tags: trunk
2003-05-06
14:55
Reinstate `-T title', in pterm only. check-in: 0fed8bc460 user: simon tags: trunk
14:52
Support, on Unix only (so far), for OpenSSH-style generic proxying (running a local command in a pair of pipes and proxying through that, for example `ssh proxyhost nc -q0 %host %port'). check-in: 5f42413627 user: simon tags: trunk
03:43
Update to use -title rather than -T check-in: 3d5f4bd15e user: owen tags: trunk
2003-05-04
09:18
Colin's const-fixing Patch Of Death. Seems to build fine on Windows as well as Unix, so it can go in. check-in: c9f1945192 user: simon tags: trunk
09:14
Colin's and my fixes to connection_fatal(). check-in: 1bf6f94877 user: simon tags: trunk
2003-04-28
08:59
Asynchronous agent requests on Windows. Actually, I've kept the ability to do synchronous ones as well, because PSCP and PSFTP don't really need async ones and it would have been a serious pain to implement them. Also, Pageant itself when run as a client of its primary instance doesn't benefit noticeably from async agent requests. check-in: e54332edd4 user: simon tags: trunk
06:41
First half of `pageant-async' work. agent_query() is now passed a callback function; it may return 0 to indicate that it doesn't have an answer _yet_, in which case it will call the callback later on when it does, or it may return 1 to indicate that it's got an answer right now. The Windows agent_query() implementation is functionally unchanged and still synchronous, but the Unix one is async (since that one was really easy to do via uxsel). ssh.c copes cheerfully with either return value, so other ports are at liberty to be sync or async as they choose. check-in: 038bb0a77e user: simon tags: trunk
2003-04-27
06:11
Add puttytel binary to .cvsignore check-in: e1c13ddcb8 user: simon tags: trunk
06:10
Support for non-ISO-8859-1 X keysyms. So in particular, pterm in a Euro-supporting font with a Euro-enabled X key map will now actually generate a Euro character rather than shrugging and doing nothing. check-in: 63945cefc6 user: simon tags: trunk
05:02
radioline() was broken after the portable-dialog stuff got added, so PuTTYgen was lacking its key type selector. Fixed. check-in: 2451a3c179 user: simon tags: trunk
04:45
Take the random number generator back out of Pageant: the `random' numbers needed for RSA blinding are now done deterministically by hashes of the private key, much the same way we do it for DSA. check-in: 45ede95073 user: simon tags: trunk
2003-04-26
09:37
Remove the TODO comment at the top of uxputty.c; I'm now not aware of anything that makes the Unix port of PuTTY proper significantly unfinished. That's quite a milestone :-) check-in: d9f1cd86a5 user: simon tags: trunk
09:36
Might as well provide PuTTYtel for Unix. It's not much effort! check-in: 9ee37125d8 user: simon tags: trunk
09:35
Finer granularity of config box handling. SSH packet logging should now not show up when it's meaningless (in PuTTYtel, in pterm, and in the middle of any non-SSH session), and the Connection panel is inhibited completely in pterm. check-in: af66e213d9 user: simon tags: trunk
09:22
Make the `vtmode' config option work under X. In the process I've had to move another of its values out into wincfg.c - paradoxically, this was the `font has X encoding' option! (Because the Unix font handling code expects to be able to tell for _itself_ whether it has a font with X-encoded line drawing glyphs.) check-in: 42587114a6 user: simon tags: trunk
08:55
Aha, _that's_ why the icon title didn't work properly in pterm: gtk_window_set_title() overwrote both titles at once. Icon title is now working properly under X, and since X was the reason for the whole icon/window title separation _anyway_ they default to being separate. check-in: 9772d176d4 user: simon tags: trunk
08:22
The line-drawing paste config option has changed its meaning since it was first designed. Alter the wording and documentation to match. check-in: 3927d00818 user: simon tags: trunk
2003-04-25
12:44
The new ssh_do_close() function itself causes a segfault if the connection goes foom before ssh->channels is set up. Oops. Fixed. check-in: 899cb52b70 user: simon tags: trunk
11:42
Fix another segfault on abrupt X connection shutdown. This should have happened in rev 1.5 [r996] but didn't! Now we never call sk_get_private_ptr() on a socket unless we've ensured it's non-NULL. check-in: 738c707e42 user: simon tags: trunk
10:44
Don't block SIGPIPE until _after_ pterm forks, since otherwise the blockage will propagate to the child process. check-in: 9546ad05f2 user: simon tags: trunk
06:48
Robustness in the face of sudden connection closures: we now make a credible effort to shut down open forwardings cleanly when the owning SSH connection terminates abruptly (for whatever reason). check-in: 26f97a0d19 user: simon tags: trunk
2003-04-23
10:25
Force gcc to use x86's built-in 64/32->32,32 division instruction rather than swanning off to a helper function. This seems to make woefully little actual performance difference, which annoys me, but it's a just-about-detectable improvement so I'll leave it in. check-in: 0aa2c11554 user: simon tags: trunk
09:48
Added framework to sshbn.c to make it possible to vary the underlying integer type forming the Bignum. Using this, arranged that gcc/x86 uses 32-bit chunks rather than the guaranteed ANSI- portable 16-bit chunks. This has gained another 30% on key exchanges by my measurements, but I'm not yet convinced that it's all perfectly robust - it seems to work fine for SSH1 and SSH2/RSA but I haven't ensured that every bignum routine is actually being tested, so it may yet show up problems in DSA or key generation. check-in: 3769f9433e user: simon tags: trunk
08:48
Unix makefile now uses -O2, which massively cuts down key exchange time. This gives rise to a whole bunch of spare warnings, one or two of which might have been actual bugs; now all resolved. check-in: 6c10570c0b user: simon tags: trunk
2003-04-18
08:09
Missing bits for colour selection support. check-in: 95a72b4829 user: ben tags: trunk
08:09
Missing bits for System 7 listbox support. check-in: acc262a072 user: ben tags: trunk
04:14
Removing items from a list box using gtk_container_remove is nasty, because when the selected item is removed the selection moves on to another item. Thus, calling dlg_listbox_clear causes repeated selchanges in the list, which in turn cause repeated valchanges if the list is attached to a combo box. This has been completely scuppering the Translation panel. check-in: a530f9d4d5 user: simon tags: trunk
04:06
Oops; we _do_ need to set dport even when doing dynamic forwarding, because otherwise the `if (sport && dport)' statement runs the risk of not working. check-in: f3060f0139 user: simon tags: trunk
04:00
Missed out a couple of uxsel_tell() which were hanging forwarded X connections in at least some situations. Oops. check-in: 384eaf1a25 user: simon tags: trunk
04:00
Fix obvious foulup in X forwarding: my recent `how did this ever work' change to port forwarding completely broke it, by failing to set peeraddr{,len} before reading them. Oops. check-in: 58503ab138 user: simon tags: trunk
2003-04-16
18:58
Replace use of FIONBIO with POSIX-approved O_NONBLOCK (set using fcntl()). This should save us having to worry about different OSs' defining it in different headers. check-in: bc49ee811b user: ben tags: trunk
18:33
Make IPv6 support for Unix work, and make it a lot simpler in the process. At the moment, we have to assume that getaddrinfo() will only return AF_INET and AF_INET6 addresses, since we patch in the port number into the sockaddr later. Fixing this is probably best done by redesigning the PuTTY network abstraction a little. check-in: 6206b1162a user: ben tags: trunk
2003-04-14
18:47
Remove all those horrid fprintfs. check-in: 91ec589e47 user: ben tags: trunk
18:28
Set the space required by a listbox sensibly as well. check-in: 3c809505f1 user: ben tags: trunk
18:25
Minor fixes: - Erase the background of System 7 editboxes before drawing them. - Set the height of listboxes correctly. - Set the panel-selection listbox to 20 items high. check-in: 82e19cbda1 user: ben tags: trunk
17:55
Don't call GetColor() if we don't have Color Quickdraw -- no good will come of it. check-in: f093d4afaa user: ben tags: trunk
17:42
Support for colour selection in the Mac OS. check-in: 1bb87f2427 user: ben tags: trunk
16:34
Keyboard events in Mac OS 8 list boxes should generate EVENT_SELCHANGE, not EVENT_VALCHANGE. check-in: 0d697e5d61 user: ben tags: trunk
16:15
Enlarge the settings window so as to fill a 640x480 display. This makes enough space to actually fit all of the panels. I'll have to do a version with smaller fonts for 9" screens. check-in: c660bc8f15 user: ben tags: trunk
2003-04-13
09:37
Add a list box to the config dialogue to switch between panels. Now I don't have to recompile to change panels! check-in: 22c49c931e user: ben tags: trunk
08:52
Support for list boxes under System 7. There are some horrible kludges in this code to do with the handling of the scroll bar, but it doesn actually work better than the Mac OS 8 version. check-in: 6af1a1874e user: ben tags: trunk
2003-04-12
16:23
socks5_negotiate(): rather than using an uninitialised value when passed an address of an invalid type, assert() that it will never happen. Do something similar for SOCKS4 as well. check-in: 125ea26ede user: ben tags: trunk
16:15
Don't use an uninitialised value when we get an unsupported ATYP in a SOCKS5 request. Spotted by GCC. check-in: 0bc01ae5f3 user: ben tags: trunk
16:07
Remove a couple of spurious semicolons. check-in: 2e726f9adc user: ben tags: trunk
16:06
Update for Simon's from_backend changes. check-in: 099db98855 user: ben tags: trunk
12:37
Support for New Session, Duplicate Session and the Saved Sessions submenu in Unix PuTTY, and Duplicate Session also in pterm. You do _not_ want to know how this is done. Be warned. check-in: 2a16a8e814 user: simon tags: trunk
06:03
Further fiddlings with the size reconfiguration stuff; now everything seems to work right even when the only thing changed was the window border. check-in: b3bd56e4fb user: simon tags: trunk
05:44
Mid-session reconfiguration of scrollback was failing (in Unix) except when width or height had _also_ been changed. Fixed. check-in: 8d3c66813d user: simon tags: trunk
04:27
Implement the ldisc `special' mechanism in Unix, without which local line editing didn't work at all. check-in: 82c66f5741 user: simon tags: trunk
04:19
Fix from yesterday's frontend-handle upheaval: ldisc calls from_backend(), and must now pass its frontend handle rather than its terminal handle. check-in: ea2283da3c user: simon tags: trunk
04:05
Mid-session BCE reconfiguration wasn't taking effect immediately because I forgot to set term->erase_char in response to the change in term->use_bce. Oops. check-in: 32701df063 user: simon tags: trunk
03:59
Disable window title reporting by default, since it's a security hazard. I considered removing it completely, but I can't rule out the possibility of an OS that actually takes security of its terminal devices seriously, and which might be able to make sensible and safe use of this feature. check-in: a301bcba32 user: simon tags: trunk
03:27
Close On Exit and Warn On Close fixes: (a) pty_reconfig needs to remember changes in COE so it knows whether to print a message, and (b) once the session has already ended, Warn On Close should shut up. check-in: ab6d1303e3 user: simon tags: trunk
2003-04-11
13:44
When I implemented the GTK messagebox() function and everything that needed to use it, I completely forgot about askappend(). D'oh. check-in: 3e873ea700 user: simon tags: trunk
13:36
Rationalisation of the system of frontend handles. Most modular bits of PuTTY (terminal, backend, logctx etc) take a `void *' handle passed to them from the frontend, and used as a context for all their callbacks. Most of these point at the frontend structure itself (on platforms where this is meaningful), except that the handle passed to the backend has always pointed at the terminal because from_backend() was implemented in terminal.c. This has finally bitten Unix PuTTY, because both backend and logctx have been passing their respective and very different frontend handles to logevent(), so I've fixed it. from_backend() is now a function supplied by the _frontend_ itself, in all cases, and the frontend handle passed to backends must be the same as that passed to everything else. What was from_backend() in terminal.c is now called term_data(), and the typical implementation of from_backend() in a GUI frontend will just extract the terminal handle from the frontend structure and delegate to that. This appears to work on Unix and Windows, but has most likely broken the Mac build. check-in: 70ba0246e2 user: simon tags: trunk
13:15
Implement Warn On Close. check-in: 2ae43e06b7 user: simon tags: trunk
13:10
`Copy All' ought to de-highlight any existing selection, in line with any other operation that shifts the X selection to stuff other than the highlighted text. check-in: 6541124864 user: simon tags: trunk
12:59
`Copy All' context-menu item, for what it's worth. check-in: b75870b6d0 user: simon tags: trunk
12:42
Saving of Default Settings under Unix was broken, because mungestr() was translating NULL into "Default Settings" but not doing the same to "". Now fixed. check-in: 60fa437889 user: simon tags: trunk
12:40
Cutting and pasting from the Unix Event Log. check-in: 26feaa9728 user: simon tags: trunk
12:39
A poster on comp.security.ssh mentions that he had expected to find the location of PuTTY's data storage mentioned in the manual section about loading and storing sessions. This seems not unreasonable, so I've put it there. check-in: 9a7bf85793 user: simon tags: trunk
2003-04-10
13:00
Implemented Change Settings under Unix. We are gradually getting there. check-in: bc0d66460b user: simon tags: trunk
06:57
All the stderr messages in this file now use appname rather than guessing wrongly. check-in: bad4bd5783 user: simon tags: trunk
03:53
Minor improvements to subsidiary window placement; with any luck the Event Log should go off the side of the screen rather less often now. check-in: 6843a0d490 user: simon tags: trunk
2003-04-09
13:46
Event Log for Unix PuTTY. Doesn't yet allow X selection of its contents, and doesn't automatically maintain scroll position at the bottom when new entries are added while the list is open, but it's a start. check-in: e121761c3c user: simon tags: trunk
06:19
Remote-to-local port forwarding in SSH2 was apparently completely broken! We were expecting the peer address/port in the incoming packet _before_ the connected address/port, which is just wrong. I wonder how I managed to mess that up. check-in: ccc0edfdd6 user: simon tags: trunk
06:18
`dynamic' was uninitialised in other types of port forwarding. Oops. check-in: 31ab5ac85c user: simon tags: trunk
04:09
Chas Honton's patch to dynamic port forwarding: should allow longer host names in SOCKS 4A, up to 255 characters (which is apparently the DNS limit anyway). check-in: 57a65eb3b0 user: simon tags: trunk
2003-04-08
09:02
Rename pterm's -T option to -title, to avoid clashing with PuTTY's -T (don't allocate a pty) option. check-in: be7fc2e743 user: simon tags: trunk
08:49
While writing gtkdlg.c I learned how to specify a window's initial position in GTK, so I can now implement the other half of -geometry which I'd previously believed to be impossible in GTK. It's still not perfect, because GTK apparently provides no way for us to get hold of the X reparent event in order to support negative geometries in a manner which takes account of the WM borders; but for positive position it's at least an improvement on the previous version! check-in: 026dce549a user: simon tags: trunk
2003-04-06
09:11
Now that we have `appname', make much wider use of it. In particular, the config box uses it in place of the word `PuTTY', which means mid-session reconfig in pterm will look less strange once I implement it. Also, while I'm at it, I've personalised all the dialog boxes and menu items and suchlike so that PuTTYtel actually claims to be PuTTYtel rather than PuTTY. check-in: 9f2b96b3a4 user: simon tags: trunk
08:27
To avoid gratuitous flicker, if a control already has the focus when it's clicked in, don't attempt to move the focus at all. check-in: c388e816ee user: ben tags: trunk
2003-04-05
16:12
Const fallout, as predicted. check-in: 0517c2308b user: ben tags: trunk
16:10
Bring list of applications and architectures up to date. check-in: a289f393f8 user: ben tags: trunk
16:03
dd support for list boxes in Mac OS 8. Not entirely solid, but largely working. [ bits missed in the first commit ] check-in: 8077426a60 user: ben tags: trunk
16:00
Add support for list boxes in Mac OS 8. Not entirely solid, but largely working. check-in: 772204cccf user: ben tags: trunk
13:52
Bah. There's always one I forget to `cvs add'. check-in: ac3b232fe1 user: simon tags: trunk
12:00
On System 7, draw the default ring in grey if the window is disabled. This isn't _quite_ right, since it uses a b/w dither everywhere, whereas it should use grey on colour screens. That would involve mucking around with DeviceLoop, though, and I'm not sure I can be bothered. check-in: 0d2e7b8db3 user: ben tags: trunk
11:19
Handle Return and Escape keys in dialogue box, triggering the default and cancel buttons respectively. check-in: 4109f8092e user: ben tags: trunk
10:36
Fixed the printing and charset combo boxes in Unix PuTTY. (The former by simply removing it; the latter by adding an enumeration function to libcharset.) This has had slight `const' repercussions on cp_name() and cp_enumerate() which might break the Mac build. check-in: 6c4b46bcec user: simon tags: trunk
10:12
Unix can't sensibly enumerate printers (since they're defined as being lpr commands), so the Unix config box now replaces the printer combo box with an ordinary edit box. check-in: 7d4d9177e1 user: simon tags: trunk
10:05
Ctrl+rightclick now pops up a context menu in Unix PuTTY and pterm. This menu is not yet fully populated, but it has an About box (yet another licence location :-/ ) and supports the new configurable specials menu (thus making Unix PuTTY do one tiny thing which OpenSSH-in-a-pterm can't :-). check-in: b7304dcb60 user: simon tags: trunk
09:55
Cope with NULL labels in every control where it makes sense, and assert that all other labels are != NULL. check-in: 8618c63b89 user: ben tags: trunk
09:08
Send EVENT_VALCHANGE when a System 7 editbox gets typed in. check-in: d7d2a4203a user: ben tags: trunk
09:01
Implement dlg_end(). check-in: 3d5125aebd user: ben tags: trunk
08:34
Implement update_special_menu(), which calls mac_adjustmenus() as appropriate. Eventually, mac_adjustmenus() will handle populating the Specials menu. check-in: d34a83dcea user: ben tags: trunk
08:32
Add null_get_specials(), for both null and loop backends. check-in: 03b524f1d3 user: ben tags: trunk
05:52
... of course, it would help if I remembered to _document_ dynamic port forwarding. Ahem. check-in: 68bff8db5c user: simon tags: trunk
05:45
Dynamic port forwarding by means of a local SOCKS server. Fully supports SOCKS 4, SOCKS 4A and SOCKS 5 (well, actually IPv6 in SOCKS 5 isn't supported, but it'll be no difficulty once I actually get round to it). Thanks to Chas Honton for his `stone soup' patch: I didn't end up actually using any of his code, but it galvanised me into doing it properly myself :-) check-in: 9c2b8c4c52 user: simon tags: trunk
2003-04-04
14:21
Turned the old `Telnet Command' System-submenu into a more general `Special Command' menu, in which any backend can place its own list of magical things the user might want to ask the backend to do. In particular I've implemented the recently proposed "break" extension in SSH2 using this mechanism. NB this checkin slightly breaks the Mac build, since it needs to provide at least a stub form of update_specials_menu(). check-in: 53746610b8 user: simon tags: trunk
05:22
This script has been unnecessary for some time; since the config box revamp, accelerator clashes have been checked for at run-time. check-in: 05611b4f8b user: jacob tags: trunk
2003-04-03
17:18
Implement columns, based loosely on Simon's Windows implementation. Now this actually _looks_ like PuTTY. check-in: 0b67e0dffc user: ben tags: trunk
2003-04-02
03:20
Another item for the release checklist: don't forget to save the link maps of the release binaries. check-in: 582f3daf86 user: simon tags: trunk
03:14
Further .cvsignore updates. check-in: 8d950dc81d user: simon tags: trunk
03:14
Extra bit of pre-release fiddling for the checklist. check-in: 3af0835fab user: simon tags: trunk
02:44
Improvements to .cvsignore, to attempt to reduce the huge number of ? lines I see when running `cvs update', which in turn might help deal with my tendency to forget to `cvs add' new files before a big checkin :-) check-in: 6859cb4d59 user: simon tags: trunk
2003-04-01
12:10
Various error-handling fixes, mostly in Unix PuTTY but one (failure to save a session) crosses over into the platform-independent side. check-in: 98cf799b26 user: simon tags: trunk
2003-03-31
07:15
Make sure the socket is closed properly in the various SSH exit paths. check-in: 951d79cdac user: simon tags: trunk
06:57
Trivial segfault fix from Richard B. check-in: ecdb0cdfd6 user: simon tags: trunk
06:11
Ahem; update the TODO to reflect the cmdline changes :-) check-in: 9951432bf1 user: simon tags: trunk
06:10
Support for PuTTY-style command-line arguments in Unix PuTTY. I think it's now actually usable as a day-to-day SSH client, even if things like the Event Log are still missing. So I call that a decent lunch hour's work :-) check-in: a52454784c user: simon tags: trunk
06:10
pterm.c now relies on backend `exitcode' functions returning <0 when the session is still connected, and not returning an exit code until after it's finished. check-in: a2d003020b user: simon tags: trunk
05:42
And everyone's favourite cosmetic change: Unix PuTTY now doesn't claim to be pterm in the window title :-) check-in: 3fdcb83acc user: simon tags: trunk
05:36
Can now save and load settings under Unix. check-in: f0c65e843f user: simon tags: trunk
05:22
Ahem; fix `bombout' so it passes the correct frontend handle to connection_fatal(). check-in: e2d4e935f5 user: simon tags: trunk
05:22
Fix a _very_ subtle segfault in my two GTK container classes: the `forall' function has to be prepared for the list of widgets to change along the way if (for example) the callback function destroys its input widget. check-in: c74eba86e2 user: simon tags: trunk
05:21
Checkin of last night's work on GTK message boxes. Unix PuTTY now has proper GUI prompts for host keys etc, so it should now be usable without a controlling tty. check-in: 8222ee8773 user: simon tags: trunk
2003-03-30
08:24
Correct the size of editboxes under Mac OS 8. check-in: c478abfae1 user: ben tags: trunk
2003-03-29
18:45
Crude keyboard support for System 7 editboxes. check-in: 0cc1580126 user: ben tags: trunk
17:57
The entropy pool is full of unsigned ints, not longs. check-in: 254a7781a2 user: ben tags: trunk
17:07
Move the Mac port over to using snew/snewn/sresize. check-in: fbbea4dbd6 user: ben tags: trunk
17:05
In a couple of places, snewn() was being asked for an array of char which was then assigned to an unsigned char * variabe. This fixes that. check-in: 8f705367ec user: ben tags: trunk
16:04
Convert the System 7 static text control to be a read-only version of the editbox control. This means that it has a persistent edit record, can have its height measured and uses the system font by default, all of which are good. check-in: 3bf16984de user: ben tags: trunk
14:16
Add support for labels on editboxes and radios. check-in: da1b322262 user: ben tags: trunk
13:52
Having created and used uxsel, it actually turns out to be practically trivial to put all the pieces together and create a working prototype of Unix PuTTY! It's missing a lot of things - notably GUI request boxes for host keys and logfiles and so forth, the Event Log, mid-session reconfiguration, session loading and saving, sensible population of the character sets drop-down list and probably other fiddly little things too - but it will put up a config box and then create a GUI window containing an SSH connection to the host you specified, so it's _basically_ there. Woo! check-in: c069c8a0c8 user: simon tags: trunk
12:32
Add input-focus support for System 7, where the Control Manager can't do it itself. Also clean up Carbon builds. check-in: 8e0fe25d39 user: ben tags: trunk
12:31
Add the System 7 editbox CDEF, which I seem to have forgotten. check-in: afc128115e user: ben tags: trunk
12:30
pterm now uses the new uxsel module, so it's one step closer to being able to be a PuTTY as well as a pterm. In the process I've also moved icky things like actually reading from the pty fd and printing the `terminated on signal' messages into pty.c where they obviously should have been in the first place. Also there's been one interesting repercussion in the terminal code: terminal.c's from_backend now calls term_out() directly rather than expecting the front end to call it afterwards. This has had the entertaining side effect of fixing a Windows-specific bug whereby activity in a port forwarding through a PuTTY with a blinking cursor caused the cursor to blink to ON (!!!!). So, a surprisingly far-reaching checkin as it turns out... check-in: b384cf23f7 user: simon tags: trunk
11:07
I'm sick of having to type (cd ..; perl mkfiles.pl) when I'm working on Unix. So now mkfiles.pl will look in .. as well as . when searching for Recipe, so I can run `perl ../mkfiles.pl' and it will Just Work. check-in: 28a1a156b1 user: simon tags: trunk
10:47
Added uxsel.c, into which I've moved those parts of the uxnet.c functionality that deal with selectable fds in general. The idea is that pty.c will stop passing its fd straight to pterm.c and hand it to this module instead, and pterm.c will start requesting a general list of fds from this module rather than expecting a single one from pty.c, with the ultimate aim of pterm.c being able to form the basis of a Unix PuTTY as well as pterm proper. check-in: b740285f7b user: simon tags: trunk
10:14
Introduced wrapper macros snew(), snewn() and sresize() for the malloc functions, which automatically cast to the same type they're allocating the size of. Should prevent any future errors involving mallocing the size of the wrong structure type, and will also make life easier if we ever need to turn the PuTTY core code from real C into C++-friendly C. I haven't touched the Mac frontend in this checkin because I couldn't compile or test it. check-in: 48c3c19745 user: simon tags: trunk