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

257 Commits

Author SHA1 Message Date
Simon Tatham
fb7dd5a255 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.

[originally from svn r4236]
2004-05-22 10:36:50 +00:00
Simon Tatham
1e13fdc572 More portability fixes.
[originally from svn r4137]
2004-04-25 09:26:52 +00:00
Simon Tatham
7bd6bec8e4 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.

[originally from svn r4136]
2004-04-25 09:04:38 +00:00
Simon Tatham
2d1287b9ca 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.

[originally from svn r3762]
2004-01-22 19:15:32 +00:00
Simon Tatham
e30aed9a6f 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.

[originally from svn r3502]
2003-10-12 13:46:12 +00:00
Simon Tatham
bfb9b28393 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.

[originally from svn r3420]
2003-08-25 13:53:41 +00:00
Simon Tatham
66fa6f320e 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.)

[originally from svn r3419]
2003-08-24 13:22:17 +00:00
Simon Tatham
e0801815c8 Next phase of general SFTP reworking: psftp.c is now a platform-
independent source file. All Windowsisms have been moved out to
winsftp.c.

[originally from svn r3418]
2003-08-24 12:47:46 +00:00
Jacob Nevins
4c8bd3a8dd Oops, Ben got there first. Oh well, here's a comment.
[originally from svn r3285]
2003-06-21 21:19:21 +00:00
Ben Harris
f97b7768ab 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.

[originally from svn r3282]
2003-06-21 19:34:36 +00:00
Simon Tatham
03fa61025b 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').

[originally from svn r3164]
2003-05-06 19:52:31 +00:00
Simon Tatham
082cf832c5 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.

[originally from svn r3151]
2003-04-27 11:10:48 +00:00
Simon Tatham
dca1486602 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.

[originally from svn r3149]
2003-04-27 09:45:35 +00:00
Simon Tatham
abe4091f52 Might as well provide PuTTYtel for Unix. It's not much effort!
[originally from svn r3147]
2003-04-26 14:36:48 +00:00
Simon Tatham
cf08c5a64a 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.

[originally from svn r3064]
2003-04-05 16:36:11 +00:00
Simon Tatham
30497ff683 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 :-).

[originally from svn r3062]
2003-04-05 16:05:00 +00:00
Simon Tatham
62844b4590 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 :-)

[originally from svn r3034]
2003-03-31 12:10:53 +00:00
Simon Tatham
a3428ae953 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!

[originally from svn r3020]
2003-03-29 19:52:50 +00:00
Simon Tatham
5107780c54 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...

[originally from svn r3017]
2003-03-29 18:30:14 +00:00
Simon Tatham
b109918032 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.

[originally from svn r3015]
2003-03-29 16:47:06 +00:00
Ben Harris
53b61424bc Partial implementation of the platform-independent dialogue-box interface
for the Mac OS.  This isn't anywhere near complete, and is wrong in a few
important regards, but I think it's heading in the right direction.

[originally from svn r2953]
2003-03-17 21:40:37 +00:00
Jacob Nevins
082c3ac37f typo
[originally from svn r2948]
2003-03-16 20:18:11 +00:00
Simon Tatham
a954943023 RSA blinding requires random numbers. Hence, Pageant now needs to
have the random number generator linked in.

[originally from svn r2945]
2003-03-16 13:28:48 +00:00
Simon Tatham
616c837cf0 The long-awaited config box revamp! I've taken the whole config box
to pieces, and put it back together in a new table-driven form.
config.c sets up a data structure describing most of the config box;
wincfg.c adds in the Windows-specific options (so that config.c can
also form the basis for Mac and Unix config boxes). Then winctrls.c
contains a shiny new layout engine which consumes that data
structure, and windlg.c passes all WM_COMMAND and similar messages
to a driver alongside that layout engine. In the process I've sorted
out nicer-looking panel titles and finally fixed the list-boxes-are-
never-the-right-size bug (turned out to be Windows's fault, of
course). I _believe_ it should do everything the old config box did,
including context help. Now everyone has to test it thoroughly...

