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

2465 Commits

Author SHA1 Message Date
Jacob Nevins
27cad589cc rm '$Source$' from comments as not meaningful under Subversion
[originally from svn r4924]
2004-11-29 09:40:59 +00:00
Jacob Nevins
d0992ade3d typo in comment
[originally from svn r4923]
2004-11-29 09:27:13 +00:00
Jacob Nevins
96a5923cc3 Briefly document the "CP866" manual-entry feature on Windows in the dialog
itself (since we have a bit of room).

[originally from svn r4922]
2004-11-29 09:23:11 +00:00
Simon Tatham
0600e8cf75 Bah, there's always one thing I miss. Correct the background-colour
handling in Unix PuTTY.

[originally from svn r4918]
2004-11-28 15:18:23 +00:00
Simon Tatham
e4e10e494b Implement xterm 256-colour mode.
[originally from svn r4917]
[this svn revision also touched putty-wishlist]
2004-11-28 15:13:34 +00:00
Simon Tatham
cdbb891f0f Stability fixes (thanks valgrind).
[originally from svn r4916]
2004-11-28 09:32:17 +00:00
Simon Tatham
569da2eb7b Cursor position, selection highlights and mouse clicks are now all
transformed back and forth according to the character position
permutation output from the bidi algorithm. I was expecting that to
be a lot harder.

[originally from svn r4915]
2004-11-28 09:24:57 +00:00
Simon Tatham
c66ac86b91 Oops; forgot to add this file in r4913.
[originally from svn r4914]
[r4913 == 8c69ba0672]
2004-11-28 00:48:31 +00:00
Simon Tatham
8c69ba0672 Loose end from timing shakeup: sshrand.c is now a client of
timing.c, and hence takes its own responsibility for calling
noise_regular() at regular intervals. Again, this means it will be
called consistently in _all_ the SSH-speaking tools, not just those
in which I remembered to call it!

[originally from svn r4913]
2004-11-27 19:56:38 +00:00
Simon Tatham
9fc67313fb Changes in startup order to ensure any subsystem which might attempt
to schedule timers is not started until after hwnd is initialised.

[originally from svn r4912]
2004-11-27 19:41:24 +00:00
Simon Tatham
92f3b101f5 Slight improvement to cursor blink timing: since the cursor doesn't
blink when the window doesn't have focus, we don't schedule blink
timers at that point either.

Infrastructure change: term->has_focus should now not be written
directly from outside terminal.c. Instead, use the function
term_set_focus, which will sort out the blink timers as well.

[originally from svn r4911]
2004-11-27 19:34:45 +00:00
Simon Tatham
02b0474f57 Almost _all_ of the final connection-layer loop, in both SSH1 and
SSH2, is now handled by the packet dispatch table. Dispatch table
entries are enabled as soon as possible, so that if anyone tries to
(for example) start using a forwarded port before the main shell
session setup has finished, things should work sensibly.

The SSH code is now a hybrid of coroutine-based sequential logic and
table-driven event dispatch, each where it makes the most sense. I'm
rather pleased with it.

Should fix: ext-data-at-start, portfwd-at-start.

[originally from svn r4909]
[this svn revision also touched putty-wishlist]
2004-11-27 15:32:45 +00:00
Simon Tatham
812870d1b3 Implement client-initiated rekeys after an hour, or after 1Gb of
data transfer in either direction (whichever comes first), or at
explicit client request (nice idea Jacob). Have tested by lowering
the limits, and it all seems solid enough; in particular, this has
also allowed me to test the behaviour when connection-level data is
received during rekey, and that looks fine too (at least it does
_now_ :-).

[originally from svn r4908]
[this svn revision also touched putty-wishlist]
2004-11-27 14:29:20 +00:00
Simon Tatham
fc9dd5cbaa Bah, I knew I'd miss _something_. term_out is now static, so
declaring it in putty.h gives a warning under Unix.

