summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-12 21:12:14 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-12 21:12:14 +0800
commit91e59579ba3a660beb77daf5b499a0c669daf682 (patch)
treee6ee68193a45455afa918addd7ebee8cb44acf21
parent9a9b4ad3b178f120919b248c77e9a0ac489caf1c (diff)
downloadpttbbs-91e59579ba3a660beb77daf5b499a0c669daf682.tar
pttbbs-91e59579ba3a660beb77daf5b499a0c669daf682.tar.gz
pttbbs-91e59579ba3a660beb77daf5b499a0c669daf682.tar.bz2
pttbbs-91e59579ba3a660beb77daf5b499a0c669daf682.tar.lz
pttbbs-91e59579ba3a660beb77daf5b499a0c669daf682.tar.xz
pttbbs-91e59579ba3a660beb77daf5b499a0c669daf682.tar.zst
pttbbs-91e59579ba3a660beb77daf5b499a0c669daf682.zip
* ultilize AYT in logind
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4576 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--daemon/logind/logind.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/daemon/logind/logind.c b/daemon/logind/logind.c
index 4c30a49d..bf338703 100644
--- a/daemon/logind/logind.c
+++ b/daemon/logind/logind.c
@@ -448,15 +448,37 @@ _telnet_write_data_cb(void *write_arg, int fd, const void *buf, size_t nbytes)
_buff_write(conn, buf, nbytes);
}
+#define REPORT_OPENFD_IN_AYT
+
+#ifdef REPORT_OPENFD_IN_AYT
+static void
+_telnet_send_ayt_cb(void *ayt_arg, int fd)
+{
+ login_conn_ctx *conn = (login_conn_ctx *)ayt_arg;
+ char buf[32];
+
+ assert(conn);
+ snprintf(buf, sizeof(buf), " %u \r\n", g_opened_fd);
+ _buff_write(conn, buf, strlen(buf));
+}
+#endif
+
const static struct TelnetCallback
telnet_callback = {
_telnet_write_data_cb,
_telnet_resize_term_cb,
+
#ifdef DETECT_CLIENT
_telnet_update_cc_cb,
#else
NULL,
#endif
+
+#ifdef REPORT_OPENFD_IN_AYT
+ _telnet_send_ayt_cb,
+#else
+ NULL,
+#endif
};
///////////////////////////////////////////////////////////////////////
@@ -1162,6 +1184,9 @@ listen_cb(int lfd, short event, void *arg)
#ifdef DETECT_CLIENT
telnet_ctx_set_cc_arg(&conn->telnet, (void*) &conn->ctx);
#endif
+#ifdef REPORT_OPENFD_IN_AYT
+ telnet_ctx_set_ayt_arg(&conn->telnet, (void*) conn); // use conn for buffered events
+#endif
// better send after all parameters were set
telnet_ctx_send_init_cmds(&conn->telnet);