[originally from svn r2908]
2003-03-05 22:07:40 +00:00
Ben Harris
670289a8b8 Bring PuTTYgen into the world of object-oriented event handling.
Also add a non-functional "generate" button the the key window.

[originally from svn r2857]
2003-02-16 14:27:37 +00:00
Ben Harris
b1a414efa2 Actually use macabout.c.
[originally from svn r2855]
2003-02-16 13:03:33 +00:00
Ben Harris
c6a92bebfc Tiny amount of infrastructure for having actual keys in PuTTYgen.
[originally from svn r2849]
2003-02-15 14:20:43 +00:00
Ben Harris
8dcbb16ec2 Minimal shell of PuTTYgen for Mac. No actual PuTTYgen-specific code there
yet, but an absence of PuTTY-specific code.

[originally from svn r2842]
2003-02-12 23:53:15 +00:00
Ben Harris
2c10ece60d Crude Event Log implementation for the Mac. I'm fairly convinced now that
using the List Manager was entirely the wrong decision on my part, so I'll
probably rewrite this to use TextEdit at some point, but it's better than
stderr even so.

[originally from svn r2811]
2003-02-07 01:38:12 +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
Ben Harris
7b70ed6205 PuTTYtel should use be_nossh, not be_none.
While we're here, also comment the meaning of [M].

