1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00
Commit Graph

369 Commits

Author SHA1 Message Date
Jacob Nevins
27193c4bf0 Improved diagnostics in port-forwarding: we now log any error returned by
pfd_addforward() rather than just ignoring it.

[originally from svn r4529]
2004-09-03 13:46:39 +00:00
Jacob Nevins
47997ad904 In SSH-2, list each compression algorithm only once. (No particular reason
for this change, just tidiness.)

[originally from svn r4528]
2004-09-03 12:28:19 +00:00
Simon Tatham
e2cd7e404e 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.

[originally from svn r4516]
2004-08-28 16:51:26 +00:00
Jacob Nevins
1af5523edc 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.)

[originally from svn r4476]
2004-08-17 14:08:05 +00:00
Simon Tatham
f16d8aff82 ssh_free() should not call log_free(); it's for the front end to
decide whether the logctx is finished with or not.

[originally from svn r4452]
2004-08-14 12:24:02 +00:00
Jacob Nevins
f17522be6c 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.

[originally from svn r4451]
2004-08-13 01:08:34 +00:00
Jacob Nevins
11f628b075 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.

[originally from svn r4392]
2004-08-03 23:43:07 +00:00
Simon Tatham
4217269931 Merged SSH1 robustness changes from 0.55 release branch on to trunk.
[originally from svn r4379]
2004-08-01 12:07:11 +00:00
Jacob Nevins
20f433efac 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.

[originally from svn r4309]
2004-06-20 17:07:38 +00:00
Simon Tatham
78dbf5df0e `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.

[originally from svn r4281]
2004-06-15 09:50:05 +00:00
Jacob Nevins
14d9628130 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).

[originally from svn r4272]
2004-06-03 10:36:27 +00:00
Jacob Nevins
3867e5956e 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.

[originally from svn r4133]
2004-04-24 20:05:03 +00:00
Simon Tatham
a326264500 Two small memory leaks, also noticed by Martin Prikryl.
[originally from svn r3752]
2004-01-21 19:41:34 +00:00
Simon Tatham
b424ea234f Martin Prikryl points out that need_pw may be used uninitialised.
[originally from svn r3751]
2004-01-21 19:33:48 +00:00
Simon Tatham
33a59e78f1 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.

[originally from svn r3726]
2004-01-18 09:14:41 +00:00
Simon Tatham
c53056f95c 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.

[originally from svn r3678]
2004-01-01 16:42:48 +00:00
Simon Tatham
7a1eae7ff2 Joe Yates's memory leak patches.
[originally from svn r3650]
2003-12-19 12:44:46 +00:00
Simon Tatham
f9f6763a0e Trivial braino in parsing of the port forwarding config data. Was
causing all port forwardings after the first dynamic one to be
ignored.

[originally from svn r3572]
2003-11-22 14:50:57 +00:00
Jacob Nevins
eebc7529ed 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.

[originally from svn r3430]
2003-08-29 22:52:57 +00:00
Jacob Nevins
92db92af5a 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()...

[originally from svn r3383]
[r2492 == bdd6633970]
2003-08-07 16:04:33 +00:00
Jacob Nevins
d534d4e104 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.)

[originally from svn r3359]
2003-07-12 13:45:21 +00:00
Simon Tatham
d02ea52abc 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.

[originally from svn r3306]
2003-06-26 13:41:30 +00:00
Ben Harris
3006ebf15c Fix a couple of memory leaks pointed out by Adam Bernstein.
[originally from svn r3262]
2003-06-14 18:27:10 +00:00
Jacob Nevins
e955cc77ce 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.

[originally from svn r3219]
2003-05-24 19:03:34 +00:00
Simon Tatham
06e6997a74 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.)

[originally from svn r3191]
2003-05-13 18:23:43 +00:00
Ben Harris
ead3dee597 Make ssh_agent_callback() and ssh_agentf_callback() static.
[originally from svn r3182]
2003-05-10 12:54:29 +00:00
Simon Tatham
6bb121ecb9 Colin's const-fixing Patch Of Death. Seems to build fine on Windows
as well as Unix, so it can go in.

[originally from svn r3162]
2003-05-04 14:18:18 +00:00
Simon Tatham
0bfe876b57 Colin's and my fixes to connection_fatal().
[originally from svn r3161]
2003-05-04 14:14:10 +00:00
Simon Tatham
f6a208fbdd 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.

[originally from svn r3153]
2003-04-28 11:41:39 +00:00
Simon Tatham
1f9c9bb00f The new ssh_do_close() function itself causes a segfault if the
connection goes foom before ssh->channels is set up. Oops. Fixed.

[originally from svn r3141]
2003-04-25 17:44:09 +00:00
Simon Tatham
2a0fff2451 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).

[originally from svn r3137]
2003-04-25 11:48:24 +00:00
Simon Tatham
041dcfd83d 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.

[originally from svn r3134]
2003-04-23 13:48:09 +00:00
Simon Tatham
717fd50963 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.

[originally from svn r3129]
2003-04-18 09:06:11 +00:00
Simon Tatham
a9c8e035dd 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.

[originally from svn r3127]
2003-04-18 09:00:16 +00:00
Simon Tatham
65fab07ad0 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.

[originally from svn r3083]
2003-04-09 11:19:39 +00:00
Simon Tatham
8a3ff2bf3e 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 :-)

[originally from svn r3055]
2003-04-05 11:45:21 +00:00
Simon Tatham
3bd0415579 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().

[originally from svn r3054]
2003-04-04 20:21:05 +00:00
Simon Tatham
09ba8ca111 Make sure the socket is closed properly in the various SSH exit paths.
[originally from svn r3037]
2003-03-31 13:15:51 +00:00
Simon Tatham
b044c350f4 Ahem; fix `bombout' so it passes the correct frontend handle to
connection_fatal().

