From 17a4ac8d12cff23369b830be656eaa1e6d767798 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Mon, 9 Mar 2026 06:36:48 -0400 Subject: handle CTCP responses, especially PING. --- src/cmd.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/cmd.c') diff --git a/src/cmd.c b/src/cmd.c index ea6d6cf..e871240 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -13,6 +13,7 @@ char *command, *arg1, *arg2, *arg3; static char *target; static void do_away(void); +static void do_bell(void); static void do_color(void); static void do_ctcp(void); static void do_info(void); @@ -41,6 +42,7 @@ typedef struct { */ cmd_t command_defs[] = { { "AWAY", do_away, 1 }, + { "BELL", do_bell, 1 }, { "COLOR", do_color, 1 }, { "CTCP", do_ctcp, 1 }, { "INFO", do_info, 0 }, @@ -227,9 +229,20 @@ static void send_ctcp(void) { txbuf_send(); } +long read_rtclok(void) { + return (OS.rtclok[0] << 16) | (OS.rtclok[1] << 8) | OS.rtclok[2]; +} + +static void rtclok_to_numbuf(void) { + long r; + r = read_rtclok(); + ltoa(r, numbuf, 10); +} + static void do_ctcp_ping(void) { arg2 = "PING"; - arg3 = "0xdeadbeef"; + rtclok_to_numbuf(); + arg3 = numbuf; send_ctcp(); } @@ -353,6 +366,10 @@ static void do_away(void) { txbuf_send(); } +static void do_bell(void) { + bell_type = *arg1 - '0'; +} + static int cmd_local(void) { arg1 = nextarg(command); -- cgit v1.2.3