GLOBAL int big_cursor;
+GLOBAL char *help_path;
+GLOBAL int help_has_contents;
+
GLOBAL int utf;
GLOBAL int dbcs_screenfont;
GLOBAL int font_codepage;
#define LGXF_ASK -1 /* existing logfile ask */
#define LGTYP_NONE 0 /* logmode: no logging */
#define LGTYP_ASCII 1 /* logmode: pure ascii */
-#define LGTYP_DEBUG 2 /* logmode: all chars of taffic */
+#define LGTYP_DEBUG 2 /* logmode: all chars of traffic */
+#define LGTYP_PACKETS 3 /* logmode: SSH data packets */
GLOBAL char *logfile;
/*
CIPHER_3DES,
CIPHER_BLOWFISH,
CIPHER_AES, /* (SSH 2 only) */
- CIPHER_DES, /* (SSH 1 only) */
+ CIPHER_DES,
CIPHER_MAX /* no. ciphers (inc warn) */
};
};
typedef struct {
- char *(*init) (char *host, int port, char **realhost);
+ char *(*init) (char *host, int port, char **realhost, int nodelay);
/* 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 */
void (*size) (void);
void (*special) (Telnet_Special code);
Socket(*socket) (void);
+ int (*exitcode) (void);
int (*sendok) (void);
int (*ldisc) (int);
/*
int close_on_exit;
int warn_on_close;
int ping_interval; /* in seconds */
+ int tcp_nodelay;
+ /* Proxy options */
+ char proxy_exclude_list[512];
+ enum { PROXY_NONE, PROXY_HTTP, PROXY_SOCKS, PROXY_TELNET } proxy_type;
+ char proxy_host[512];
+ int proxy_port;
+ char proxy_username[32];
+ char proxy_password[32];
+ char proxy_telnet_command[512];
+ int proxy_socks_version;
/* SSH options */
char remote_cmd[512];
char remote_cmd2[512]; /* fallback if the first fails
int nopty;
int compression;
int agentfwd;
+ int change_username; /* allow username switching in SSH2 */
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 */
+ int ssh2_des_cbc; /* "des-cbc" nonstandard SSH2 cipher */
int try_tis_auth;
+ int try_ki_auth;
int ssh_subsys; /* run a subsystem rather than a command */
int ssh_subsys2; /* fallback to go with remote_cmd2 */
/* Telnet options */
int funky_type;
int no_applic_c; /* totally disable app cursor keys */
int no_applic_k; /* totally disable app keypad */
+ int no_mouse_rep; /* totally disable mouse reporting */
+ int no_remote_resize; /* disable remote resizing */
+ int no_alt_screen; /* disable alternate screen */
+ int no_remote_wintitle; /* disable remote retitling */
+ int no_dbackspace; /* disable destructive backspace */
+ int no_remote_charset; /* disable remote charset config */
int app_cursor;
int app_keypad;
int nethack_keypad;
int telnet_keyboard;
+ int telnet_newline;
int alt_f4; /* is it special? */
int alt_space; /* is it special? */
int alt_only; /* is it special? */
char bell_wavefile[FILENAME_MAX];
int scrollbar;
int scrollbar_in_fullscreen;
- enum { RESIZE_TERM, RESIZE_DISABLED, RESIZE_FONT } resize_action;
+ enum { RESIZE_TERM, RESIZE_DISABLED, RESIZE_FONT, RESIZE_EITHER } resize_action;
int bce;
int blinktext;
int win_name_always;
int sunken_edge;
int window_border;
char answerback[256];
+ char printer[128];
/* Colour options */
int try_palette;
int bold_colour;
int x11_forward;
char x11_display[128];
/* port forwarding */
- int lport_acceptall; /* accepts connection from hosts other than localhost */
+ int lport_acceptall; /* accept conns from hosts other than localhost */
+ int rport_acceptall; /* same for remote forwarded ports (SSH2 only) */
char portfwd[1024]; /* [LR]localport\thost:port\000[LR]localport\thost:port\000\000 */
} Config;
void sys_cursor(int x, int y);
#define OPTIMISE_IS_SCROLL 1
+void set_iconic(int iconic);
+void move_window(int x, int y);
+void set_zorder(int top);
+void refresh_window(void);
+void set_zoomed(int zoomed);
+int is_iconic(void);
+void get_window_pos(int *x, int *y);
+void get_window_pixels(int *x, int *y);
+char *get_window_title(int icon);
+
+void cleanup_exit(int);
+
/*
* Exports from noise.c.
*/
void logfopen(void);
void logfclose(void);
void term_copyall(void);
+void term_reconfig(void);
+
+/*
+ * Exports from logging.c.
+ */
+void logtraffic(unsigned char c, int logmode);
+enum { PKT_INCOMING, PKT_OUTGOING };
+void log_packet(int direction, int type, char *texttype, void *data, int len);
/*
* Exports from raw.c.
void random_init(void);
int random_byte(void);
void random_get_savedata(void **data, int *len);
+extern int random_active;
/*
* Exports from misc.c.
int wc_match(const char *wildcard, const char *target);
int wc_unescape(char *output, const char *wildcard);
+/*
+ * Exports from console.c (that aren't equivalents to things in
+ * windlg.c).
+ */
+extern int console_batch_mode;
+extern char *console_password;
+int console_get_line(const char *prompt, char *str, int maxlen, int is_pw);
+
+/*
+ * Exports from printing.c.
+ */
+typedef struct printer_enum_tag printer_enum;
+typedef struct printer_job_tag printer_job;
+printer_enum *printer_start_enum(int *nprinters);
+char *printer_get_name(printer_enum *, int);
+void printer_finish_enum(printer_enum *);
+printer_job *printer_start_job(char *printer);
+void printer_job_data(printer_job *, void *, int);
+void printer_finish_job(printer_job *);
+
#endif