Jacob Nevins [Tue, 15 Feb 2005 12:35:59 +0000 (12:35 +0000)]
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.)
Jacob Nevins [Mon, 14 Feb 2005 11:43:27 +0000 (11:43 +0000)]
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.
Simon Tatham [Mon, 14 Feb 2005 07:41:41 +0000 (07:41 +0000)]
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.
Owen Dunn [Wed, 9 Feb 2005 21:18:44 +0000 (21:18 +0000)]
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.
Simon Tatham [Wed, 9 Feb 2005 15:57:07 +0000 (15:57 +0000)]
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.
Simon Tatham [Mon, 7 Feb 2005 20:24:13 +0000 (20:24 +0000)]
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.
Simon Tatham [Sun, 6 Feb 2005 15:52:00 +0000 (15:52 +0000)]
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.
Simon Tatham [Sun, 6 Feb 2005 15:14:34 +0000 (15:14 +0000)]
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.
Simon Tatham [Sat, 5 Feb 2005 15:33:36 +0000 (15:33 +0000)]
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.
Owen Dunn [Sat, 5 Feb 2005 14:50:42 +0000 (14:50 +0000)]
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.
Simon Tatham [Sat, 5 Feb 2005 10:55:09 +0000 (10:55 +0000)]
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*.
Ben Harris [Wed, 2 Feb 2005 23:51:58 +0000 (23:51 +0000)]
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.
Owen Dunn [Sun, 30 Jan 2005 14:10:05 +0000 (14:10 +0000)]
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.
Owen Dunn [Sat, 29 Jan 2005 22:50:18 +0000 (22:50 +0000)]
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.
Ben Harris [Fri, 28 Jan 2005 13:47:37 +0000 (13:47 +0000)]
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.
Ben Harris [Fri, 28 Jan 2005 11:39:45 +0000 (11:39 +0000)]
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.
Ben Harris [Wed, 26 Jan 2005 20:18:33 +0000 (20:18 +0000)]
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.
Ben Harris [Sun, 23 Jan 2005 14:31:08 +0000 (14:31 +0000)]
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.
Ben Harris [Sat, 22 Jan 2005 16:06:21 +0000 (16:06 +0000)]
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.
Ben Harris [Sat, 22 Jan 2005 13:32:41 +0000 (13:32 +0000)]
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.
Ben Harris [Mon, 17 Jan 2005 16:38:55 +0000 (16:38 +0000)]
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.
Ben Harris [Sun, 16 Jan 2005 14:43:12 +0000 (14:43 +0000)]
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.
Ben Harris [Sat, 15 Jan 2005 20:39:27 +0000 (20:39 +0000)]
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.
Ben Harris [Fri, 14 Jan 2005 12:26:38 +0000 (12:26 +0000)]
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.
Simon Tatham [Tue, 11 Jan 2005 19:33:41 +0000 (19:33 +0000)]
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.
Ben Harris [Tue, 11 Jan 2005 16:33:08 +0000 (16:33 +0000)]
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.
Simon Tatham [Tue, 11 Jan 2005 10:45:43 +0000 (10:45 +0000)]
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.
Simon Tatham [Tue, 11 Jan 2005 10:37:55 +0000 (10:37 +0000)]
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.
Simon Tatham [Sun, 9 Jan 2005 14:55:55 +0000 (14:55 +0000)]
sk_namelookup() on Unix was failing to translate from our platform-
independent ADDRTYPE_* constants to real AF_* ones, causing explicit
protocol specification to fail.
Owen Dunn [Sun, 9 Jan 2005 14:27:48 +0000 (14:27 +0000)]
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().)