X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=putty.h;h=55adf2134dc801d612e1d6ec9c0660d1fe08c3de;hb=9c5951ed35cf9019bf17685b4356212eae1a63b3;hp=f2c9cc6ef87558e631510a4d167c634ada154436;hpb=50766ce729b61d7395b01959eca5486236cc77bf;p=PuTTY.git diff --git a/putty.h b/putty.h index f2c9cc6e..55adf213 100644 --- a/putty.h +++ b/putty.h @@ -1,6 +1,8 @@ #ifndef PUTTY_PUTTY_H #define PUTTY_PUTTY_H +#include /* for FILENAME_MAX */ + #include "network.h" #define PUTTY_REG_POS "Software\\SimonTatham\\PuTTY" @@ -172,6 +174,18 @@ typedef enum { VT_XWINDOWS, VT_OEMANSI, VT_OEMONLY, VT_POORMAN, VT_UNICODE } VT_Mode; +enum { + /* + * SSH ciphers (both SSH1 and SSH2) + */ + CIPHER_WARN, /* pseudo 'cipher' */ + CIPHER_3DES, + CIPHER_BLOWFISH, + CIPHER_AES, /* (SSH 2 only) */ + CIPHER_DES, /* (SSH 1 only) */ + CIPHER_MAX /* no. ciphers (inc warn) */ +}; + enum { /* * Line discipline option states: off, on, up to the backend. @@ -198,12 +212,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; @@ -230,7 +252,7 @@ typedef struct { int nopty; int compression; int agentfwd; - enum { CIPHER_3DES, CIPHER_BLOWFISH, CIPHER_DES, CIPHER_AES } cipher; + int ssh_cipherlist[CIPHER_MAX]; char keyfile[FILENAME_MAX]; int sshprot; /* use v1 or v2 when both available */ int buggymac; /* MAC bug commmercial <=v2.3.x SSH2 */ @@ -402,6 +424,7 @@ void showeventlog(HWND); void showabout(HWND); void verify_ssh_host_key(char *host, int port, char *keytype, char *keystr, char *fingerprint); +void askcipher(char *ciphername, int cs); int askappend(char *filename); void registry_cleanup(void); void force_normal(HWND hwnd); @@ -436,7 +459,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); @@ -510,6 +533,7 @@ void lpage_send(int codepage, char *buf, int len); void luni_send(wchar_t * widebuf, int len); int check_compose(int first, int second); int decode_codepage(char *cp_name); +char *cp_enumerate (int index); char *cp_name(int codepage); /*