From 7c88b136efc4a965ba2b54a81f7beb214f830159 Mon Sep 17 00:00:00 2001 From: TolaMironcenko Date: Fri, 5 Jul 2024 18:49:23 +0700 Subject: [PATCH] add-rc.d rm-rc.d scripts --- openrouter/src/settings/dns/enabled.cpp | 4 ++-- openrouter/src/settings/ftp/ftp.cpp | 4 ++-- openrouter/src/settings/ssh/status.cpp | 4 ++-- openrouter/src/settings/telnet/enabled.cpp | 4 ++-- rootfs/usr/bin/add-rc.d | 16 ++++++++++++++++ rootfs/usr/bin/rm-rc.d | 15 +++++++++++++++ 6 files changed, 39 insertions(+), 8 deletions(-) create mode 100755 rootfs/usr/bin/add-rc.d create mode 100755 rootfs/usr/bin/rm-rc.d diff --git a/openrouter/src/settings/dns/enabled.cpp b/openrouter/src/settings/dns/enabled.cpp index cff5975..465008b 100644 --- a/openrouter/src/settings/dns/enabled.cpp +++ b/openrouter/src/settings/dns/enabled.cpp @@ -78,11 +78,11 @@ void set_dns(const httplib::Request &request, httplib::Response &response) { std::string new_dns_enabled = json_body["enabled"]; if (new_dns_enabled == "0") { system("/etc/init.d/dnsmasq stop"); - system("rm /etc/rc.d/60dnsmasq"); + system("rm-rc.d 60dnsmasq"); syslog(LOG_INFO, "DNS is disabled"); } else { system("/etc/init.d/dnsmasq restart"); - system("ln -sv /etc/init.d/dnsmasq /etc/rc.d/60dnsmasq"); + system("add-rc.d dnsmasq 60"); syslog(LOG_INFO, "DNS is enabled"); } dnsfileout << stoi(new_dns_enabled); diff --git a/openrouter/src/settings/ftp/ftp.cpp b/openrouter/src/settings/ftp/ftp.cpp index 589b51b..8690a78 100644 --- a/openrouter/src/settings/ftp/ftp.cpp +++ b/openrouter/src/settings/ftp/ftp.cpp @@ -78,11 +78,11 @@ void set_ftp(const httplib::Request &request, httplib::Response &response) { std::string new_ftp_enabled = json_body["enabled"]; if (new_ftp_enabled == "0") { system("/etc/init.d/ftp stop"); - system("rm /etc/rc.d/90ftp"); + system("rm-rc 90ftp"); syslog(LOG_INFO, "Ftp is disabled"); } else { system("/etc/init.d/ftp start"); - system("ln -sv /etc/init.d/ftp /etc/rc.d/90ftp"); + system("add-rc ftp 90"); syslog(LOG_INFO, "Ftp is enabled"); } ftpfileout << stoi(new_ftp_enabled); diff --git a/openrouter/src/settings/ssh/status.cpp b/openrouter/src/settings/ssh/status.cpp index b85612c..3eb6858 100644 --- a/openrouter/src/settings/ssh/status.cpp +++ b/openrouter/src/settings/ssh/status.cpp @@ -77,11 +77,11 @@ void set_ssh_status(const httplib::Request &request, httplib::Response &response std::string new_ssh_status = json_body["status"]; if (new_ssh_status == "0") { system("/etc/init.d/ssh stop"); - system("rm /etc/rc.d/75ssh"); + system("rm-rc.d 75ssh"); syslog(LOG_INFO, "SSH is disabled"); } else { system("/etc/init.d/ssh start"); - system("ln -sv /etc/init.d/ssh /etc/rc.d/75ssh"); + system("add-rc.d ssh 75"); syslog(LOG_INFO, "SSH is enabled"); } sshfileout << stoi(new_ssh_status); diff --git a/openrouter/src/settings/telnet/enabled.cpp b/openrouter/src/settings/telnet/enabled.cpp index 2eede11..73d7f0e 100644 --- a/openrouter/src/settings/telnet/enabled.cpp +++ b/openrouter/src/settings/telnet/enabled.cpp @@ -82,11 +82,11 @@ void set_telnet(const httplib::Request &request, httplib::Response &response) { std::string new_telnet_enabled = json_body["enabled"]; if (new_telnet_enabled == "0") { system("/etc/init.d/telnet stop"); - system("rm /etc/rc.d/70telnet"); + system("rm-rc.d 70telnet"); syslog(LOG_INFO, "Telnet is disabled"); } else { system("/etc/init.d/telnet start"); - system("ln -sv /etc/init.d/telnet /etc/rc.d/70telnet"); + system("add-rc.d telnet 70"); syslog(LOG_INFO, "Telnet is enabled"); } telnetfileout << stoi(new_telnet_enabled); diff --git a/rootfs/usr/bin/add-rc.d b/rootfs/usr/bin/add-rc.d new file mode 100755 index 0000000..de02caf --- /dev/null +++ b/rootfs/usr/bin/add-rc.d @@ -0,0 +1,16 @@ +#!/bin/sh +if [ -f /etc/init.d/$1 ] && [ "$2" -gt 0 ]; then + cd /etc/rc.d + ln -sv ../init.d/$1 "$2$1" + echo "added $1 to init." +else + echo " + ** add-rc.d usage: + add-rc.d [init.d script name] [order number] + + examples: + add-rc.d httpd 40 + add-rc.d ftpd 40 + add-rc.d telnetd 50 + " +fi diff --git a/rootfs/usr/bin/rm-rc.d b/rootfs/usr/bin/rm-rc.d new file mode 100755 index 0000000..adeb53d --- /dev/null +++ b/rootfs/usr/bin/rm-rc.d @@ -0,0 +1,15 @@ +#!/bin/sh +if [ -f /etc/rc.d/$1 ]; then + rm -v /etc/rc.d/$1 + echo "removed $1 from init." +else + echo " + ** rm-rc.d usage: + rm-rc.d [rc.d link name] + + examples: + rm-rc.d 40httpd + rm-rc.d 40ftpd + rm-rc.d 50telnetd + " +fi