Simon Tatham [Sun, 12 Jan 2003 13:44:35 +0000 (13:44 +0000)]
Each platform's implementation of askappend() is no longer required
to consult cfg.logxfovr, because it gets done once in logging.c.
askappend() is now called only when a question _really_ needs to be
asked of the user. Also in this checkin, cleanup_exit() in console.c
no longer consults cfg.protocol to decide whether to save the random
seed, because random_save_seed() can make that decision for itself
and do it better.
Ben Harris [Sun, 12 Jan 2003 13:06:59 +0000 (13:06 +0000)]
Cute though DNSAddresses are, they're a poor match for the model the
rest of PuTTY has of DNS resolution, so I've replaced them with something
more conventional. Sorry.
The new code has the advantage of working, of course.
Ben Harris [Sun, 12 Jan 2003 01:24:03 +0000 (01:24 +0000)]
Change error handling to store the error number rather than the string,
and to convert to a string only on demand. This makes it possible to have
the string contain the error number if we don't recognise it.
Ben Harris [Sat, 11 Jan 2003 19:43:59 +0000 (19:43 +0000)]
Add an indirection layer between mtcpnet.c and the rest of PuTTY so that
we can have runtime switching between MacTCP and OpenTransport, and so
that we can cope if there's no TCP/IP stack available at all (albeit with
very little functionality at present).
Ben Harris [Sat, 11 Jan 2003 17:36:24 +0000 (17:36 +0000)]
Calling plug_closing() is highly likely to result in a call to sk_close(),
so arrange that mactcp_poll() can cope with that and not access freed memory
when it happens.
Ben Harris [Sat, 11 Jan 2003 17:31:59 +0000 (17:31 +0000)]
When polling MacTCP connections, check the connection state and if the far
end has sent a FIN pass that up to the plug.
TODO: handle less graceful connection closures.
Simon Tatham [Sat, 11 Jan 2003 10:05:29 +0000 (10:05 +0000)]
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.
Simon Tatham [Sat, 11 Jan 2003 09:31:54 +0000 (09:31 +0000)]
Support XDM-AUTHORIZATION-1 for connecting to local X servers. If
we're going to be a security program, we can at least make a token
effort to use the most secure local X auth available! And I'm still
half-tempted to see if I can support it for remote X servers too...
Simon Tatham [Fri, 10 Jan 2003 18:33:35 +0000 (18:33 +0000)]
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.)
Ben Harris [Thu, 9 Jan 2003 22:39:47 +0000 (22:39 +0000)]
Take advantage of having control over the default font to do the job properly:
ask the system script what it's preferred monospaced font is, and use that
if possible. Failing, that, try the Roman script system, and if that fails,
fall back to Monaco 9.
Ben Harris [Thu, 9 Jan 2003 19:26:39 +0000 (19:26 +0000)]
Install a notification procedure (ASR) on each TCP connection that wakes
PuTTY up when something happens. This should allow it to receive data without
having to poll for it continuously.
Simon Tatham [Thu, 9 Jan 2003 19:26:12 +0000 (19:26 +0000)]
Remove the diagnostic added in rev 1.42 [r2288]; apparently it's all
true and WinSock _does_ occasionally send us netevent messages with
no socket for no reason. Ignore them when they appear.
Simon Tatham [Thu, 9 Jan 2003 18:06:29 +0000 (18:06 +0000)]
I'm sick of all those #ifdefs in settings.c, and in any case plink
and pterm need at least one default setting to be _different_ (pterm
needs the default term type to be `xterm', while plink needs it to
be taken from $TERM). So here's a completely new alternative
mechanism for platform- and app-specific default settings. Ben will
probably want to check the integrity of the Mac port, since I've
fiddled with it without testing that it still compiles.
Ben Harris [Wed, 8 Jan 2003 22:48:57 +0000 (22:48 +0000)]
The CFM-68K build isn't working at the moment (we blow past its global data
limit what with libcharset and the crypto stuff), so don't include it in
"all".
Ben Harris [Wed, 8 Jan 2003 22:46:12 +0000 (22:46 +0000)]
Fairly major hackery to get SSH going on the Mac. Half the support
functions are only dummy stubs, but it's still minimally usable. At
least, as long as you don't want to do anything complex like logging out.
Simon Tatham [Wed, 8 Jan 2003 09:15:56 +0000 (09:15 +0000)]
We just got mailed a Dr Watson log which suggests I failed to
initialise term->paste_len during initialisation, and indeed looking
at the code confirms this. I'm puzzled as to why valgrind didn't
spot this in pterm, though, since it's all in cross-platform code!
Simon Tatham [Tue, 7 Jan 2003 13:09:56 +0000 (13:09 +0000)]
Ahem. Now pterm actually uses wc_to_mb in a situation where it needs
to pass in a default character, it would help if wc_to_mb actually
_honoured_ the default-character parameter.
Ben Harris [Mon, 6 Jan 2003 21:46:56 +0000 (21:46 +0000)]
It looks like Visual C (or whatever the Windows snapshots are built with)
objects to incomplete static array declarations, which I introduced to work
around a bug in SC/MrC. Use #ifdefs to decide whether to enable the workaround
or not.
Ben Harris [Sun, 5 Jan 2003 23:28:02 +0000 (23:28 +0000)]
Move prototypes for base64_decode_atom(), base64_lines(), and base64_encode()
from import.c to ssh.h, so that the implementation can see them. This
necessitates ssh.h's including <stdio.h>.
Also remove a spare prototype for base64_encode_atom() from import.c.
Ben Harris [Sun, 5 Jan 2003 23:01:43 +0000 (23:01 +0000)]
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.
Ben Harris [Sun, 5 Jan 2003 13:57:09 +0000 (13:57 +0000)]
SC (Apple's 68K C compiler) seems to treat tentative definitions of complete
arrya as full definitions, and hence gets upset when it finds a full definition
later. This is a bug (see K&R2 A10.2), but an easy one to work around by
making the tentative definitions incomplete, so I've done that.
Ben Harris [Sun, 5 Jan 2003 13:43:02 +0000 (13:43 +0000)]
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.
Ben Harris [Sun, 5 Jan 2003 12:53:38 +0000 (12:53 +0000)]
Add reception support for MacTCP. Now I can log in over TELNET, just about.
There are still lots of things to fix, like urgent data or the fact that
everything seems to happen one keypress too late, but this is an important
milestone.
Ben Harris [Sat, 4 Jan 2003 19:51:20 +0000 (19:51 +0000)]
Beginnings of a MacTCP network layer. This has all of the DNS interface
present, including stuff to find and load the MacTCP DNR. Actually making
a TCP connection is still unimplemented, though, and much testing remains
to be done.
Ben Harris [Sat, 4 Jan 2003 19:01:45 +0000 (19:01 +0000)]
Add a vsnprintf() for the Mac, which doesn't have one of its own. This is
the NetBSD kernel printf, which is integer-only and under a Berkeley-style
(now 3-clause) copyright owned by UCB. This has only been compile-tested,
but almost all of my changes were in the definitions at the top (the exception
being to remove tty output). This lacks 64-bit support because the Apple
68K C compiler, SC, lacks it too.
Ben Harris [Sat, 4 Jan 2003 17:24:49 +0000 (17:24 +0000)]
Provide a version of stricmp() and strnicmp() for Mac OS, which doesn't have
its own. These are from NetBSD's libc, and have a standard (now 3-clause)
Berkeley licence.
Also provide a definition of DWORD and a better definition of BYTE.
Ben Harris [Sat, 4 Jan 2003 16:42:53 +0000 (16:42 +0000)]
Hammer out some char * vs unsigned char * problems. In general, I've kept
any buffers used internally by telnet.c as unsigned char, and cast to/from
char * when interacting with the rest of PuTTY. Not actually tested, since
I'm some way from actually being able to link this yet.
Also clean up a couple of style warnings from Apple's compilers.
Ben Harris [Sat, 4 Jan 2003 00:48:13 +0000 (00:48 +0000)]
Re-arrange the sums in the size tip code so as to ensure that we're always do
division on positive numbers, hence avoiding nasty problems of rounding
towards zero when I wanted rounding down.
Ben Harris [Sat, 4 Jan 2003 00:13:18 +0000 (00:13 +0000)]
Correct handling of Mac OS 8.5 Window Manager and Control Manager. The new
functions turn out to be available only to PowerPC applications, through
WindowsLib and ControlsLib respectively, so we weak-link against those in
the obvious way.
Ben Harris [Thu, 2 Jan 2003 23:52:44 +0000 (23:52 +0000)]
Any Mac that can handle CFM-68K code must have at least a 68020 CPU, and hence
be equipped with Color QuickDraw, as are all PowerPC systems. Hence, don't
bother with support for basic QuickDraw in the CFM-68K and PowerPC builds.
Simon Tatham [Thu, 2 Jan 2003 16:56:29 +0000 (16:56 +0000)]
A better solution to the problem of duplicated positions in
CS_ISO8859_1_X11: where two SBCS positions map to the same Unicode
code point, we now have a `sortpriority' hint which can tell
sbcsgen.pl which one it should preferentially generate when
converting back to SBCS.
Simon Tatham [Thu, 2 Jan 2003 16:20:29 +0000 (16:20 +0000)]
CJK cleanups. Correct handling when the cursor is covering the
right-hand half of a CJK wide character; correct handling of cut and
paste when CJK text wraps between lines _irrespective of the parity
of the starting column_; correct handling of wordness values
irrespective of which half of a CJK character the user
double-clicked on; correct handling when any terminal activity
overwrites only one half of a CJK wide character. I think we now
behave marginally better than xterm in this respect (it has a redraw
problem when you overwrite the RH half of a CJK char), so I'm happy.
Also redefined the internal UCSWIDE marker to something in the
surrogate range, while I'm here, so that U+303F is available for use
by actual users.
Simon Tatham [Thu, 2 Jan 2003 16:17:56 +0000 (16:17 +0000)]
Fixes to direct-to-font mode: I'd inadvertently enabled it for any
font whose encoding comes up as CS_NONE - but this is also true for
iso10646-1 fonts, since libcharset doesn't support wide-character
encodings! Hence UTF-8 cut and paste was enabled in ordinary modes,
but disabled in UTF-8 mode, which was a bit embarrassing. Now we
have a dedicated flag variable indicating direct-to-font mode.
Simon Tatham [Thu, 2 Jan 2003 11:14:35 +0000 (11:14 +0000)]
Fix `telnet-resize-iac'. (IAC bytes were not duplicated when they
occurred in a NAWS subnegotiation. Result: a terminal width or
height of 255 was not being correctly sent to the server.)
Simon Tatham [Thu, 2 Jan 2003 10:45:56 +0000 (10:45 +0000)]
A couple of X forwarding fixes for Unix Plink. Firstly, under Unix
the default X display should be whatever comes out of $DISPLAY,
rather than Windows's hardwired `localhost:0'. Secondly, this may
give rise to a display name without a hostname (`:0' or similar),
which we now need to be able to deal with. Of course, we still don't
_properly_ support X forwarding in Unix Plink, since we still can't
authenticate with the local display.