[originally from svn r3030]
2003-03-31 11:22:30 +00:00
Ben Harris
3e4386d810 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.

[originally from svn r3023]
2003-03-29 23:05:36 +00:00
Simon Tatham
d36a4c3685 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.

[originally from svn r3014]
2003-03-29 16:14:26 +00:00
Simon Tatham
cbb126917f While I'm adding explanatory comments by the coroutine macros, it
occurs to me that would also be a good place to put a copy of the
instructions for disabling Edit and Continue debugging. Nobody
_actually_ reads the README, after all...

[originally from svn r2935]
2003-03-14 21:20:32 +00:00
Simon Tatham
9890c7a57a I've been meaning to get round to this for _ages_: in front of my
coroutine macros, I now include a comment linking to my web article
that explains what they do.

[originally from svn r2902]
2003-03-03 16:35:45 +00:00
Simon Tatham
8aa463b7a1 In merging the username and password input functions I inadvertently
removed the support for control characters in passwords. Replaced.

[originally from svn r2900]
2003-02-28 20:28:03 +00:00
Ben Harris
01105493cc Work around an SC bug that causes it to try to use the same register for
two purposes in s_wrpkt_prepare().  This makes SSH1 work on 68K Macs, at
least until I deactivate the terminal window...

[originally from svn r2876]
2003-02-23 00:13:17 +00:00
Jacob Nevins
2bb23257f2 Fix `ssh2.0.11-keyderive-nonbug' on the strength of Ben's analysis.
Not tested it myself.

[originally from svn r2861]
2003-02-18 20:10:24 +00:00
Simon Tatham
be9718cb13 Add another bug workaround, this one for old OpenSSH (<2.3) servers
which have a strange idea of what data should be signed in a PK auth
request. This actually got in my way while doing serious things at
work! :-)

[originally from svn r2800]
2003-02-04 13:02:51 +00:00
Simon Tatham
b83b9fad77 Further fallout from the introduction of the Filename type. (Memo to
self: if you change the type of a variable and everything compiles
without type-checking errors, that doesn't mean it's all fixed,
because variadic functions aren't type-checked! Oops.)

[originally from svn r2799]
2003-02-04 13:00:54 +00:00
Simon Tatham
bd16b29a7a Oops, Ben is quite right about the rather appalling design of
filename_from_str. Here's a better fix, with some const
repercussions too.

[originally from svn r2768]
2003-02-01 17:24:27 +00:00
Simon Tatham
f26b7aa0d3 Created new data types Filename' and FontSpec', intended to be
opaque to all platform-independent modules and only handled within
per-platform code. `Filename' is there because the Mac has a magic
way to store filenames (though currently this checkin doesn't
support it!); `FontSpec' is there so that all the auxiliary stuff
such as font height and charset and so on which is needed under
Windows but not Unix can be kept where it belongs, and so that I can
have a hope in hell of dealing with a font chooser in the forthcoming
cross-platform config box code, and best of all it gets the horrid
font height wart out of settings.c and into the Windows code where
it should be.
The Mac part of this checkin is a bunch of random guesses which will
probably not quite compile, but which look roughly right to me.
Sorry if I screwed it up, Ben :-)

[originally from svn r2765]
2003-02-01 12:54:40 +00:00
Simon Tatham
6aa4211f6e Remove all `enum'-typed variables from the Config structure.
Everything in there which is integral is now an actual int, which
means my forthcoming revamp of the config box will be able to work
with `int *' pointers without fear of doom.

[originally from svn r2733]
2003-01-27 18:02:24 +00:00
Ben Harris
eaf6cce661 Remove stray debugging code that got in with the last commit.
[originally from svn r2650]
2003-01-18 22:02:22 +00:00
Ben Harris
35f3ef5cc9 Clear kex_ctx in a new session so we can safely free an ssh session without
one.

[originally from svn r2649]
2003-01-18 21:56:33 +00:00
Ben Harris
694aafa071 Add the ability to close sessions. This adds *_free() functions to most
areas of the code.  Not all back-ends have been tested, but Telnet and SSH
behave reasonably.

Incidentally, almost all of this patch was written through Mac PuTTY,
admittedly over a Telnet connection.

[originally from svn r2615]
2003-01-15 23:30:21 +00:00
Simon Tatham
952857fca3 proxy.c now no longer refers to `cfg'. Instead, each of the three
proxy-indirection network functions (name_lookup, new_connection,
new_listener) takes a `const Config *' as an argument, and extracts
enough information from it before returning to handle that
particular network operation in accordance with the proxy settings
it specifies. This involved {win,ux}net.c due to a `const'
repercussion.

