summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-08 00:02:40 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-08 00:02:40 +0800
commit657d43f453ffa4360d8716c49006bdd3297f86b4 (patch)
treef5ca28e0e15fba073d2dd65d1ea2cc73f8b26220 /include
parent5c8bb43b13925613c4c35b7483c421cc1abe62a0 (diff)
downloadpttbbs-657d43f453ffa4360d8716c49006bdd3297f86b4.tar
pttbbs-657d43f453ffa4360d8716c49006bdd3297f86b4.tar.gz
pttbbs-657d43f453ffa4360d8716c49006bdd3297f86b4.tar.bz2
pttbbs-657d43f453ffa4360d8716c49006bdd3297f86b4.tar.lz
pttbbs-657d43f453ffa4360d8716c49006bdd3297f86b4.tar.xz
pttbbs-657d43f453ffa4360d8716c49006bdd3297f86b4.tar.zst
pttbbs-657d43f453ffa4360d8716c49006bdd3297f86b4.zip
* add client code detection to tunnel mode
* refine telnet library to support write customization git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4517 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'include')
-rw-r--r--include/cmsys.h17
-rw-r--r--include/logind.h4
2 files changed, 16 insertions, 5 deletions
diff --git a/include/cmsys.h b/include/cmsys.h
index 863aab3f..6ae2119f 100644
--- a/include/cmsys.h
+++ b/include/cmsys.h
@@ -178,6 +178,7 @@ extern int Vector_search(const struct Vector *self, const char *name);
/* telnet.c */
struct TelnetCallback {
+ void (*write_data) (void *write_arg, int fd, const void *buf, size_t nbytes);
void (*term_resize) (void *resize_arg, int w, int h);
void (*update_client_code) (void *cc_arg, unsigned char seq);
};
@@ -197,16 +198,22 @@ struct TelnetCtx {
const struct TelnetCallback *callback;
// callback parameters
+ void *write_arg; // write_data
void *resize_arg; // term_resize
void *cc_arg; // update_client_code
};
typedef struct TelnetCtx TelnetCtx;
-extern TelnetCtx *telnet_create_contex(void);
-extern void telnet_ctx_init(TelnetCtx *ctx, const struct TelnetCallback *callback, int fd);
-extern void telnet_ctx_set_cc_arg(TelnetCtx *ctx, void *cc_arg);
+extern TelnetCtx *telnet_create_context(void);
+extern void telnet_free_context (TelnetCtx *ctx);
-extern void telnet_send_init_cmds(int fd);
-extern ssize_t telnet_process(TelnetCtx *ctx, unsigned char *buf, ssize_t size);
+extern void telnet_ctx_init (TelnetCtx *ctx, const struct TelnetCallback *callback, int fd);
+extern void telnet_ctx_send_init_cmds(TelnetCtx *ctx);
+
+extern void telnet_ctx_set_cc_arg (TelnetCtx *ctx, void *cc_arg);
+extern void telnet_ctx_set_write_arg (TelnetCtx *ctx, void *cc_arg);
+extern void telnet_ctx_set_resize_arg(TelnetCtx *ctx, void *cc_arg);
+
+extern ssize_t telnet_process (TelnetCtx *ctx, unsigned char *buf, ssize_t size);
#endif
diff --git a/include/logind.h b/include/logind.h
index 0b229faa..493d0c09 100644
--- a/include/logind.h
+++ b/include/logind.h
@@ -7,9 +7,13 @@
typedef struct login_data
{
+ // size of current structure
+ size_t cb;
+
// terminal information
int t_lines, t_cols;
int encoding;
+ Fnv32_t client_code;
// user authentication
char userid[IDLEN+1];