[originally from svn r4907]
2004-11-27 13:31:07 +00:00
Simon Tatham
7ecf13564a New timing infrastructure. There's a new function schedule_timer()
which pretty much any module can call to request a call-back in the
future. So terminal.c can do its own handling of blinking, visual
bells and deferred screen updates, without having to rely on
term_update() being called 50 times a second (fixes: pterm-timer);
and ssh.c and telnet.c both invoke a new module pinger.c which takes
care of sending keepalives, so they get sent uniformly in all front
ends (fixes: plink-keepalives, unix-keepalives).

[originally from svn r4906]
[this svn revision also touched putty-wishlist]
2004-11-27 13:20:21 +00:00
Jacob Nevins
d609e1f7f8 uint64_decimal() incorrectly output 0 as "" instead of "0". This only affected
PSFTP's "reput" chat. Spotted by Greg Parker.

[originally from svn r4904]
2004-11-25 13:40:01 +00:00
Simon Tatham
a4ba026838 Re-architected the top level of the SSH protocol handlers.
ssh1_protocol() and ssh2_protocol() are now high-level functions
which see _every_ SSH packet and decide which lower-level function
to pass it to. Also, they each support a dispatch table of simple
handler functions for message types which can arrive at any time.
Results are:

 - ignore, debug and disconnect messages are now handled by the
   dispatch table rather than being warts in the rdpkt functions

 - SSH2_MSG_WINDOW_ADJUST is handled by the dispatch table, which
   means that do_ssh2_authconn doesn't have to explicitly
   special-case it absolutely every time it waits for a response to
   its latest channel request

 - the top-level SSH2 protocol function chooses whether messages get
   funnelled to the transport layer or the auth/conn layer based on
   the message number ranges defined in the SSH architecture draft -
   so things that should go to auth/conn go there even in the middle
   of a rekey (although a special case is that nothing goes to
   auth/conn until initial kex has finished). This should fix the
   other half of ssh2-kex-data.

[originally from svn r4901]
2004-11-24 20:35:15 +00:00
Simon Tatham
06e9857f89 random_init() should be called at most once during the running of
PuTTY, even if it's managing multiple sessions.

[originally from svn r4900]
2004-11-24 19:53:31 +00:00
Simon Tatham
1ca821cfb1 Now that Packet structures are dynamically allocated, it means we
can keep several of them in parallel. In particular, this allows us
to queue outgoing packets during repeat key exchange, to be actually
sent after the rekey completes.

(This doesn't fully fix ssh2-kex-data; also required is the ability
to handle _incoming_ connection-layer packets during rekey without
exploding.)

[originally from svn r4899]
2004-11-24 19:23:02 +00:00
Simon Tatham
277089b0fb Minor refactoring: the fields pktin' and pktout' in the Ssh
structure have been retired. Now all Packet structures are
dynamically allocated. Each rdpkt function allocates one, and it's
freed after being used; and the packet construction functions
allocate them too, and they're freed by the send functions.

`pktin' and `pktout' were ugly. They were _morally_ still global
variables; even though they were replicated per SSH session to
comply with the Mac no-globals requirement, they weren't really in
the _spirit_ of `dynamically allocate your data'.

As a side effect of this change, the `pktout_blanks' and
`pktout_nblanks' fields in the Ssh structure have been moved into
the Packet structure.

[originally from svn r4898]
2004-11-24 18:45:52 +00:00
Simon Tatham
1aa64afc30 I think rjk meant setpgid', not setpgrp'.
[originally from svn r4897]
2004-11-24 11:42:45 +00:00
Simon Tatham
4f197b872e RJK's OS X portability patch:
- initialise blank mbstate_t using memset rather than an ad-hoc
   initialiser.
 - expand the OMIT_UTMP ifdefs to enclose a load of entire functions
   that would generate `static function never called' warnings if
   left as empty shells.
 - couple of other fiddly things.

[originally from svn r4896]
2004-11-24 11:36:08 +00:00
Simon Tatham
d387cda9b0 It's probably about time I took my private path to the Halibut
binary out of the PuTTY docs Makefile. Instead, I expect to find
Halibut as simply `halibut' on the PATH, and anyone who doesn't have
it there can always do `make HALIBUT=/path/to/halibut'.

