Simon Tatham [Fri, 26 Jan 2001 18:50:13 +0000 (18:50 +0000)]
Fix the SSH2 key re-exchange bug. Session id != exchange hash,
because the session id is the exchange hash from the _first_ key
exchange, so in subsequent key exchanges they're different.
Simon Tatham [Wed, 24 Jan 2001 14:08:20 +0000 (14:08 +0000)]
Rethink the whole line discipline architecture. Instead of having
multiple switchable line disciplines, we now have a single unified
one which changes its behaviour based on option settings. Each
option setting can be suggested by the back end and/or the terminal
handler, and can be forcibly overridden by the configuration. Local
echo and local line editing are separate, independently switchable,
options.
Simon Tatham [Wed, 24 Jan 2001 10:11:18 +0000 (10:11 +0000)]
Improve socket error handling so that a socket error isn't an
automatic fatalbox(). Instead, the error is passed to the receiver
routine, which can decide just how fatal the problem really is.
Simon Tatham [Wed, 24 Jan 2001 09:29:55 +0000 (09:29 +0000)]
Ahem. The log-file Browse button should set cfg.logfilename and not
cfg.keyfile. Next time I copy and paste a huge chunk of code, I
should take more care about it :-/
Simon Tatham [Tue, 23 Jan 2001 10:19:17 +0000 (10:19 +0000)]
Fix a subtle bug affecting multiple-socket handling in Plink. (Was
interfering with X forwarding.)
Details of bug: the event object used as the target of
WSAEventSelect is created in such a way that it is automatically
reset when it releases a thread from WaitFor*Objects. Subsequently,
a read on the first socket in the list causes another network event
if not all the available data was read; thus the event object is set
again. Then, WSAEnumNetworkEvents is called again for the _second_
socket, and is passed the network event, which it therefore resets.
So an event has been dropped, and things only get restarted when
some more data arrives on the first socket.
Simon Tatham [Mon, 22 Jan 2001 17:17:26 +0000 (17:17 +0000)]
Jeremy Sawicki's fix for the multiple-conflicting-accelerators
problems: controls are now destroyed and recreated on a panel
switch. In addition, this patch also introduces a better means of
doing the group boxes.
Simon Tatham [Fri, 19 Jan 2001 10:10:37 +0000 (10:10 +0000)]
Experimental Rlogin support, thanks to Delian Delchev. Local flow
control is unsupported, and server-to-client comms may fail for want
of working TCP Urgent.
Simon Tatham [Wed, 17 Jan 2001 17:25:58 +0000 (17:25 +0000)]
The `wrapnext' variable now states whether we _would_ wrap next
character if we were wrapping, not whether we _will_ wrap next
character. Makes for saner behaviour with vertical-line cursor and
also when changing autowrap mode while on rightmost column. Does
entail small behavioural changes to backspace and destructive-
backspace when in rightmost column with Auto Wrap off, but I don't
think they should be catastrophic, or indeed that there's a well
defined Right Behaviour.
Simon Tatham [Wed, 17 Jan 2001 17:20:28 +0000 (17:20 +0000)]
Tidy up that latest checkin. PS_DOTTED is spelled PS_DOT and in any
case doesn't really cut it; we have to SetPixel every other one
manually because although PS_ALTERNATE exists it only works under
NT. Meanwhile, IDC_CURSTATIC was already used, for the cursor
_keys_. Duh.
Simon Tatham [Mon, 8 Jan 2001 13:57:45 +0000 (13:57 +0000)]
Ensure ssh specials (EOF and PING) don't occur except in connection
states where they're meaningful. In case Plink misses an EOF by
attempting to send it before reaching SSH_STATE_SESSION, it is
buffered and sent later. PINGs can be sent during any part of the
initialisation phase _except_ before deciding whether to use
protocol 1 or 2.
Simon Tatham [Sun, 7 Jan 2001 19:15:59 +0000 (19:15 +0000)]
Fix for spurious Space getting sent when alt_space and alt_only are
both set and you bring up the Sysmenu with an alt_space and dispatch
it with an alt_only. (The SYSKEYDOWN for alt_only is never received,
but we get the SYSKEYUP which PostMessages the space since it
expects to be triggering the _creation_ of a sysmenu. Solution: set
alt_state to 0 when an alt_space triggers a sysmenu, so that the
final SYSKEYUP will be seen as spurious, which it is. Perhaps we
could do this better.)
Simon Tatham [Tue, 12 Dec 2000 10:33:13 +0000 (10:33 +0000)]
Make memory management uniform: _everything_ now goes through the
smalloc() macros and thence to the safemalloc() functions in misc.c.
This should allow me to plug in a debugging allocator and track
memory leaks and segfaults and things.
Simon Tatham [Sat, 2 Dec 2000 12:48:15 +0000 (12:48 +0000)]
Improve SSH2 host key abstraction into a generic `signing key'
abstraction, so as to be able to re-use the same abstraction for
user authentication keys and probably in the SSH2 agent (when that
happens) as well.
Simon Tatham [Sat, 2 Dec 2000 11:43:25 +0000 (11:43 +0000)]
Fix bugtraq 1949: server could open an agent forwarding channel even
if agent forwarding had not been negotiated on, and more
particularly even if it had been deliberately disabled by the user.
Simon Tatham [Wed, 1 Nov 2000 19:54:46 +0000 (19:54 +0000)]
Move dprintf and the debug system out into misc.c, to centralise it.
Saves binary space and also allows redirection of debug statements
to a file `debug.log'.
Simon Tatham [Wed, 25 Oct 2000 14:29:28 +0000 (14:29 +0000)]
Impose a lower limit of 256 on key lengths. This is mostly because
the primegen() function doesn't work well with <100 bits, so RSA
keys need to be >=200 to be generated correctly, and I thought 256
was a nice round number beyond that just to be sure. Perhaps I
should also have a security warning on any key less than 768; or
perhaps I should let people shoot themselves in the feet if they
really want to.
Simon Tatham [Wed, 25 Oct 2000 14:20:47 +0000 (14:20 +0000)]
Gaaah, I might have known. Split combined app cursor / app keypad
disablement option into two options so the app cursor keys and app
keypad can be controlled separately. The Pedantic Software Award in
this case goes to the Midnight Commander for its egregious failure
to just use the terminal in Perfectly Normal mode.