[originally from svn r2567]
2003-01-12 15:26:10 +00:00
Simon Tatham
5ecbac2441 There's no real need for portfwd.c to reference `cfg' directly, when
it only needs one item from it and that can easily be passed in from
the call site in ssh.c.

[originally from svn r2564]
2003-01-12 14:56:19 +00:00
Simon Tatham
f49c8c5a07 The back ends now contain their own copies of the Config structure,
and have a function to pass in a new one. (Well, actually several
back ends don't actually bother to do this because they need nothing
out of Config after the initial setup phase, but they could if they
wanted to.)

[originally from svn r2561]
2003-01-12 14:48:29 +00:00
Simon Tatham
fee1624c69 Support for XDM-AUTHORIZATION-1 at the SSH server end, making use of
the remote IP/port data provided by the server for forwarded
connections. Disabled by default, since it's incompatible with SSH2,
probably incompatible with some X clients, and tickles a bug in
at least one version of OpenSSH.

[originally from svn r2554]
2003-01-12 14:11:38 +00:00
Simon Tatham
ee54789b25 Yet _another_ `received data for nonexistent channel' bug. This time
it was because we received WINDOW_ADJUST on a channel we'd already
sent CLOSE on, and reflexively attempted to continue sending the
buffered data in response. Should now be fixed.

[originally from svn r2539]
2003-01-11 10:05:29 +00:00
Simon Tatham
86977efa81 Introduce framework for authenticating with the local X server.
Windows and Mac backends have acquired auth-finding functions which
do nothing; Unix backend has acquired one which actually works, so
Plink can now do X forwarding believably.
(This checkin stretches into some unlikely parts of the code because
there have been one or two knock-on effects involving `const'. Bah.)