[originally from svn r4895]
2004-11-24 11:35:27 +00:00
Jacob Nevins
55a60a4c74 \k --> \K
[originally from svn r4893]
2004-11-24 03:18:14 +00:00
Simon Tatham
0e7a8d538f Darek Olszewski points out that telnet->ldisc is never initialised
to NULL.

[originally from svn r4888]
2004-11-23 16:43:04 +00:00
Simon Tatham
1fd5bcc9fa Fix typo in term_size(), flagged by a Dr Watson log from Temme Rainer.
[originally from svn r4881]
2004-11-22 13:49:12 +00:00
Simon Tatham
785c6321e3 Minor index tweakery.
[originally from svn r4880]
2004-11-22 12:42:33 +00:00
Simon Tatham
15c96004a7 Trivial bug fix pointed out by Paul Fox: potentially missing fclose().
[originally from svn r4877]
2004-11-22 11:02:44 +00:00
Jacob Nevins
4f6e453530 Add missing backslash in "Unable to create registry key" messages.
[originally from svn r4855]
2004-11-20 19:07:34 +00:00
Jacob Nevins
693f062397 UI tweak from Malcolm Rowe: set IDM_VIEWKEYS as the default menu item and use
that mechanism to invoke it on double-click; this emboldens it in the right-
click menu.

[originally from svn r4851]
2004-11-20 18:29:58 +00:00
Jacob Nevins
1969da0208 XXX comment in the logic which sends failed password auth back to username
prompt for keyboard-interactive. I suspect we should do the same with that
method (especially given the apparent number of systems that use it for
regular password auth), but in the absence of systems to test against I've
not actually made the change. (I'm worried that the `partial success' field
might not be set correctly in a multi-stage authentication, for instance.)

[originally from svn r4850]
2004-11-20 17:47:40 +00:00
Jacob Nevins
abf999a809 As a result of the policy allowing changes of username to reset the
authentication state, a failed `password' authentication in SSH-2 was
sending us back to trying `none' and `keyboard-interactive' each time
round, which uses up OpenSSH's quota of authentication attempts rather
quickly. Added a check for `cfg.change_username' to the logic which
sends us back to the start.

[originally from svn r4849]
2004-11-20 17:11:38 +00:00
Jacob Nevins
da1dfe64bf Make PSFTP use console_get_line() to fetch username, so that that prompt is
affected by `-batch'.

[originally from svn r4833]
2004-11-19 21:24:47 +00:00
Jacob Nevins
739de21c6d console_get_line() returns failure iff console_batch_mode is set, whereas
before is would return success and the empty string. IMO this makes `-batch'
much more useful; before, utilities such as Plink in `-batch' mode would
attempt to plough on using empty strings for usernames, passwords, and so on.

[originally from svn r4832]
2004-11-19 21:05:31 +00:00
Jacob Nevins
b66d69ee25 Remove FLAG_INTERACTIVE test from "login as:" prompt. Kelly John Carney
pointed out that Plink would attempt to use a zero-length username iff
a remote command was specified (because the FLAG_INTERACTIVE test was
erroneously combined with the no-username test).

I don't think this will break non-interactive use; in the cases which
behave differently, Plink would be attempting to use the empty
username, which was almost certainly wrong, whereas now it will give a
prompt (which can be avoided with -batch as usual).

