diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-08 00:02:40 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-08 00:02:40 +0800 |
commit | 657d43f453ffa4360d8716c49006bdd3297f86b4 (patch) | |
tree | f5ca28e0e15fba073d2dd65d1ea2cc73f8b26220 /include | |
parent | 5c8bb43b13925613c4c35b7483c421cc1abe62a0 (diff) | |
download | pttbbs-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.h | 17 | ||||
-rw-r--r-- | include/logind.h | 4 |
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]; |