Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
History of file x11fwd.c at check-in 2c5a04569e9f402b
|
2014-01-25
| ||
| 09:58 | Use the new host_str* functions to improve IPv6 literal support. I've gone through everywhere we handle host names / addresses (on command lines, in PuTTY config, in port forwarding, in X display names, in host key storage...) and tried to make them handle IPv6 literals sensibly, by using the host_str* functions I introduced in my previous commit. Generally it's now OK to use a bracketed IPv6 literal anywhere a hostname might have been valid; in a few cases where no ambiguity exists (e.g. no :port suffix is permitted anyway) unbracketed IPv6 literals are also acceptable. file: [f6db259cf2] check-in: [7c4cad97cb] user: simon branch: trunk, size: 33379 | |
|
2013-11-17
| ||
| 08:05 | Implement connection sharing between instances of PuTTY. The basic strategy is described at the top of the new source file sshshare.c. In very brief: an 'upstream' PuTTY opens a Unix-domain socket or Windows named pipe, and listens for connections from other PuTTYs wanting to run sessions on the same server. The protocol spoken down that socket/pipe is essentially the bare ssh-connection protocol, using a trivial binary packet protocol with no encryption, and the upstream has to do some fiddly transformations that I've been referring to as 'channel-number NAT' to avoid resource clashes between the sessions it's managing. This is quite different from OpenSSH's approach of using the Unix- domain socket as a means of passing file descriptors around; the main reason for that is that fd-passing is Unix-specific but this system has to work on Windows too. However, there are additional advantages, such as making it easy for each downstream PuTTY to run its own independent set of port and X11 forwardings (though the method for making the latter work is quite painful). Sharing is off by default, but configuration is intended to be very easy in the normal case - just tick one box in the SSH config panel and everything else happens automatically. file: [4d5dcf1b3b] check-in: [998dfad436] user: simon branch: trunk, size: 33369 | |
| 08:05 | Get rid of the error-return mechanism from x11_init. Now that it doesn't actually make a network connection because that's deferred until after the X authorisation exchange, there's no point in having it return an error message and write the real output through a pointer argument. Instead, we can just have it return xconn directly and simplify the call sites. file: [d29f178690] check-in: [73c26030cf] user: simon branch: trunk, size: 29888 | |
| 08:05 | Refactor the construction of X protocol greetings. I've moved it out into a separate function, preparatory to calling it from somewhere completely different in changes to come. Also, we now retain the peer address sent from the SSH server in string form, rather than translating it immediately into a numeric IP address, so that its original form will be available later to pass on elsewhere. file: [abf2b04f53] check-in: [6ce24b09de] user: simon branch: trunk, size: 29993 | |
| 08:05 | Prepare to have multiple X11 auth cookies valid at once. Rather than the top-level component of X forwarding being an X11Display structure which owns some auth data, it's now a collection of X11FakeAuth structures, each of which owns a display. The idea is that when we receive an X connection, we wait to see which of our available auth cookies it matches, and then connect to whatever X display that auth cookie identifies. At present the tree will only have one thing in it; this is all groundwork for later changes. file: [cbc7965deb] check-in: [dce51d4dc0] user: simon branch: trunk, size: 27921 | |
| 08:05 | Decouple X socket opening from x11_init(). Now we wait to open the socket to the X server until we've seen the authorisation data. This prepares us to do something else with the channel if we see different auth data, which will come up in connection sharing. file: [04bc4cca9b] check-in: [17981b3538] user: simon branch: trunk, size: 25970 | |
| 08:04 | Refactor ssh.c's APIs to x11fwd.c and portfwd.c. The most important change is that, where previously ssh.c held the Socket pointer for each X11 and port forwarding, and the support modules would find their internal state structure by calling sk_get_private_ptr on that Socket, it's now the other way round. ssh.c now directly holds the internal state structure pointer for each forwarding, and when the support module needs the Socket it looks it up in a field of that. This will come in handy when I decouple socket creation from logical forwarding setup, so that X forwardings can delay actually opening a connection to an X server until they look at the authentication data and see which server it has to be. However, while I'm here, I've also taken the opportunity to clean up a few other points, notably error message handling, and also the fact that the same kind of state structure was used for both connection-type and listening-type port forwardings. Now there are separate PortForwarding and PortListener structure types, which seems far more sensible. file: [64de71982c] check-in: [7ab21bb146] user: simon branch: trunk, size: 24028 | |
| 08:03 | Replace the hacky 'OSSocket' type with a closure. The mechanism for constructing a new connection-type Socket when a listening one receives an incoming connection previously worked by passing a platform-specific 'OSSocket' type to the plug_accepting function, which would then call sk_register to wrap it with a proper Socket instance. This is less flexible than ideal, because it presumes that only one kind of OS object might ever need to be turned into a Socket. So I've replaced OSSocket throughout the code base with a pair of parameters consisting of a function pointer and a context such that passing the latter to the former returns the appropriate Socket; this will permit different classes of listening Socket to pass different function pointers. In deference to the reality that OSSockets tend to be small integers or pointer-sized OS handles, I've made the context parameter an int/pointer union that can hold either of those directly, rather than the usual approach of making it a plain 'void *' and requiring a context structure to be dynamically allocated every time. file: [5407f89059] check-in: [c7d41826aa] user: simon branch: trunk, size: 23587 | |
|
2013-09-08
| ||
| 02:14 | Pass an error message through to sshfwd_unclean_close. We have access to one at every call site, so there's really no reason not to send it through to ssh.c to be logged. file: [6bb16111b4] check-in: [36349ac57c] user: simon branch: trunk, size: 23559 | |
|
2013-07-14
| ||
| 05:46 | Fix another giant batch of resource leaks. (Mostly memory, but there's one missing fclose too.) file: [e8d47ea7ff] check-in: [17fb711a78] user: simon branch: trunk, size: 23548 | |
|
2012-07-22
| ||
| 14:51 | Introduce a new utility function smemclr(), which memsets things to zero but does it in such a way that over-clever compilers hopefully won't helpfully optimise the call away if you do it just before freeing something or letting it go out of scope. Use this for (hopefully) every memset whose job is to destroy sensitive data that might otherwise be left lying around in the process's memory. file: [580d62ac3a] check-in: [aee68b8d31] user: simon branch: trunk, size: 23512 | |
|
2012-04-23
| ||
| 12:59 | Call sshfwd_unclean_close() in the event of a local socket error on a forwarded X connection. (I somehow forgot to do this in r9364, despite making the identical change in portfwd.c.) file: [43db9f1e3b] check-in: [b487bd5e1d] user: simon branch: trunk, size: 23518 | |
|
2011-09-13
| ||
| 06:44 | Revamp of EOF handling in all network connections, pipes and other data channels. Should comprehensively fix 'half-closed', in principle, though it's a big and complicated change and so there's a good chance I've made at least one mistake somewhere. All connections should now be rigorous about propagating end-of-file (or end-of-data-stream, or socket shutdown, or whatever) independently in both directions, except in frontends with no mechanism for sending explicit EOF (e.g. interactive terminal windows) or backends which are basically always used for interactive sessions so it's unlikely that an application would be depending on independent EOF (telnet, rlogin). EOF should now never accidentally be sent while there's still buffered data to go out before it. (May help fix 'portfwd-corrupt', and also I noticed recently that the ssh main session channel can accidentally have MSG_EOF sent before the output bufchain is clear, leading to embarrassment when it subsequently does send the output). file: [277541ede6] check-in: [0831792ea4] user: simon branch: trunk, size: 23569 | |
|
2011-07-14
| ||
| 13:52 | Post-release destabilisation! Completely remove the struct type 'Config' in putty.h, which stores all PuTTY's settings and includes an arbitrary length limit on every single one of those settings which is stored in string form. In place of it is 'Conf', an opaque data type everywhere outside the new file conf.c, which stores a list of (key, value) pairs in which every key contains an integer identifying a configuration setting, and for some of those integers the key also contains extra parts (so that, for instance, CONF_environmt is a string-to-string mapping). Everywhere that a Config was previously used, a Conf is now; everywhere there was a Config structure copy, conf_copy() is called; every lookup, adjustment, load and save operation on a Config has been rewritten; and there's a mechanism for serialising a Conf into a binary blob and back for use with Duplicate Session. User-visible effects of this change _should_ be minimal, though I don't doubt I've introduced one or two bugs here and there which will eventually be found. The _intended_ visible effects of this change are that all arbitrary limits on configuration strings and lists (e.g. limit on number of port forwardings) should now disappear; that list boxes in the configuration will now be displayed in a sorted order rather than the arbitrary order in which they were added to the list (since the underlying data structure is now a sorted tree234 rather than an ad-hoc comma-separated string); and one more specific change, which is that local and dynamic port forwardings on the same port number are now mutually exclusive in the configuration (putting 'D' in the key rather than the value was a mistake in the first place). One other reorganisation as a result of this is that I've moved all the dialog.c standard handlers (dlg_stdeditbox_handler and friends) out into config.c, because I can't really justify calling them generic any more. When they took a pointer to an arbitrary structure type and the offset of a field within that structure, they were independent of whether that structure was a Config or something completely different, but now they really do expect to talk to a Conf, which can _only_ be used for PuTTY configuration, so I've renamed them all things like conf_editbox_handler and moved them out of the nominally independent dialog-box management module into the PuTTY-specific config.c. file: [e6b822ef3d] check-in: [a2c0243430] user: simon branch: trunk, size: 23386 | |
|
2009-04-23
| ||
| 12:39 | When giving authorisation errors from the proxy code in x11fwd.c, name the proxy using the global 'appname' variable, instead of statically calling it PuTTY. (Knock-on effect is that PSCP and PSFTP have to declare that variable, though of course they shouldn't ever actually _use_ the X forwarding code. Probably I ought to replace it with a stub nox11fwd.c for those applications.) file: [63d6340166] check-in: [39f0cd437b] user: simon branch: trunk, size: 23413 | |
|
2009-02-23
| ||
| 19:01 | Since r8305, Unix PuTTY has always "upgraded" an X11 display like "localhost:0" to a Unix-domain socket. This typically works fine when PuTTY is run on the same machine as the X server, but it's broken multi-hop X forwarding through OpenSSH; when OpenSSH creates a proxy X server "localhost:10", it only listens on TCP, not on a Unix-domain socket. Instead, when deciding on the details of the display, we actively probe to see if there's a Unix-domain socket we can use instead, and only use it if it's there, falling back to the specified IP "localhost" if not. Independently, when looking for local auth details in Xauthority for a "localhost" TCP display, we prefer a matching Unix-domain entry, but will fall back to an IP "localhost" entry (which would be unusual, but we don't trust a Windows X server not to do it) -- this is a generalisation of the special case added in r2538 (but removed in r8305, as the automatic upgrade masked the need for it). (This is now done in platform-independent code, so a side-effect is that get_hostname() is now part of the networking abstraction on all platforms.) file: [b283a0870c] check-in: [d5c507e1ed] user: jacob branch: trunk, size: 23407 | |
|
2009-01-04
| ||
| 17:28 | r8305 seems to have made Unix PuTTY rather over-keen on Unix-domain sockets; unless a protocol is explicitly specified with "tcp/foovax:0", it assume a Unix-domain socket, thus not allowing a remote display on a machine other than the client. file: [793b2e9f52] check-in: [ea832c43a2] user: jacob branch: trunk, size: 19867 | |
|
2008-11-17
| ||
| 12:38 | Revamp of the local X11 connection code. We now parse X display strings more rigorously, and then we look up the local X authority data in .Xauthority _ourself_ rather than delegating to an external xauth program. This is (negligibly) more efficient on Unix, assuming I haven't got it wrong in some subtle way, but its major benefit is that we can now support X authority lookups on Windows as well provided the user points us at an appropriate X authority file in the standard format. A new Windows-specific config option has been added for this purpose. file: [a886db1398] check-in: [8eda1bb259] user: simon branch: trunk, size: 19785 | |
|
2008-05-28
| ||
| 14:23 | OS X Leopard, it turns out, has a new and exciting strategy for addressing X displays. Update PuTTY's display-name-to-Unix-socket- path translation code to cope with it, thus causing X forwarding to start working again on Leopard. file: [7fa247f860] check-in: [c736a90b9d] user: simon branch: trunk, size: 14877 | |
|
2007-01-09
| ||
| 12:24 | Get rid of all the MSVC warnings. file: [5c4891a922] check-in: [1ef7a9aa1d] user: simon branch: trunk, size: 14850 | |
|
2006-02-11
| ||
| 12:00 | A zero-length return from platform_get_x_display() (for instance, a zero-length DISPLAY variable in the environment) caused an assertion failure when X11 forwarding was attempted. Fixed (now treated the same as a NULL return, e.g., a non-existent DISPLAY variable). file: [27c1931adb] check-in: [2c5a04569e] user: jacob branch: trunk, size: 14801 | |
|
2005-04-12
| ||
| 15:04 | Unify GET_32BIT()/PUT_32BIT() et al from numerous source files into misc.h. I've done a bit of testing (not exhaustive), and I don't _think_ I've broken anything... file: [5bf2df855a] check-in: [a434996c3e] user: jacob branch: trunk, size: 14792 | |
|
2005-02-21
| ||
| 12:13 | Make sure that auth->xdmseen is initialised (to NULL) even if it's not used. file: [9a41bb8bee] check-in: [f576bf316d] user: ben branch: trunk, size: 16100 | |
|
2005-02-02
| ||
| 17:51 | Implement anti-replay protection for XDM-AUTHORIZATION-1, as required by the specification. We keep a cache of tickets we've seen recently and reject duplicates. Once a ticket in our cache is old enough that we wouldn't accept a duplicate anyway, we expire it. file: [1b497c2285] check-in: [1d0e47190a] user: ben branch: trunk, size: 16077 | |
|
2005-01-29
| ||
| 16:50 | Another compiler pickiness. It feels wrong to be doing this to perfectly idiomatic code, somehow, and I half wonder whether the Mac compilers are too stupid to be allowed to treat warnings as errors. file: [af4988c560] check-in: [ff9e65da30] user: owen branch: trunk, size: 14940 | |
|
2005-01-28
| ||
| 05:39 | Overhaul of client-side XDM-AUTHORIZATION-1: * Make sk_getxdmdata() return an arbitrary string rather than two integers. This better matches the spec, even if the current version always returns six bytes * On Unix, for PF_UNIX sockets, return a counter rather than a constant along with the PID. This should allow multiple clients to connect within one second, and is what Xlib does. * On Unix, interpret AF_INET6 addresses like Xlib does, returning the embedded IPv4 address for v4-mapped addresses, and six bytes of zeroes otherwise. The latter is silly, but if I'm going to do anything more sane I need to check that X servers won't reject it. file: [35c9b8707e] check-in: [e5bafedcaf] user: ben branch: trunk, size: 14935 | |
|
2005-01-20
| ||
| 10:42 | Fix/bludgeon Mac compile wrinkles. file: [5c6649911a] check-in: [50d019225c] user: owen branch: trunk, size: 14877 | |
|
2005-01-16
| ||
| 08:29 | Support for falling back through the list of addresses returned from a DNS lookup, whether they're IPv4, v6 or a mixture of both. file: [6fbf603504] check-in: [d774282d73] user: simon branch: trunk, size: 14875 | |
|
2004-12-30
| ||
| 10:45 | Integrate unfix.org's IPv6 patches up to level 10, with rather a lot of polishing to bring them to what I think should in principle be release quality. Unlike the unfix.org patches themselves, this checkin enables IPv6 by default; if you want to leave it out, you have to build with COMPAT=-DNO_IPV6. I have tested that this compiles on Visual C 7 (so the nightlies _should_ acquire IPv6 support without missing a beat), but since I don't have IPv6 set up myself I haven't actually tested that it _works_. It still seems to make correct IPv4 connections, but that's all I've been able to verify for myself. Further testing is needed. file: [12d8d53e3a] check-in: [99d7fec46d] user: simon branch: trunk, size: 14675 | |
|
2004-11-18
| ||
| 11:13 | *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? file: [b62a7c3498] check-in: [02e36a55f2] user: jacob branch: trunk, size: 14658 | |
|
2004-10-06
| ||
| 17:31 | X forwarding changes: - new function platform_get_x_display() to find a sensible local display. On Unix, the Gtk apps weren't taking account of --display when determining where to send forwarded X traffic. - explicitly document that leaving X display location blank in config tries to do something sensible (and that it's now blank by default) - don't override X11Display setting in plink, since that's more properly done later file: [c3573a8324] check-in: [3d586c00d5] user: jacob branch: trunk, size: 14662 | |
|
2004-06-20
| ||
| 12:07 | Add a configuration option for TCP keepalives (SO_KEEPALIVE), default off. No very good reason, but I've occasionally wanted to frob it to see if it makes any difference to problems I'm having, and it was easy. Tested that it does actually cause keepalives on Windows (with tcpdump); should also work on Unix. Not implemented on Mac (does nothing), but then neither is TCP_NODELAY. Quite a big checkin, much of which is adding `keepalive' alongside `nodelay' in network function calls. file: [07c1f53476] check-in: [d6cbea6730] user: jacob branch: trunk, size: 14438 | |
|
2004-05-31
| ||
| 09:01 | RJK's patch to enable PuTTY's X forwarding to connect to local X servers using Unix sockets (on Unix only, obviously!). file: [08f485c870] check-in: [8f708bbf81] user: simon branch: trunk, size: 14435 | |
|
2003-08-07
| ||
| 11:04 | Control of 'addr' is now handed over to {platform_,}new_connection() and sk_new() on invocation; these functions become responsible for (eventually) freeing it. The caller must not do anything with 'addr' after it's been passed in. (Ick.) Why: A SOCKS5 crash appears to have been caused by overzealous freeing of a SockAddr (ssh.c:1.257 [r2492]), which for proxied connections is squirreled away long-term (and this can't easily be avoided). It would have been nice to make a copy of the SockAddr, in case the caller has a use for it, but one of the implementations (uxnet.c) hides a "struct addrinfo" in there, and we have no defined way to duplicate those. (None of the current callers _do_ have a further use for the SockAddr.) As far as I can tell, everything _except_ proxying only needs addr for the duration of the call, so sk_addr_free()s immediately. If I'm mistaken, it should at least be easier to find the offending free()... file: [571e0a924a] check-in: [d318104cf5] user: jacob branch: trunk, size: 13847 | |
|
2003-05-04
| ||
| 09:18 | Colin's const-fixing Patch Of Death. Seems to build fine on Windows as well as Unix, so it can go in. file: [aac40d04e6] check-in: [c9f1945192] user: simon branch: trunk, size: 13842 | |
|
2003-04-25
| ||
| 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. file: [06b58a9ff1] check-in: [738c707e42] user: simon branch: trunk, size: 13816 | |
|
2003-03-29
| ||
| 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. file: [fd12ffcf5d] check-in: [8f705367ec] user: ben branch: trunk, size: 13816 | |
| 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. file: [5ccd5ec7f8] check-in: [48c3c19745] user: simon branch: trunk, size: 13807 | |
|
2003-01-15
| ||
| 17:30 | Add the ability to close sessions. This adds *_free() functions to most areas of the code. Not all back-ends have been tested, but Telnet and SSH behave reasonably. Incidentally, almost all of this patch was written through Mac PuTTY, admittedly over a Telnet connection. file: [c6b29f507f] check-in: [c4f9059891] user: ben branch: trunk, size: 13864 | |
|
2003-01-12
| ||
| 09:26 | proxy.c now no longer refers to `cfg'. Instead, each of the three proxy-indirection network functions (name_lookup, new_connection, new_listener) takes a `const Config *' as an argument, and extracts enough information from it before returning to handle that particular network operation in accordance with the proxy settings it specifies. This involved {win,ux}net.c due to a `const' repercussion. file: [fd0d4cad32] check-in: [894cb1e750] user: simon branch: trunk, size: 13810 | |
| 08:11 | Support for XDM-AUTHORIZATION-1 at the SSH server end, making use of the remote IP/port data provided by the server for forwarded connections. Disabled by default, since it's incompatible with SSH2, probably incompatible with some X clients, and tickles a bug in at least one version of OpenSSH. file: [09f4765058] check-in: [55fa8e003a] user: simon branch: trunk, size: 13777 | |
|
2003-01-11
| ||
| 08:20 | Move the prototype for platform_get_x11_auth() from x11fwd.c to ssh.h so that it can be checked against the implementation. file: [bb26026e79] check-in: [81acda317b] user: ben branch: trunk, size: 11776 | |
| 08:08 | Add a cast for a char * vs unsigned char * conflict. file: [d48a27d941] check-in: [2fb4a2e5b1] user: ben branch: trunk, size: 11908 | |
| 03:31 | 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... file: [303fdced77] check-in: [82547fdbe1] user: simon branch: trunk, size: 11883 | |
|
2003-01-10
| ||
| 12:33 | 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.) file: [6e281a0005] check-in: [5ec7a0298b] user: simon branch: trunk, size: 11340 | |
|
2003-01-05
| ||
| 16:53 | Move x11fwd and portfwd prototypes from ssh.c into ssh.h so they can be seen by (and checked against) the definitions. file: [d468757490] check-in: [f286ce2a32] user: ben branch: trunk, size: 9487 | |
| 16:52 | SC in "finding an actual bug" shocker! Set the port number before passing it to name_lookup(). file: [4e8ba5f2c5] check-in: [436176626c] user: ben branch: trunk, size: 9514 | |
| 08:23 | "possible unintended assignment"? I think not. file: [b13eadd38c] check-in: [f6c15f8be1] user: ben branch: trunk, size: 9514 | |
| 08:20 | char * vs unsigned char * (by explicit cast). file: [5180c15ebb] check-in: [546b9eaebf] user: ben branch: trunk, size: 9498 | |
|
2003-01-02
| ||
| 04:45 | 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. file: [0c2ca69b7e] check-in: [b7c53546d7] user: simon branch: trunk, size: 9473 | |
| 04:41 | Propagate the screen number from a local X display to the remote forwarded one. Fixes `x11-default-screen'. file: [895582d0c7] check-in: [dc76e6731e] user: simon branch: trunk, size: 9313 | |
|
2002-12-18
| ||
| 10:23 | Support for doing DNS at the proxy end. I've invented a new type of SockAddr, which just contains an unresolved hostname and is created by a stub function in *net.c. It's an error to pass this to most of the real-meat functions in *net.c; these fake addresses should have been dealt with by the time they get down that far. proxy.c now contains name_lookup(), a wrapper on sk_namelookup() which decides whether or not to do real DNS, and the individual proxy implementations each deal sensibly with being handed an unresolved address and avoid ever passing one down to *net.c. file: [0729147fa0] check-in: [8d3480376f] user: simon branch: trunk, size: 8931 | |
|
2002-10-30
| ||
| 11:57 | More preparatory work: remove the <windows.h> include from lots of source files in which it's no longer required (it was previously required in anything that included <putty.h>, but not any more). Also moved a couple of stray bits of exposed WinSock back into winnet.c (getservbyname from ssh.c and AF_INET from proxy.c). file: [4ec0dee437] check-in: [28f44ea3f8] user: simon branch: trunk, size: 8927 | |
|
2002-10-26
| ||
| 06:23 | X forwarding authentication is now invented on a per-SSH-connection basis, so the statics are gone from x11fwd.c. file: [9124bceaae] check-in: [f79eb3364d] user: simon branch: trunk, size: 8948 | |
|
2002-03-23
| ||
| 11:47 | 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. file: [fb453bd200] check-in: [dea04539ac] user: simon branch: trunk, size: 8766 | |
|
2001-12-30
| ||
| 09:58 | Pageant is now able to avoid asking for the passphrase when asked to load a key that is already loaded. This makes command lines such as `pageant mykey -c mycommand' almost infinitely more useful. file: [de86fadcb9] check-in: [9fe4ceb718] user: simon branch: trunk, size: 8742 | |
|
2001-11-29
| ||
| 15:47 | Configurable TCP_NODELAY option on network connections file: [6fef24a647] check-in: [8daaf4c09d] user: simon branch: trunk, size: 8815 | |
|
2001-08-28
| ||
| 07:24 | Semantic fix in the X11 `authentication failed' error packet construction. Doesn't actually affect anything right now, since the bug was a failure to round a length up to the next multiple of 4 and it so happens that our current message was exactly 40 bytes anyway :-) But if we start giving a wider variety of messages one day then it might be handy to be able to do them without gratuitous crashes. file: [af48e2df0d] check-in: [b37b4aae64] user: simon branch: trunk, size: 8812 | |
|
2001-08-25
| ||
| 12:09 | Extensive changes that _should_ fix the socket buffering problems, by ceasing to listen on input channels if the corresponding output channel isn't accepting data. Has had basic check-I-didn't-actually- break-anything-too-badly testing, but hasn't been genuinely tested in stress conditions (because concocting stress conditions is non- trivial). file: [f7e9b8d187] check-in: [e84a3c910c] user: simon branch: trunk, size: 8812 | |
|
2001-08-08
| ||
| 15:44 | SSH port forwarding! How cool is that? Only currently works on SSH1; SSH2 should be doable but it's late and I have other things to do tonight. The Cool Guy award for this one goes to Nicolas Barry, for doing most of the work and actually understanding the code he was adding to. file: [781247b196] check-in: [c9959c44e1] user: simon branch: trunk, size: 8090 | |
|
2001-05-06
| ||
| 09:35 | Run entire source base through GNU indent to tidy up the varying coding styles of the various contributors! Woohoo! file: [edbf9faff6] check-in: [18fcbbf5a2] user: simon branch: trunk, size: 8094 | |
|
2001-03-15
| ||
| 05:19 | Fix a segfault on abrupt X connection shutdown. file: [5a02bb1bb1] check-in: [4c83fcb2bd] user: simon branch: trunk, size: 8533 | |
|
2001-03-13
| ||
| 04:22 | Dave Hinton's modifications to the network layer interface, which should make it possible to add SSL support later. file: [b6130a0f8f] check-in: [0c3b3070c4] user: simon branch: trunk, size: 8509 | |
|
2001-02-01
| ||
| 08:11 | Yet another attempt at OOB handling in the network abstraction. This version allows you to specify, per socket, which sockets receive OOB data in-line (so that you know what was before the mark and what was after) and which receive it out of line (so it's really a one-byte out-of-band facility rather than discard-to-mark). This reflects the fact that rlogin appears to make more sense in the latter mode, and telnet in the former. This patch makes rlogin work right for me. file: [ac3418d33b] check-in: [a766f640f1] user: simon branch: trunk, size: 8215 | |
|
2001-01-24
| ||
| 04:11 | Improve socket error handling so that a socket error isn't an automatic fatalbox(). Instead, the error is passed to the receiver routine, which can decide just how fatal the problem really is. file: [ea78754743] check-in: [d2802d2956] user: simon branch: trunk, size: 8212 | |
|
2001-01-23
| ||
| 05:02 | Remove the entirely pointless fourth parameter from x11_init(). file: [b881e7353d] check-in: [5be6940dc1] user: simon branch: trunk, size: 7973 | |
|
2001-01-22
| ||
| 05:34 | Added: Add X11 forwarding, mainly thanks to Andreas Schultz file: [0504a95166] check-in: [ac34515183] user: simon branch: trunk, size: 8025 | |