[originally from svn r2536]
2003-01-10 18:33:35 +00:00
Simon Tatham
10c1d43ac6 Yikes! Forgot to zero the password after SSH2 PW authentication.
[originally from svn r2512]
2003-01-09 17:33:49 +00:00
Ben Harris
40493b20ea Use '\012' as the end of the SSH banner line, not '\n'.
Mac compilers default to making '\n' == '\015'.

[originally from svn r2493]
2003-01-07 23:05:12 +00:00
Ben Harris
bdd6633970 Initialise the "protocol" field of a new ssh_tag to NULL so Bad Things don't
happen if we try to type things before the SSH banner has been received.

[originally from svn r2492]
2003-01-07 22:45:12 +00:00
Ben Harris
88b1506298 Make ssh1_pkt_type(), ssh2_pkt_type, logeventf(), setup_userpass_input(),
process_userpass_input(), and ssh_unthrottle() static, since they're not
referenced outside this file.

[originally from svn r2475]
2003-01-05 23:01:43 +00:00
Ben Harris
3f055f22d8 Move x11fwd and portfwd prototypes from ssh.c into ssh.h so they can be seen
by (and checked against) the definitions.

[originally from svn r2474]
2003-01-05 22:53:23 +00:00
Ben Harris
7c37547df8 Deal with "possible unintended assignment" warnings.
[originally from svn r2461]
2003-01-05 13:46:13 +00:00
Ben Harris
b91ae87c78 Attack char * vs unsigned char * conversions. In most cases, I've just
gone for replacing the implicit casts with explicit ones.  Where there was
something obviously better that I could do, I've done it, though.

[originally from svn r2460]
2003-01-05 13:43:02 +00:00
Simon Tatham
368ead15bc Propagate the screen number from a local X display to the remote
forwarded one. Fixes `x11-default-screen'.

[originally from svn r2418]
2003-01-02 10:41:22 +00:00
Simon Tatham
6c34f06a71 Move the stderr output of event log messages in verbose mode to the
general logging module rather than localising it in ssh.c. This
means it should work in other protocols as well (notably Telnet,
where it might actually be useful for debugging negotiations).

[originally from svn r2360]
2002-12-19 14:24:28 +00:00
Simon Tatham
7f7e3f539c logeventf() shouldn't throw stuff at stderr, since it invokes the
ssh.c logevent _macro_ which has already done so! Duhh.

[originally from svn r2356]
2002-12-19 11:51:42 +00:00
Simon Tatham
a564ad3140 Support for doing DNS at the proxy end. I've invented a new type of
SockAddr, which just contains an unresolved hostname and is created
by a stub function in *net.c. It's an error to pass this to most of
the real-meat functions in *net.c; these fake addresses should have
been dealt with by the time they get down that far. proxy.c now
contains name_lookup(), a wrapper on sk_namelookup() which decides
whether or not to do real DNS, and the individual proxy
implementations each deal sensibly with being handed an unresolved
address and avoid ever passing one down to *net.c.

[originally from svn r2353]
2002-12-18 16:23:11 +00:00
Simon Tatham
99b870dbc6 Implement `portfwd-loopback-choice'. Works on local side in Unix as
well, though it's a lot less useful since you still can't bind to
low-numbered ports of odd loopback IPs. Should work in principle for
SSH2 remote forwardings as well as local ones, but OpenSSH seems
unwilling to cooperate.

