From 143f820c68e3d15d8864211eb51d1e2c2548937b Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Sat, 25 Dec 2021 14:49:38 +0000 Subject: [PATCH] TelnetServer: Port to LibMain This is only a very basic change, since the fallible function calls are all inside the `on_ready_to_accept` callback. --- Userland/Services/TelnetServer/CMakeLists.txt | 2 +- Userland/Services/TelnetServer/main.cpp | 21 +++++++------------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Userland/Services/TelnetServer/CMakeLists.txt b/Userland/Services/TelnetServer/CMakeLists.txt index 9f0ebb5414..061e22a03e 100644 --- a/Userland/Services/TelnetServer/CMakeLists.txt +++ b/Userland/Services/TelnetServer/CMakeLists.txt @@ -10,4 +10,4 @@ set(SOURCES ) serenity_bin(TelnetServer) -target_link_libraries(TelnetServer LibCore) +target_link_libraries(TelnetServer LibCore LibMain) diff --git a/Userland/Services/TelnetServer/main.cpp b/Userland/Services/TelnetServer/main.cpp index 534f264942..7d274c98a2 100644 --- a/Userland/Services/TelnetServer/main.cpp +++ b/Userland/Services/TelnetServer/main.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -21,7 +22,7 @@ static void run_command(int ptm_fd, String command) { pid_t pid = fork(); if (pid == 0) { - const char* tty_name = ptsname(ptm_fd); + char const* tty_name = ptsname(ptm_fd); if (!tty_name) { perror("ptsname"); exit(1); @@ -65,12 +66,12 @@ static void run_command(int ptm_fd, String command) perror("ioctl(TIOCSCTTY)"); exit(1); } - const char* args[4] = { "/bin/Shell", nullptr, nullptr, nullptr }; + char const* args[4] = { "/bin/Shell", nullptr, nullptr, nullptr }; if (!command.is_empty()) { args[1] = "-c"; args[2] = command.characters(); } - const char* envs[] = { "TERM=xterm", "PATH=/usr/local/bin:/usr/bin:/bin", nullptr }; + char const* envs[] = { "TERM=xterm", "PATH=/usr/local/bin:/usr/bin:/bin", nullptr }; rc = execve("/bin/Shell", const_cast(args), const_cast(envs)); if (rc < 0) { perror("execve"); @@ -80,15 +81,15 @@ static void run_command(int ptm_fd, String command) } } -int main(int argc, char** argv) +ErrorOr serenity_main(Main::Arguments arguments) { int port = 23; - const char* command = ""; + char const* command = ""; Core::ArgsParser args_parser; args_parser.add_option(port, "Port to listen on", nullptr, 'p', "port"); args_parser.add_option(command, "Program to run on connection", nullptr, 'c', "command"); - args_parser.parse(argc, argv); + args_parser.parse(arguments); if ((u16)port != port) { warnln("Invalid port number: {}", port); @@ -148,11 +149,5 @@ int main(int argc, char** argv) clients.set(id, client); }; - int rc = event_loop.exec(); - if (rc != 0) { - fprintf(stderr, "event loop exited badly; rc=%d", rc); - exit(1); - } - - return 0; + return event_loop.exec(); }