Simon Tatham [Tue, 15 Oct 2002 16:50:42 +0000 (16:50 +0000)]
Support scrolling with the mouse wheel (X servers apparently usually
send a button 4 press for an upward wheel movement and a button 5
press for a downward one). Untested since my own trackball's button
4 does nothing obvious. Someone with a mouse wheel should give this
a workout.
Simon Tatham [Tue, 15 Oct 2002 16:24:42 +0000 (16:24 +0000)]
Use the appalling gnome-terminal hack for server-controlled resizes
rather than the gtk_window_set_policy approach; the GNOME people say
that the former is the Right Thing in spite of the latter looking
obviously plausible.
Simon Tatham [Tue, 15 Oct 2002 14:55:19 +0000 (14:55 +0000)]
Richard's patch to make the scrollbar configurably absent. (Still
want a new option to configure it to be on the LHS though. And some
lunatic is bound to ask for an xterm-style scrollbar too... :-)
Simon Tatham [Tue, 15 Oct 2002 14:31:06 +0000 (14:31 +0000)]
Support for all the server-side window configuration requests,
including server-controlled resizing. Irritatingly I've had to use a
deprecated option to gtk_window_set_policy() to make this work,
resulting in me raising GNOME bug #95818 to ask for it to be un-
deprecated again...
Simon Tatham [Tue, 15 Oct 2002 13:07:18 +0000 (13:07 +0000)]
Introduce the ability to control whether the shell run in pterm is a
login shell or not. Also moved these new pieces of configuration
into the Config structure, though they won't stay there forever
since they will need to be moved out into platform-dependent config.
Simon Tatham [Tue, 15 Oct 2002 12:42:58 +0000 (12:42 +0000)]
Finish up utmp processing: add the -ut- command-line option to
suppress stamping it at all. (I suppose this ought to be part of the
cfg structure really.)
Simon Tatham [Mon, 14 Oct 2002 10:14:12 +0000 (10:14 +0000)]
Don't forget to call term_paste() when we get the chance, or big
pastes won't go through. (Not sure whether I should remove this
weird behaviour completely for pterm. It's a bit bizarre.)
Simon Tatham [Mon, 14 Oct 2002 08:56:55 +0000 (08:56 +0000)]
Various faffs in the pty allocation process to get controlling
terminals right. Irritatingly this was working when run from another
[xsp]term but not when run from my GNOME panel. I think it's now
more robust.
Simon Tatham [Mon, 14 Oct 2002 00:05:37 +0000 (00:05 +0000)]
Window title configurability: -T to set it from the command line,
support for the xterm escape sequences to set it, and support for
the xterm escape sequence to query it.
Simon Tatham [Sun, 13 Oct 2002 23:57:40 +0000 (23:57 +0000)]
Don't forget to set $TERM when we spawn the pty. Of course I haven't
noticed this until now because I've always been spawning it _from_
another xterm! :-)
Simon Tatham [Sun, 13 Oct 2002 23:48:31 +0000 (23:48 +0000)]
gnome-terminal insists on receiving the selection as COMPOUND_TEXT
rather than STRING, so we can now supply that too. Pasting both ways
between pterm and gnome-terminal now works.
Simon Tatham [Sun, 13 Oct 2002 12:17:03 +0000 (12:17 +0000)]
Deal with the appalling mouse pointer colours. (Why doesn't GTK let
us select our own mouse pointer fg and bg for standard pointers?
It's ludicrous that we can only do it for pixmap-derived ones. :-( )
Jacob Nevins [Fri, 11 Oct 2002 12:29:27 +0000 (12:29 +0000)]
Initialise some members of the Proxy_Socket structure that were left
uninitialised. This problem only showed up with mingw builds of PuTTY
(maybe MSVCRT is more forgiving with malloc initialisation than CRTDLL?).
The 'error' field was causing me most trouble, and I think the other two
were necessary too before things started working.
Note however that I don't fully understand the code, and that there are
more uninitialised fields in the structure.
Simon Tatham [Thu, 10 Oct 2002 14:42:56 +0000 (14:42 +0000)]
Stop hard-coding a nonstandard font. We now default to `fixed', and
pick up the font's real width and height. This means I now _can't_
use my font of choice until I implement some command-line options; I
wonder what feature will appear next :-)
Simon Tatham [Thu, 10 Oct 2002 12:40:05 +0000 (12:40 +0000)]
And that's it! pty.c is now a real pty backend rather than a
loopback interface; pterm now runs $SHELL and gives every impression
of being not a bad terminal emulator. I'm quite pleased with that. :-)
Simon Tatham [Thu, 10 Oct 2002 12:14:05 +0000 (12:14 +0000)]
Half-decent keyboard handling for pterm. Not very well done - it
would have been better to abstract the general key-handling rules
away from the platform-specific keysyms rather than doing clone-
and-hack as I've done - but it'll serve for now. Now all I need is a
real pty back end and pterm should be a just-about-usable prototype.
Simon Tatham [Thu, 10 Oct 2002 10:40:30 +0000 (10:40 +0000)]
A sensible minimum of do_text() and do_cursor() is now implemented.
This means pterm actually _looks_ like the PuTTY terminal emulator
engine, instead of merely giving evidence to the expert eye that
said engine is hidden in there somewhere :-)
Simon Tatham [Wed, 9 Oct 2002 18:09:42 +0000 (18:09 +0000)]
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...
Jacob Nevins [Mon, 7 Oct 2002 16:52:55 +0000 (16:52 +0000)]
Fix code which was clobbering people's -P arguments in PSCP (moved it to
before the deferred command line processing).
Also removed a couple of unused variables.
Simon Tatham [Mon, 7 Oct 2002 16:45:23 +0000 (16:45 +0000)]
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.
Simon Tatham [Thu, 26 Sep 2002 18:37:33 +0000 (18:37 +0000)]
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.
Simon Tatham [Thu, 26 Sep 2002 18:01:21 +0000 (18:01 +0000)]
Any application using non-modal dialogs must use IsDialogMessage in
its main message loop, otherwise keyboard accelerators will not work
in the dialogs. I MUST NOT FORGET THIS AGAIN.
Simon Tatham [Sun, 15 Sep 2002 22:18:02 +0000 (22:18 +0000)]
Jordan Russell's mysterious workaround for an almost equally
mysterious Windows GDI bug. Looks unlikely to cause any other
trouble and it's pretty small, so it can go in.
Simon Tatham [Sun, 15 Sep 2002 13:31:11 +0000 (13:31 +0000)]
Be proactively pedantic about channel-close irregularities: we no
longer just sit there like a lemon if we can't find the channel in
question, we bomb out and complain. With any luck, remaining
problems of this type should be easier to catch under this policy.
Simon Tatham [Sun, 15 Sep 2002 13:24:00 +0000 (13:24 +0000)]
Improvements to SSH1 channel close handling: track sending and
receiving of CLOSE and CLOSE_CONFIRMATION separately rather than
taking short cuts. I believe ssh-1.2.33 sending CLOSE_CONFIRMATION
before CLOSE was causing the remaining incidences of bug
`nonexistent-channel'. (ssh-1.2.33 appears to have unilaterally
decreed that CLOSE and CLOSE_CONFIRMATION are respectively renamed
INPUT_EOF and OUTPUT_CLOSING, hence there is no longer an ordering
constraint on them. Bah.)
Simon Tatham [Sun, 15 Sep 2002 13:21:32 +0000 (13:21 +0000)]
Log file tinkering: copy Event Log entries into the SSH packet log,
so that when people send us a packet log they never forget to send
the Event Log alongside it :-)
Jacob Nevins [Thu, 12 Sep 2002 16:05:05 +0000 (16:05 +0000)]
Semi-bug "long-usernames":
Bump username storage from 32 to 100 chars. Also replaced a couple of magic
numbers with sizeof in ssh.c.
I don't believe this is going to startle any of the protocols PuTTY talks.
Jacob Nevins [Wed, 11 Sep 2002 17:30:36 +0000 (17:30 +0000)]
Updated usage messages for command-line utilities to reflect new options.
Updated manual to reflect reality (e.g. usage messages, '-p port' not actually
implemented, sprinkle references to '-i keyfile').
(I've put "Release 0.53" in the messages; let's hope this doesn't cause a
flood of "where is 0.53?" email.)
I don't guarantee that the result is entirely sane and sensible in all
respects, but it is at least consistent.
Simon Tatham [Mon, 2 Sep 2002 13:47:50 +0000 (13:47 +0000)]
After trying a succession of tests on Jacob's machine, I think I've
finally isolated the _important_ difference between Romano Trampus's
working printing.c and my failing one: he ignores the error return
from the first exploratory how-big-does-my-buffer-need-to-be call to
EnumPrinters(), because not having enough buffer space counts as an
error condition. Hence I am officially a klutz, but this should now
work. (Also reverted ENUM_LEVEL to 1, again, because that seems to
be the choice of people whose code works.)
Jacob Nevins [Mon, 2 Sep 2002 13:04:46 +0000 (13:04 +0000)]
Mention PocketPC in the WinCE question. I'm not sure how similar WinCE and
PocketPC are, though -- perhaps it merits its own question. (Although I don't
know of anyone who's looked into it yet.)
Simon Tatham [Sun, 1 Sep 2002 13:12:51 +0000 (13:12 +0000)]
I'm rapidly running out of patience for trying all possible
combinations of options to EnumPrinters() to see which one works,
but here's another one tried at random for now. *sigh*
Simon Tatham [Sun, 18 Aug 2002 09:27:15 +0000 (09:27 +0000)]
Add BUG_SSH2_DERIVEKEY, present (according to OpenSSH) in ssh.com
versions 2.0.*, and causing the shared secret not to be included in
key derivation hashes. (This doesn't quite cause a blatant security
hole because the session ID - _derived_ from the shared secret - is
still included.)
Simon Tatham [Sun, 18 Aug 2002 09:10:17 +0000 (09:10 +0000)]
In SSH2, if decrypting the packet length gave us a negative value,
subsequent packet-receiver code would fail to notice anything was
wrong and segfault. Since this is clearly a silly packet length
anyway, we now explicitly reject it as a daft encryption error.
Simon Tatham [Mon, 12 Aug 2002 14:08:55 +0000 (14:08 +0000)]
Alter the Feedback page, so that instead of saying `at some point we
plan to start blocking executable attachments' it now says we _do_
block executable attachments. :-)
Simon Tatham [Sun, 11 Aug 2002 13:02:01 +0000 (13:02 +0000)]
Final fixes to keyboard-interactive so it now works with packets
containing more than one prompt instead of less than one, and also
correctly enables echo on prompts that the server requests it for.
In the process I've moved the whole username/password input routine
out into its own function, where it's called independently of which
SSH protocol we're using, so this should even have _saved_ code
size. Rock!
Simon Tatham [Sun, 11 Aug 2002 12:17:25 +0000 (12:17 +0000)]
Anecdotal evidence suggests that a single EnumPrinters() call
specifying both PRINTER_ENUM_LOCAL and PRINTER_ENUM_CONNECTIONS
catches more printers in some circumstances than two EnumPrinters()
calls each specifying just one of them. We'll try it for a bit; if
it goes wrong I might have to put back the two original calls as
well and sort out some means of removing duplicate printers from the
list.
Simon Tatham [Thu, 8 Aug 2002 17:03:58 +0000 (17:03 +0000)]
ssh.com 3.2.0 uses zlib sync flush (start and close an empty
uncompressed block at the end of each compressed packet) which we
were embarrassingly unable to deal with because we assumed every
uncompressed block contained at least one byte. Particularly silly
because I _knew_ about the existence of sync flush when I coded this
module. Arrgh. Still, now fixed.
Simon Tatham [Wed, 7 Aug 2002 19:09:33 +0000 (19:09 +0000)]
Arrgh, we can't have -p for port number because we're already using
it for preserving file attributes in PSCP! Ah well; looks as if
that's one where we'll have to agree to differ with OpenSSH.