[originally from svn r2344]
2002-12-18 11:39:25 +00:00
Simon Tatham
8cb52a26e1 BUG_SSH2_DERIVEKEY is apparently only present in SSH 2.0.11 and
before, not in 2.0.13. Verified on at least one host. Fixes bug
`ssh2-keyderive-nonbug'.

[originally from svn r2342]
2002-12-18 10:06:38 +00:00
Simon Tatham
29b0705961 logeventf()'s first argument is ssh, not ssh->frontend! This is what
I get for making the latter a `void *' - type checking deserts me in
my hour of need. Should fix Andrey Borzenkov's bug.

[originally from svn r2340]
2002-12-18 09:47:20 +00:00
Jacob Nevins
4ffd0ca9d1 Modify bug-compatibility checks to use wildcards. Should have exactly the
same behaviour as before (tested a little bit), but should be easier to
expand.
(This is the easy bit -- work still needs to be done to fix
ssh2-keyderive-nonbug, vshell-no-bug-compat, etc -- but should be easier
now.)

[originally from svn r2293]
2002-12-08 16:54:31 +00:00
Simon Tatham
75ebfa28f0 Interchange two parameters in a printf, to prevent a silly segfault.
[originally from svn r2235]
2002-11-20 19:56:10 +00:00
Simon Tatham
7c95ea19c8 Robustness fixes for KEXINIT handling and others. In particular, I've
created a self-mallocing variant of sprintf, to obviate any future
need for paranoid %.100s type stuff in format strings.

[originally from svn r2199]
2002-11-07 19:49:03 +00:00
Simon Tatham
63f793b965 valgrind has caught two more uninitialised elements in the SSH
context structure. I knew the Unix port would be a good idea!

[originally from svn r2173]
2002-11-01 12:59:09 +00:00
Simon Tatham
a5da5adc07 Move an output newline to make username entry in Plink/SSH2 look
more sensible.

[originally from svn r2168]
2002-11-01 12:53:45 +00:00
Simon Tatham
2e25b715e3 Pass int rather than char to va_arg (the latter gets promoted).
[originally from svn r2167]
2002-11-01 12:53:10 +00:00
Simon Tatham
52bdffbfe0 More preparatory work: remove the <windows.h> include from lots of
source files in which it's no longer required (it was previously
required in anything that included <putty.h>, but not any more).
Also moved a couple of stray bits of exposed WinSock back into
winnet.c (getservbyname from ssh.c and AF_INET from proxy.c).

[originally from svn r2160]
2002-10-30 17:57:31 +00:00
Simon Tatham
ce677ce258 Yikes - put back a #include I accidentally removed two revs ago!
That'd have been embarrassing. Mind you I'd like to remove this
particular #include for good anyway, but the time is not now...

[originally from svn r2158]
2002-10-29 16:54:09 +00:00
Simon Tatham
1c80391e61 Hmm. Probably best initialise mainchan as well; oops.
[originally from svn r2157]
2002-10-29 14:41:10 +00:00
Simon Tatham
7e4f9e1af0 Try actually initialising ssh->v1_compressing. With any luck this
will be what was causing Owen's crash report today.

[originally from svn r2156]
2002-10-29 13:05:20 +00:00
Simon Tatham
4756c15fc9 Yet more global-removal. The static variables in logging.c are now
absent, and also (I think) all the frontend request functions (such
as request_resize) take a context pointer, so that multiple windows
can be handled sensibly. I wouldn't swear to this, but I _think_
that only leaves the Unicode stuff as the last stubborn holdout.

[originally from svn r2147]
2002-10-26 12:58:13 +00:00
Simon Tatham
ae09bf1c95 X forwarding authentication is now invented on a per-SSH-connection
basis, so the statics are gone from x11fwd.c.

