mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 03:22:48 -05:00
New Plink operating mode: 'plink -shareexists'.
A Plink invocation of the form 'plink -shareexists <session>' tests for a currently live connection-sharing upstream for the session in question. <session> can be any syntax you'd use with Plink to make the actual connection (a host/port number, a bare saved session name, -load, whatever). I envisage this being useful for things like adaptive proxying - e.g. if you want to connect to host A which you can't route to directly, and you might already have a connection to either of hosts B or C which are viable proxies, then you could write a proxy shell script which checks whether you already have an upstream for B or C and goes via whichever one is currently active. Testing for the upstream's existence has to be done by actually connecting to its socket, because on Unix the mere existence of a Unix-domain socket file doesn't guarantee that there's a process listening to it. So we make a test connection, and then immediately disconnect; hence, that shows up in the upstream's event log.
This commit is contained in:
@ -58,14 +58,14 @@ Backend null_backend = {
|
||||
null_init, null_free, null_reconfig, null_send, null_sendbuffer, null_size,
|
||||
null_special, null_get_specials, null_connected, null_exitcode, null_sendok,
|
||||
null_ldisc, null_provide_ldisc, null_provide_logctx, null_unthrottle,
|
||||
null_cfg_info, "null", -1, 0
|
||||
null_cfg_info, NULL /* test_for_upstream */, "null", -1, 0
|
||||
};
|
||||
|
||||
Backend loop_backend = {
|
||||
loop_init, loop_free, null_reconfig, loop_send, null_sendbuffer, null_size,
|
||||
null_special, null_get_specials, null_connected, null_exitcode, null_sendok,
|
||||
null_ldisc, null_provide_ldisc, null_provide_logctx, null_unthrottle,
|
||||
null_cfg_info, "loop", -1, 0
|
||||
null_cfg_info, NULL /* test_for_upstream */, "loop", -1, 0
|
||||
};
|
||||
|
||||
struct loop_state {
|
||||
|
Reference in New Issue
Block a user