mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-17 02:57:33 -05:00
New piece of Windows infrastructure: winhandl.c takes Plink's
thread-based approach to stdin and stdout, wraps it in a halfway sensible API, and makes it a globally available service across all network tools. There is no direct functionality enhancement from this checkin: winplink.c now talks to the new API instead of doing it all internally, but does nothing different as a result. However, this should lay the groundwork for several diverse pieces of work in future: pipe-based ProxyCommand on Windows, a serial port back end, and (hopefully) a pipe-based means of communicating with Pageant, which should have sensible blocking behaviour and hence permit asynchronous agent requests and decrypt-on-demand. [originally from svn r6797]
This commit is contained in:
@ -405,6 +405,21 @@ void EnableSizeTip(int bEnable);
|
||||
struct unicode_data;
|
||||
void init_ucs(Config *, struct unicode_data *);
|
||||
|
||||
/*
|
||||
* Exports from winhandl.c.
|
||||
*/
|
||||
struct handle;
|
||||
typedef int (*handle_inputfn_t)(struct handle *h, void *data, int len);
|
||||
typedef void (*handle_outputfn_t)(struct handle *h, int new_backlog);
|
||||
struct handle *handle_input_new(HANDLE handle, handle_inputfn_t gotdata);
|
||||
struct handle *handle_output_new(HANDLE handle, handle_outputfn_t sentdata);
|
||||
int handle_write(struct handle *h, const void *data, int len);
|
||||
HANDLE *handle_get_events(int *nevents);
|
||||
void handle_free(struct handle *h);
|
||||
void handle_got_event(HANDLE event);
|
||||
void handle_unthrottle(struct handle *h, int backlog);
|
||||
int handle_backlog(struct handle *h);
|
||||
|
||||
/*
|
||||
* pageantc.c needs to schedule callbacks for asynchronous agent
|
||||
* requests. This has to be done differently in GUI and console, so
|
||||
|
Reference in New Issue
Block a user