Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

115 check-ins using file scp.c version 50b0d666e2

2003-04-28
06:41
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. check-in: 038bb0a77e user: simon tags: trunk
2003-04-27
06:11
Add puttytel binary to .cvsignore check-in: e1c13ddcb8 user: simon tags: trunk
06:10
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. check-in: 63945cefc6 user: simon tags: trunk
05:02
radioline() was broken after the portable-dialog stuff got added, so PuTTYgen was lacking its key type selector. Fixed. check-in: 2451a3c179 user: simon tags: trunk
04:45
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. check-in: 45ede95073 user: simon tags: trunk
2003-04-26
09:37
Remove the TODO comment at the top of uxputty.c; I'm now not aware of anything that makes the Unix port of PuTTY proper significantly unfinished. That's quite a milestone :-) check-in: d9f1cd86a5 user: simon tags: trunk
09:36
Might as well provide PuTTYtel for Unix. It's not much effort! check-in: 9ee37125d8 user: simon tags: trunk
09:35
Finer granularity of config box handling. SSH packet logging should now not show up when it's meaningless (in PuTTYtel, in pterm, and in the middle of any non-SSH session), and the Connection panel is inhibited completely in pterm. check-in: af66e213d9 user: simon tags: trunk
09:22
Make the `vtmode' config option work under X. In the process I've had to move another of its values out into wincfg.c - paradoxically, this was the `font has X encoding' option! (Because the Unix font handling code expects to be able to tell for _itself_ whether it has a font with X-encoded line drawing glyphs.) check-in: 42587114a6 user: simon tags: trunk
08:55
Aha, _that's_ why the icon title didn't work properly in pterm: gtk_window_set_title() overwrote both titles at once. Icon title is now working properly under X, and since X was the reason for the whole icon/window title separation _anyway_ they default to being separate. check-in: 9772d176d4 user: simon tags: trunk
08:22
The line-drawing paste config option has changed its meaning since it was first designed. Alter the wording and documentation to match. check-in: 3927d00818 user: simon tags: trunk
2003-04-25
12:44
The new ssh_do_close() function itself causes a segfault if the connection goes foom before ssh->channels is set up. Oops. Fixed. check-in: 899cb52b70 user: simon tags: trunk
11:42
Fix another segfault on abrupt X connection shutdown. This should have happened in rev 1.5 [r996] but didn't! Now we never call sk_get_private_ptr() on a socket unless we've ensured it's non-NULL. check-in: 738c707e42 user: simon tags: trunk
10:44
Don't block SIGPIPE until _after_ pterm forks, since otherwise the blockage will propagate to the child process. check-in: 9546ad05f2 user: simon tags: trunk
06:48
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). check-in: 26f97a0d19 user: simon tags: trunk
2003-04-23
10:25
Force gcc to use x86's built-in 64/32->32,32 division instruction rather than swanning off to a helper function. This seems to make woefully little actual performance difference, which annoys me, but it's a just-about-detectable improvement so I'll leave it in. check-in: 0aa2c11554 user: simon tags: trunk
09:48
Added framework to sshbn.c to make it possible to vary the underlying integer type forming the Bignum. Using this, arranged that gcc/x86 uses 32-bit chunks rather than the guaranteed ANSI- portable 16-bit chunks. This has gained another 30% on key exchanges by my measurements, but I'm not yet convinced that it's all perfectly robust - it seems to work fine for SSH1 and SSH2/RSA but I haven't ensured that every bignum routine is actually being tested, so it may yet show up problems in DSA or key generation. check-in: 3769f9433e user: simon tags: trunk
08:48
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. check-in: 6c10570c0b user: simon tags: trunk
2003-04-18
08:09
Missing bits for colour selection support. check-in: 95a72b4829 user: ben tags: trunk
08:09
Missing bits for System 7 listbox support. check-in: acc262a072 user: ben tags: trunk
04:14
Removing items from a list box using gtk_container_remove is nasty, because when the selected item is removed the selection moves on to another item. Thus, calling dlg_listbox_clear causes repeated selchanges in the list, which in turn cause repeated valchanges if the list is attached to a combo box. This has been completely scuppering the Translation panel. check-in: a530f9d4d5 user: simon tags: trunk
04:06
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. check-in: f3060f0139 user: simon tags: trunk
04:00
Missed out a couple of uxsel_tell() which were hanging forwarded X connections in at least some situations. Oops. check-in: 384eaf1a25 user: simon tags: trunk
04:00
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. check-in: 58503ab138 user: simon tags: trunk
2003-04-16
18:58
Replace use of FIONBIO with POSIX-approved O_NONBLOCK (set using fcntl()). This should save us having to worry about different OSs' defining it in different headers. check-in: bc49ee811b user: ben tags: trunk
18:33
Make IPv6 support for Unix work, and make it a lot simpler in the process. At the moment, we have to assume that getaddrinfo() will only return AF_INET and AF_INET6 addresses, since we patch in the port number into the sockaddr later. Fixing this is probably best done by redesigning the PuTTY network abstraction a little. check-in: 6206b1162a user: ben tags: trunk
2003-04-14
18:47
Remove all those horrid fprintfs. check-in: 91ec589e47 user: ben tags: trunk
18:28
Set the space required by a listbox sensibly as well. check-in: 3c809505f1 user: ben tags: trunk
18:25
Minor fixes: - Erase the background of System 7 editboxes before drawing them. - Set the height of listboxes correctly. - Set the panel-selection listbox to 20 items high. check-in: 82e19cbda1 user: ben tags: trunk
17:55
Don't call GetColor() if we don't have Color Quickdraw -- no good will come of it. check-in: f093d4afaa user: ben tags: trunk
17:42
Support for colour selection in the Mac OS. check-in: 1bb87f2427 user: ben tags: trunk
16:34
Keyboard events in Mac OS 8 list boxes should generate EVENT_SELCHANGE, not EVENT_VALCHANGE. check-in: 0d697e5d61 user: ben tags: trunk
16:15
Enlarge the settings window so as to fill a 640x480 display. This makes enough space to actually fit all of the panels. I'll have to do a version with smaller fonts for 9" screens. check-in: c660bc8f15 user: ben tags: trunk
2003-04-13
09:37
Add a list box to the config dialogue to switch between panels. Now I don't have to recompile to change panels! check-in: 22c49c931e user: ben tags: trunk
08:52
Support for list boxes under System 7. There are some horrible kludges in this code to do with the handling of the scroll bar, but it doesn actually work better than the Mac OS 8 version. check-in: 6af1a1874e user: ben tags: trunk
2003-04-12
16:23
socks5_negotiate(): rather than using an uninitialised value when passed an address of an invalid type, assert() that it will never happen. Do something similar for SOCKS4 as well. check-in: 125ea26ede user: ben tags: trunk
16:15
Don't use an uninitialised value when we get an unsupported ATYP in a SOCKS5 request. Spotted by GCC. check-in: 0bc01ae5f3 user: ben tags: trunk
16:07
Remove a couple of spurious semicolons. check-in: 2e726f9adc user: ben tags: trunk
16:06
Update for Simon's from_backend changes. check-in: 099db98855 user: ben tags: trunk
12:37
Support for New Session, Duplicate Session and the Saved Sessions submenu in Unix PuTTY, and Duplicate Session also in pterm. You do _not_ want to know how this is done. Be warned. check-in: 2a16a8e814 user: simon tags: trunk
06:03
Further fiddlings with the size reconfiguration stuff; now everything seems to work right even when the only thing changed was the window border. check-in: b3bd56e4fb user: simon tags: trunk
05:44
Mid-session reconfiguration of scrollback was failing (in Unix) except when width or height had _also_ been changed. Fixed. check-in: 8d3c66813d user: simon tags: trunk
04:27
Implement the ldisc `special' mechanism in Unix, without which local line editing didn't work at all. check-in: 82c66f5741 user: simon tags: trunk
04:19
Fix from yesterday's frontend-handle upheaval: ldisc calls from_backend(), and must now pass its frontend handle rather than its terminal handle. check-in: ea2283da3c user: simon tags: trunk
04:05
Mid-session BCE reconfiguration wasn't taking effect immediately because I forgot to set term->erase_char in response to the change in term->use_bce. Oops. check-in: 32701df063 user: simon tags: trunk
03:59
Disable window title reporting by default, since it's a security hazard. I considered removing it completely, but I can't rule out the possibility of an OS that actually takes security of its terminal devices seriously, and which might be able to make sensible and safe use of this feature. check-in: a301bcba32 user: simon tags: trunk
03:27
Close On Exit and Warn On Close fixes: (a) pty_reconfig needs to remember changes in COE so it knows whether to print a message, and (b) once the session has already ended, Warn On Close should shut up. check-in: ab6d1303e3 user: simon tags: trunk
2003-04-11
13:44
When I implemented the GTK messagebox() function and everything that needed to use it, I completely forgot about askappend(). D'oh. check-in: 3e873ea700 user: simon tags: trunk
13:36
Rationalisation of the system of frontend handles. Most modular bits of PuTTY (terminal, backend, logctx etc) take a `void *' handle passed to them from the frontend, and used as a context for all their callbacks. Most of these point at the frontend structure itself (on platforms where this is meaningful), except that the handle passed to the backend has always pointed at the terminal because from_backend() was implemented in terminal.c. This has finally bitten Unix PuTTY, because both backend and logctx have been passing their respective and very different frontend handles to logevent(), so I've fixed it. from_backend() is now a function supplied by the _frontend_ itself, in all cases, and the frontend handle passed to backends must be the same as that passed to everything else. What was from_backend() in terminal.c is now called term_data(), and the typical implementation of from_backend() in a GUI frontend will just extract the terminal handle from the frontend structure and delegate to that. This appears to work on Unix and Windows, but has most likely broken the Mac build. check-in: 70ba0246e2 user: simon tags: trunk
13:15
Implement Warn On Close. check-in: 2ae43e06b7 user: simon tags: trunk
13:10
`Copy All' ought to de-highlight any existing selection, in line with any other operation that shifts the X selection to stuff other than the highlighted text. check-in: 6541124864 user: simon tags: trunk
12:59
`Copy All' context-menu item, for what it's worth. check-in: b75870b6d0 user: simon tags: trunk
12:42
Saving of Default Settings under Unix was broken, because mungestr() was translating NULL into "Default Settings" but not doing the same to "". Now fixed. check-in: 60fa437889 user: simon tags: trunk
12:40
Cutting and pasting from the Unix Event Log. check-in: 26feaa9728 user: simon tags: trunk
12:39
A poster on comp.security.ssh mentions that he had expected to find the location of PuTTY's data storage mentioned in the manual section about loading and storing sessions. This seems not unreasonable, so I've put it there. check-in: 9a7bf85793 user: simon tags: trunk
2003-04-10
13:00
Implemented Change Settings under Unix. We are gradually getting there. check-in: bc0d66460b user: simon tags: trunk
06:57
All the stderr messages in this file now use appname rather than guessing wrongly. check-in: bad4bd5783 user: simon tags: trunk
03:53
Minor improvements to subsidiary window placement; with any luck the Event Log should go off the side of the screen rather less often now. check-in: 6843a0d490 user: simon tags: trunk
2003-04-09
13:46
Event Log for Unix PuTTY. Doesn't yet allow X selection of its contents, and doesn't automatically maintain scroll position at the bottom when new entries are added while the list is open, but it's a start. check-in: e121761c3c user: simon tags: trunk
06:19
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. check-in: ccc0edfdd6 user: simon tags: trunk
06:18
`dynamic' was uninitialised in other types of port forwarding. Oops. check-in: 31ab5ac85c user: simon tags: trunk
04:09
Chas Honton's patch to dynamic port forwarding: should allow longer host names in SOCKS 4A, up to 255 characters (which is apparently the DNS limit anyway). check-in: 57a65eb3b0 user: simon tags: trunk
2003-04-08
09:02
Rename pterm's -T option to -title, to avoid clashing with PuTTY's -T (don't allocate a pty) option. check-in: be7fc2e743 user: simon tags: trunk
08:49
While writing gtkdlg.c I learned how to specify a window's initial position in GTK, so I can now implement the other half of -geometry which I'd previously believed to be impossible in GTK. It's still not perfect, because GTK apparently provides no way for us to get hold of the X reparent event in order to support negative geometries in a manner which takes account of the WM borders; but for positive position it's at least an improvement on the previous version! check-in: 026dce549a user: simon tags: trunk
2003-04-06
09:11
Now that we have `appname', make much wider use of it. In particular, the config box uses it in place of the word `PuTTY', which means mid-session reconfig in pterm will look less strange once I implement it. Also, while I'm at it, I've personalised all the dialog boxes and menu items and suchlike so that PuTTYtel actually claims to be PuTTYtel rather than PuTTY. check-in: 9f2b96b3a4 user: simon tags: trunk
08:27
To avoid gratuitous flicker, if a control already has the focus when it's clicked in, don't attempt to move the focus at all. check-in: c388e816ee user: ben tags: trunk
2003-04-05
16:12
Const fallout, as predicted. check-in: 0517c2308b user: ben tags: trunk
16:10
Bring list of applications and architectures up to date. check-in: a289f393f8 user: ben tags: trunk
16:03
dd support for list boxes in Mac OS 8. Not entirely solid, but largely working. [ bits missed in the first commit ] check-in: 8077426a60 user: ben tags: trunk
16:00
Add support for list boxes in Mac OS 8. Not entirely solid, but largely working. check-in: 772204cccf user: ben tags: trunk
13:52
Bah. There's always one I forget to `cvs add'. check-in: ac3b232fe1 user: simon tags: trunk
12:00
On System 7, draw the default ring in grey if the window is disabled. This isn't _quite_ right, since it uses a b/w dither everywhere, whereas it should use grey on colour screens. That would involve mucking around with DeviceLoop, though, and I'm not sure I can be bothered. check-in: 0d2e7b8db3 user: ben tags: trunk
11:19
Handle Return and Escape keys in dialogue box, triggering the default and cancel buttons respectively. check-in: 4109f8092e user: ben tags: trunk
10:36
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. check-in: 6c4b46bcec user: simon tags: trunk
10:12
Unix can't sensibly enumerate printers (since they're defined as being lpr commands), so the Unix config box now replaces the printer combo box with an ordinary edit box. check-in: 7d4d9177e1 user: simon tags: trunk
10:05
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 :-). check-in: b7304dcb60 user: simon tags: trunk
09:55
Cope with NULL labels in every control where it makes sense, and assert that all other labels are != NULL. check-in: 8618c63b89 user: ben tags: trunk
09:08
Send EVENT_VALCHANGE when a System 7 editbox gets typed in. check-in: d7d2a4203a user: ben tags: trunk
09:01
Implement dlg_end(). check-in: 3d5125aebd user: ben tags: trunk
08:34
Implement update_special_menu(), which calls mac_adjustmenus() as appropriate. Eventually, mac_adjustmenus() will handle populating the Specials menu. check-in: d34a83dcea user: ben tags: trunk
08:32
Add null_get_specials(), for both null and loop backends. check-in: 03b524f1d3 user: ben tags: trunk
05:52
... of course, it would help if I remembered to _document_ dynamic port forwarding. Ahem. check-in: 68bff8db5c user: simon tags: trunk
05:45
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 :-) check-in: 9c2b8c4c52 user: simon tags: trunk
2003-04-04
14:21
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(). check-in: 53746610b8 user: simon tags: trunk
05:22
This script has been unnecessary for some time; since the config box revamp, accelerator clashes have been checked for at run-time. check-in: 05611b4f8b user: jacob tags: trunk
2003-04-03
17:18
Implement columns, based loosely on Simon's Windows implementation. Now this actually _looks_ like PuTTY. check-in: 0b67e0dffc user: ben tags: trunk
2003-04-02
03:20
Another item for the release checklist: don't forget to save the link maps of the release binaries. check-in: 582f3daf86 user: simon tags: trunk
03:14
Further .cvsignore updates. check-in: 8d950dc81d user: simon tags: trunk
03:14
Extra bit of pre-release fiddling for the checklist. check-in: 3af0835fab user: simon tags: trunk
02:44
Improvements to .cvsignore, to attempt to reduce the huge number of ? lines I see when running `cvs update', which in turn might help deal with my tendency to forget to `cvs add' new files before a big checkin :-) check-in: 6859cb4d59 user: simon tags: trunk
2003-04-01
12:10
Various error-handling fixes, mostly in Unix PuTTY but one (failure to save a session) crosses over into the platform-independent side. check-in: 98cf799b26 user: simon tags: trunk
2003-03-31
07:15
Make sure the socket is closed properly in the various SSH exit paths. check-in: 951d79cdac user: simon tags: trunk
06:57
Trivial segfault fix from Richard B. check-in: ecdb0cdfd6 user: simon tags: trunk
06:11
Ahem; update the TODO to reflect the cmdline changes :-) check-in: 9951432bf1 user: simon tags: trunk
06:10
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 :-) check-in: a52454784c user: simon tags: trunk
06:10
pterm.c now relies on backend `exitcode' functions returning <0 when the session is still connected, and not returning an exit code until after it's finished. check-in: a2d003020b user: simon tags: trunk
05:42
And everyone's favourite cosmetic change: Unix PuTTY now doesn't claim to be pterm in the window title :-) check-in: 3fdcb83acc user: simon tags: trunk
05:36
Can now save and load settings under Unix. check-in: f0c65e843f user: simon tags: trunk
05:22
Ahem; fix `bombout' so it passes the correct frontend handle to connection_fatal(). check-in: e2d4e935f5 user: simon tags: trunk
05:22
Fix a _very_ subtle segfault in my two GTK container classes: the `forall' function has to be prepared for the list of widgets to change along the way if (for example) the callback function destroys its input widget. check-in: c74eba86e2 user: simon tags: trunk
05:21
Checkin of last night's work on GTK message boxes. Unix PuTTY now has proper GUI prompts for host keys etc, so it should now be usable without a controlling tty. check-in: 8222ee8773 user: simon tags: trunk
2003-03-30
08:24
Correct the size of editboxes under Mac OS 8. check-in: c478abfae1 user: ben tags: trunk
2003-03-29
18:45
Crude keyboard support for System 7 editboxes. check-in: 0cc1580126 user: ben tags: trunk
17:57
The entropy pool is full of unsigned ints, not longs. check-in: 254a7781a2 user: ben tags: trunk
17:07
Move the Mac port over to using snew/snewn/sresize. check-in: fbbea4dbd6 user: ben tags: trunk
17:05
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. check-in: 8f705367ec user: ben tags: trunk
16:04
Convert the System 7 static text control to be a read-only version of the editbox control. This means that it has a persistent edit record, can have its height measured and uses the system font by default, all of which are good. check-in: 3bf16984de user: ben tags: trunk
14:16
Add support for labels on editboxes and radios. check-in: da1b322262 user: ben tags: trunk
13:52
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! check-in: c069c8a0c8 user: simon tags: trunk
12:32
Add input-focus support for System 7, where the Control Manager can't do it itself. Also clean up Carbon builds. check-in: 8e0fe25d39 user: ben tags: trunk
12:31
Add the System 7 editbox CDEF, which I seem to have forgotten. check-in: afc128115e user: ben tags: trunk
12:30
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... check-in: b384cf23f7 user: simon tags: trunk
11:07
I'm sick of having to type (cd ..; perl mkfiles.pl) when I'm working on Unix. So now mkfiles.pl will look in .. as well as . when searching for Recipe, so I can run `perl ../mkfiles.pl' and it will Just Work. check-in: 28a1a156b1 user: simon tags: trunk
10:47
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. check-in: b740285f7b user: simon tags: trunk
10:14
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. check-in: 48c3c19745 user: simon tags: trunk