diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-03-19 04:29:39 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-03-19 04:29:39 -0400 |
| commit | 685c14f1f9673842ab92ec00c3542e61c4be9cd2 (patch) | |
| tree | dcef3ff65c28f02ffccbdb8fe1f7b95d15da68f1 /src | |
| parent | df6181a60dcff1badefaefc1d3148d0dc9246739 (diff) | |
| download | fujinet-chat-685c14f1f9673842ab92ec00c3542e61c4be9cd2.tar.gz | |
Add /reboot command.
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd.c | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -34,6 +34,7 @@ static void do_quote(void); static void do_topic(void); static void do_ver(void); static void do_reset(void); +static void do_reboot(void); typedef struct { char *cmd; @@ -67,6 +68,7 @@ cmd_t command_defs[] = { { "QUIT", do_quit, 0 }, { "QUOTE", do_quote, 1 }, { "TOPIC", do_topic, 0 }, + { "REBOOT", do_reboot, 0 }, { "RESET", do_reset, 0 }, { "VER", do_ver, 0 }, { "VERSION", do_ver, 0 }, @@ -194,11 +196,27 @@ static void do_j(void) { static void do_quit(void) { reconnect_timeout = 0; /* do not reconnect on /quit */ txbuf_set_str("QUIT"); - if(arg1) + if(arg1) { txbuf_append_str2(" :", arg1); + } txbuf_send(); } +static void pause(void) { + OS.rtclok[2] = 0; + while(OS.rtclok[2] < hz) + /* NOP */; +} + +static void do_reboot(void) { + arg1 = "Rebooting again..."; + do_quit(); + pause(); + do_reset(); + pause(); + asm("jmp $e477"); +} + static void do_part(void) { if(arg1[0] == '#') { target = arg1; |
