1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-01 03:22:48 -05:00

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).

[originally from svn r1198]
This commit is contained in:
Simon Tatham
2001-08-25 17:09:23 +00:00
parent 7ff3999e49
commit c87fa98d09
17 changed files with 929 additions and 259 deletions

14
putty.h
View File

@ -198,12 +198,20 @@ enum {
typedef struct {
char *(*init) (char *host, int port, char **realhost);
void (*send) (char *buf, int len);
/* back->send() returns the current amount of buffered data. */
int (*send) (char *buf, int len);
/* back->sendbuffer() does the same thing but without attempting a send */
int (*sendbuffer) (void);
void (*size) (void);
void (*special) (Telnet_Special code);
Socket(*socket) (void);
Socket(*socket) (void);
int (*sendok) (void);
int (*ldisc) (int);
/*
* back->unthrottle() tells the back end that the front end
* buffer is clearing.
*/
void (*unthrottle) (int);
int default_port;
} Backend;
@ -436,7 +444,7 @@ void term_do_paste(void);
void term_paste(void);
void term_nopaste(void);
int term_ldisc(int option);
void from_backend(int is_stderr, char *data, int len);
int from_backend(int is_stderr, char *data, int len);
void logfopen(void);
void logfclose(void);
void term_copyall(void);