Experimental Rlogin support, thanks to Delian Delchev. Local flow
[u/mdw/putty] / putty.h
diff --git a/putty.h b/putty.h
index 0a2cad6..34cf069 100644 (file)
--- a/putty.h
+++ b/putty.h
@@ -24,6 +24,7 @@
 #define ATTR_PASCURS 0x40000000UL      /* passive cursor (box) */
 #define ATTR_INVALID 0x20000000UL
 #define ATTR_WRAPPED 0x10000000UL
+#define ATTR_RIGHTCURS 0x10000000UL    /* doubles as cursor-on-RHS indicator */
 
 #define LATTR_NORM   0x00000000UL
 #define LATTR_WIDE   0x01000000UL
@@ -78,6 +79,9 @@ GLOBAL int seen_disp_event;
 
 GLOBAL int session_closed;
 
+#define LGTYP_NONE  0  /* logmode: no logging */
+#define LGTYP_ASCII 1  /* logmode: pure ascii */
+#define LGTYP_DEBUG 2  /* logmode: all chars of taffic */
 GLOBAL char *logfile;
 
 /*
@@ -133,13 +137,14 @@ typedef struct {
     /* Basic options */
     char host[512];
     int port;
-    enum { PROT_RAW, PROT_TELNET, PROT_SSH } protocol;
+    enum { PROT_RAW, PROT_TELNET, PROT_RLOGIN, PROT_SSH } protocol;
     int close_on_exit;
     int warn_on_close;
-    int ping_interval;
+    int ping_interval;                 /* in seconds */
     /* SSH options */
     char remote_cmd[512];
     int nopty;
+    int compression;
     int agentfwd;
     enum { CIPHER_3DES, CIPHER_BLOWFISH, CIPHER_DES } cipher;
     char keyfile[FILENAME_MAX];
@@ -151,6 +156,7 @@ typedef struct {
     char termspeed[32];
     char environmt[1024];                    /* VAR\tvalue\0VAR\tvalue\0\0 */
     char username[32];
+    char localusername[32];
     int rfc_environ;
     /* Keyboard options */
     int bksp_is_delete;
@@ -165,6 +171,7 @@ typedef struct {
     int alt_space;                    /* is it special? */
     int alt_only;                     /* is it special? */
     int ldisc_term;
+    int alwaysontop;
     int scroll_on_key;
     int scroll_on_disp;
     int compose_key;
@@ -174,6 +181,7 @@ typedef struct {
     int dec_om;
     int wrap_mode;
     int lfhascr;
+    int cursor_type;                  /* 0=block 1=underline 2=vertical */
     int blink_cur;
     int beep;
     int scrollbar;
@@ -186,6 +194,8 @@ typedef struct {
     int fontisbold;
     int fontheight;
     int fontcharset;
+    char logfilename[FILENAME_MAX];
+    int logtype;
     /* Colour options */
     int try_palette;
     int bold_colour;
@@ -281,7 +291,9 @@ void showeventlog (HWND);
 void showabout (HWND);
 void verify_ssh_host_key(char *host, int port, char *keytype,
                          char *keystr, char *fingerprint);
+int askappend(char *filename);
 void registry_cleanup(void);
+void force_normal(HWND hwnd);
 
 GLOBAL int nsessions;
 GLOBAL char **sessions;
@@ -312,6 +324,9 @@ void term_blink(int set_cursor);
 void term_paste(void);
 void term_nopaste(void);
 void from_backend(int is_stderr, char *data, int len);
+void logfopen (void); 
+void logfclose (void);
+void term_copyall(void);
 
 /*
  * Exports from raw.c.
@@ -320,6 +335,12 @@ void from_backend(int is_stderr, char *data, int len);
 extern Backend raw_backend;
 
 /*
+ * Exports from rlogin.c.
+ */
+
+extern Backend rlogin_backend;
+
+/*
  * Exports from telnet.c.
  */
 
@@ -351,21 +372,7 @@ void random_get_savedata(void **data, int *len);
  * Exports from misc.c.
  */
 
-/* #define MALLOC_LOG  do this if you suspect putty of leaking memory */
-#ifdef MALLOC_LOG
-#define smalloc(z) (mlog(__FILE__,__LINE__), safemalloc(z))
-#define srealloc(y,z) (mlog(__FILE__,__LINE__), saferealloc(y,z))
-#define sfree(z) (mlog(__FILE__,__LINE__), safefree(z))
-void mlog(char *, int);
-#else
-#define smalloc safemalloc
-#define srealloc saferealloc
-#define sfree safefree
-#endif
-
-void *safemalloc(size_t);
-void *saferealloc(void *, size_t);
-void safefree(void *);
+#include "puttymem.h"
 
 /*
  * Exports from version.c.
@@ -399,28 +406,9 @@ void crypto_wrapup();
 void agent_query(void *in, int inlen, void **out, int *outlen);
 int agent_exists(void);
 
-/*
- * A debug system.
- */
 #ifdef DEBUG
-#include <stdarg.h>
+void dprintf(char *fmt, ...);
 #define debug(x) (dprintf x)
-static void dprintf(char *fmt, ...) {
-    char buf[2048];
-    DWORD dw;
-    va_list ap;
-    static int gotconsole = 0;
-
-    if (!gotconsole) {
-       AllocConsole();
-       gotconsole = 1;
-    }
-
-    va_start(ap, fmt);
-    vsprintf(buf, fmt, ap);
-    WriteFile (GetStdHandle(STD_OUTPUT_HANDLE), buf, strlen(buf), &dw, NULL);
-    va_end(ap);
-}
 #else
 #define debug(x)
 #endif