[originally from svn r2611]
2003-01-15 18:45:42 +00:00
Jacob Nevins
b5e348c872 `ssh-default': change the /DSSH_DEFAULT flag to a /DTELNET_DEFAULT one
and note its existence in Recipe. As far as I can tell there are no
documentation changes required.

[originally from svn r2608]
2003-01-15 15:22:58 +00:00
Ben Harris
f9300b0011 Initial import of Owen's OpenTransport interface. It doesn't work yet, but
it does compile and link.

[originally from svn r2547]
2003-01-11 23:33:57 +00:00
Ben Harris
4818639014 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).

[originally from svn r2546]
2003-01-11 19:43:59 +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
35cd654c75 Unix plink now catches SIGWINCH and propagates local terminal
resizes to the remote end.

[originally from svn r2515]
2003-01-09 18:28:01 +00:00
Simon Tatham
4d86f5979d 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.

[originally from svn r2513]
2003-01-09 18:06:29 +00:00
Ben Harris
697794abbf 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.

[originally from svn r2500]
2003-01-08 22:46:12 +00:00
Ben Harris
907a420878 Add some backends, a network interface and some library routines to the
Mac port.

[originally from svn r2453]
2003-01-05 00:06:25 +00:00
Ben Harris
0ea7e35008 Add a mechanism for determining which charset to use for a given Mac OS font,
and use it.

[originally from svn r2409]
2003-01-01 19:51:13 +00:00
Ben Harris
491f7be9fc Use the shiny new character-set library to handle conversion from Unicode
to Mac OS Roman for display if the Unicode Converter isn't around.  Support
for Mac character sets other than Roman (e.g. the variant used by the Apple
VT100 font) is still absent.

[originally from svn r2401]
2002-12-31 22:49:03 +00:00
Simon Tatham
ad2bbc52a4 First draft of Unicode support in pterm. It's pretty complete: it
does UTF-8 copy and paste (falling back to normal strings if
necessary), it understands X font encodings and translates things
accordingly so that if you have a Unicode font you can ask for
virtually any single-byte encoding and get it (Mac-Roman pterm,
anyone?), and so on. There's work left to be done (wide fonts for
CJK spring to mind), but I reckon this is a pretty good start.

[originally from svn r2395]
2002-12-31 12:20:34 +00:00
Ben Harris
6c1c86f23d Add a minimalist settings dialogue, which contains a single button
marked "open".  Still, it seems to work.

[originally from svn r2392]
2002-12-31 01:40:14 +00:00
Ben Harris
672404dc4e Finally add support for building Mac resource forks. This adds a new kind
of compiled resource file, .rsrc, which is built from .r, and adds mechanisms
to the MPW makefile generator to handle this.

[originally from svn r2385]
2002-12-30 14:20:25 +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
Ben Harris
e3cc8181cc Add an entry for the Mac version of PuTTY.
[originally from svn r2273]
2002-12-02 21:03:14 +00:00
Simon Tatham
93e9fadc75 RJK's general signal-handling robustness patch. Should fix the weird
spin behaviour occasionally seen after pterm's child process dies.

[originally from svn r2181]
2002-11-02 14:35:57 +00:00
Simon Tatham
0e6c1fffd9 Introduce program category U, for non-GTK-requiring Unix apps. Plink
doesn't need to be linked with libgtk, libgdk, libX11 etc!

[originally from svn r2179]
2002-11-01 18:51:55 +00:00
Simon Tatham
317180ed49 First attempt at a Unix port of Plink. Seems to basically work;
doesn't yet use the SSH agent, no way to specify arbitrary config
options, no manpage yet, couple of other fiddly things need doing,
but it makes SSH connections and doesn't fall over horribly so I say
it's a good start. Now to run it under valgrind...

[originally from svn r2165]
2002-10-31 19:49:52 +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
6d0e9b205d First phase of porting. pterm now compiles and runs under Linux+gtk.
The current pty.c backend is temporarily a loopback device for
terminal emulator testing, the display handling is only just enough
to show that terminal.c is functioning, the keyboard handling is
laughable, and most features are absent. Next step: bring output and
input up to a plausibly working state, and put a real pty on the
back to create a vaguely usable prototype. Oh, and a scrollbar would
be nice too.
In _theory_ the Windows builds should still work fine after this...

[originally from svn r2010]
2002-10-09 18:09:42 +00:00
Simon Tatham
64c52b0d30 Begin destabilisation in the wake of 0.53! This checkin contains the
beginning of a Unix port. It's nowhere near done, and currently it
won't even compile on Unix. But this represents the start of the
process of separating out platform-specific code, and also contains
the mkfiles.pl changes required to support a Unix makefile and a
non-flat source tree.

[originally from svn r1993]
2002-10-07 16:45:23 +00:00
Simon Tatham
5e49e3fe1c PuTTYgen will now start by loading a private key file if one is
provided on its command line.

[originally from svn r1810]
2002-08-06 17:48:14 +00:00
Simon Tatham
118fc8c81e Revamp of command-line handling. Most command line options should
now be processed in cmdline.c, which is called from all utilities
(well, not Pageant or PuTTYgen). This should mean we get to
standardise almost all options across almost all tools. Also one
major change: `-load' is now the preferred option for loading a
saved session in PuTTY proper. `@session' still works but is
deprecated.

[originally from svn r1799]
2002-08-04 21:18:56 +00:00
Simon Tatham
9a8c58a64b Added a framework for importing foreign key formats, and implemented
importing of OpenSSH SSH2 private key files (both encrypted and
unencrypted). Seems to work fine.

[originally from svn r1668]
2002-05-11 16:45:29 +00:00
Simon Tatham
eabd704d1e Justin Bradford's proxy support patch. Currently supports only HTTP
CONNECT, but contains an extensible framework to allow other
proxies. Apparently SOCKS and ad-hoc-telnet-proxy are already
planned (the GUI mentions them already even though they don't work
yet). GUI includes full configurability and allows definition of
exclusion zones. Rock and roll.

[originally from svn r1598]
2002-03-23 17:47:21 +00:00
Simon Tatham
a011a5edba Completely revamped mkfiles.pl which incorporates dependency
analysis (for both .c and .rc files). Generates the VC++ makefile as
well as the other two; the authoritative source is now the new file
`Recipe' rather than any particular Makefile. Note that `Makefile'
is still here as a relic of the old way until we stop the nightly
builds using it, but it'll be gone soon.

[originally from svn r1592]
2002-03-16 15:49:28 +00:00