(Although perhaps we should attempt to use a local username as a guess for
the remote username, as PSCP does? I've not done this.)

[originally from svn r4831]
2004-11-19 20:57:32 +00:00
Jacob Nevins
6ed54bca89 "Connection reset by peer" is apparently not the only error that keepalives can
help with.

[originally from svn r4819]
2004-11-18 19:44:26 +00:00
Jacob Nevins
6e8de53dcb "Software caused connection abort": a couple of people now have got rid of
this with keepalives. Also try to emphasise that this seems to be a generic
catch-all type of error.

[originally from svn r4818]
2004-11-18 19:41:41 +00:00
Jacob Nevins
2a41bc0808 *sigh* X11 forwarding to a local display (":0" or similar) specified in the
environment rather than the configuraton was failing as of 0.56 (introduced
in r4604). This probably only bit users of Unix PuTTY. Didn't spot in testing
as I was forwarding to already-forwarded displays. I really wasn't having a
good month that month, was I?

[originally from svn r4816]
[r4604 == 98028c746f]
2004-11-18 17:13:45 +00:00
Simon Tatham
da948bc151 Add an extra appendix to the manual containing PuTTY's (hitherto)
unwritten design principles, so would-be contributors won't have to
either read our minds or pay _very_ close attention to the code.

[originally from svn r4815]
2004-11-18 15:16:18 +00:00
Simon Tatham
c507edffdd Move MODULE files out of individual project directories into a
MODULES top-level directory, which is where the Tartarus website
scripts will (hopefully) start reading them from.

[originally from svn r4813]
[this svn revision also touched charset,enigma,filter,halibut,puzzles,pycee,sdlgames,timber]
2004-11-18 11:30:39 +00:00
Simon Tatham
7418a9a37f mkunxarc.sh was still including (mostly empty) .svn directories, and
that in turn was confusing the new doc/Makefile mechanism. Fixed the
former, and also put an additional safeguard in the latter in a
belt-and-braces sort of fashion.

[originally from svn r4806]
2004-11-17 18:27:04 +00:00
Simon Tatham
5d32d4af14 Now we use Subversion, it seems excessive to have an individual $Id$
line for every single .but file at the bottom of each page of the
HTML PuTTY docs. However, we can't _always_ replace that with a
single SVN revision, because there isn't always one available (SVN
still allows mixed working copies in which some files are
deliberately checked out against a different revision).

Hence, here's a mechanism for doing better. It uses `svnversion .'
to determine _whether_ a single revision number adequately describes
the current directory, and replaces all the version IDs with that if
so. If it can't do that, it uses the version IDs as before.

Also, this allows an explicit version string to be passed on the
make command line which will override _both_ these possibilities, so
that release documentation can be clearly labelled with the release
version number.

[originally from svn r4804]
2004-11-17 18:16:59 +00:00
Simon Tatham
6366365622 Fix mksrcarc.sh for directory reorganisation.
[originally from svn r4797]
2004-11-17 08:02:01 +00:00
Jacob Nevins
71228b9c45 pedantic s/CVS/Subversion/
[originally from svn r4796]
2004-11-16 23:58:25 +00:00
Jacob Nevins
93d76da6da Some tweaks for Subversion and windows/ subdir.
[originally from svn r4794]
2004-11-16 23:32:57 +00:00
Simon Tatham
3a7fbd292a Fix Windows installer script: the paths were wrong after the
directory reorganisation, and also the EOL style needs to be CRLF or
Inno Setup gets upset.

[originally from svn r4793]
2004-11-16 23:26:22 +00:00
Simon Tatham
cb45b9cc25 Now that we have Subversion's file renaming ability, it's time at
long last to move all the Windows-specific source files down into a
`windows' subdirectory. Only platform-specific files remain at the
top level. With any luck this will act as a hint to anyone still
contemplating sending us a Windows-centric patch...

[originally from svn r4792]
2004-11-16 22:14:56 +00:00
Simon Tatham
1b94cc85c6 Various changes related to the Subversion migration.
[originally from svn r4790]
2004-11-16 18:01:39 +00:00
Simon Tatham
8a99993c88 Remove .cvsignore files on all active branches.
[originally from svn r4788]
[this svn revision also touched bmbm,caltrap,charset,enigma,filter,fonts,golem,grunge,halibut,html,lj,local,misc,polyhedra,putty-website,putty-wishlist,puzzles,pycee,sdlgames,svn-tools,timber,tweak]
2004-11-16 15:29:14 +00:00
Jacob Nevins
e22daa87c2 Mention that comp.terminals may also be a useful newsgroup.
I've done this by centralising information about newsgroups in feedback.but
and linking to that from elsewhere; I've also put in a link to Google Groups.

[originally from svn r4781]
2004-11-15 15:57:28 +00:00