[originally from svn r2145]
2002-10-26 11:23:15 +00:00
Simon Tatham
948f95d5e8 Reorganised the Unicode layer somewhat: moved luni_send and
lpage_send out into the line discipline, making them _clients_ of
the Unicode layer rather than part of it. This means they can access
ldisc->term, which in turn means I've been able to remove the
temporary global variable `term'. We're slowly getting there.

[originally from svn r2143]
2002-10-26 11:08:59 +00:00
Simon Tatham
24530b945e Port forwarding module now passes backend handles around properly.
As a result I've now been able to turn the global variables `back'
and `backhandle' into module-level statics in the individual front
ends. Now _that's_ progress!

[originally from svn r2142]
2002-10-26 10:33:59 +00:00
Simon Tatham
0b2523eeda Line discipline module now uses dynamically allocated data. Also
fixed one or two other minor problems.

[originally from svn r2141]
2002-10-26 10:16:19 +00:00
Simon Tatham
5df8e45c2e The Zlib module now uses dynamically allocated contexts. I think
that completes the static-removal in the crypto library. Ooh.

[originally from svn r2136]
2002-10-25 13:26:33 +00:00
Simon Tatham
db7196c174 Diffie-Hellman key exchange now uses a dynamically allocated context.
[originally from svn r2135]
2002-10-25 13:08:01 +00:00
Simon Tatham
107d1d875d SSH CRC attack detector now uses a dynamically allocated context.
[originally from svn r2132]
2002-10-25 12:58:21 +00:00
Simon Tatham
8f91f07599 SSH2 MACs now use dynamically allocated contexts.
[originally from svn r2131]
2002-10-25 12:51:28 +00:00
Simon Tatham
9848062b86 SSH ciphers now use dynamically allocated contexts.
[originally from svn r2130]
2002-10-25 12:35:22 +00:00
Simon Tatham
72ff571148 Major destabilisation, phase 2. This time it's the backends' turn:
each backend now stores all its internal variables in a big struct,
and each backend function gets a pointer to this struct passed to
it. This still isn't the end of the work - lots of subsidiary things
still use globals, notably all the cipher and compressor modules and
the X11 forwarding authentication stuff. But ssh.c itself has now
been transformed, and that was the really painful bit, so from here
on it all ought to be a sequence of much smaller and simpler pieces
of work.

[originally from svn r2127]
2002-10-25 11:30:33 +00:00
Jacob Nevins
771b0299c3 Fixes for (Backend)->size() changes -- internal declarations didn't include
new arguments and neither did internal calls.

[originally from svn r2119]
2002-10-23 14:03:11 +00:00
Simon Tatham
a9bd716df8 Cleanups from yesterday's destabilisation: lots of stuff in
terminal.c was apparently relying on implicit initialisation to
zero, and also I've removed the backends' dependency on terminal.h
by having terminal sizes explicitly passed in to back->size().

[originally from svn r2117]
2002-10-23 12:41:35 +00:00
Simon Tatham
0a80c983e2 Major destabilisation, phase 1. In this phase I've moved (I think)
all the global and function-static variables out of terminal.c into
a dynamically allocated data structure. Note that this does not yet
confer the ability to run more than one of them in the same process,
because other things (the line discipline, the back end) are still
global, and also in particular the address of the dynamically
allocated terminal-data structure is held in a global variable
`term'. But what I've got here represents a reasonable stopping
point at which to check things in. In _theory_ this should all still
work happily, on both Unix and Windows. In practice, who knows?

[originally from svn r2115]
2002-10-22 16:11:33 +00:00
Simon Tatham
ace232f5fa Remove last vestiges of `buggymac' in the Config structure. Might
have been cause of a Plink bug since it no longer got initialised.

[originally from svn r1986]
2002-10-01 18:30:15 +00:00
Simon Tatham
a394f20829 Add a new SSH2 bug: some servers apparently claim to be able to do
DH group exchange, but choke when you actually try it. Never
automatically enabled; manual control only.

[originally from svn r1982]
2002-09-26 18:37:33 +00:00