Files
openrouter/src/settings/ssh/port.cpp
T
wt 6fe6a1aaf8
Prepare Build and Testing executable binary / Prepare-Build-Testing-With-Make (push) Has been cancelled
Prepare Build and Testing executable binary / Prepare-Build-Testing-With-CMake (push) Has been cancelled
Prepare Build and Testing executable binary / Prepare-Build-Testing-With-Meson (push) Has been cancelled
updated added classes and updated web
2025-04-24 13:56:58 +07:00

58 lines
2.0 KiB
C++

#include <settings/ssh/ssh.hpp>
#include <iostream>
#include <string>
#include <string>
#include <syslog.h>
#include <config/config.hpp>
#define SSH_PORT_REQUIRED_STRING R"({"required":"[token,port]"})"
#define DROPBEAR_DEFAULT_FILE "/etc/default/dropbear"
#define SSHD_CONFIG_FILE "/etc/ssh/sshd_config"
namespace api
{
namespace settings
{
namespace ssh
{
void Ssh::set_ssh_port(int new_ssh_port)
{
std::string old_ssh_port_string = config::config.getConfig()["settings"]["ssh"]["port"];
int old_ssh_port = std::stoi(old_ssh_port_string);
std::string systemrequest;
std::string ssh_server = get_ssh_server();
if (ssh_server == DROPBEAR_SSH)
{
systemrequest += "sed -i \"s/DROPBEAR_PORT=" \
+ std::to_string(old_ssh_port) \
+ "/DROPBEAR_PORT=" \
+ std::to_string(new_ssh_port) \
+ "/g\" " \
+ DROPBEAR_DEFAULT_FILE;
}
else if (ssh_server == OPENSSH_SSH)
{
systemrequest += "sed -i \"/Port " \
+ std::to_string(old_ssh_port) \
+ "/s//Port " \
+ std::to_string(new_ssh_port) \
+ "/\" " \
+ SSHD_CONFIG_FILE;
}
std::cout << systemrequest << std::endl;
system(systemrequest.c_str());
if (ssh_server == OPENSSH_SSH)
{
system("rc restart ssh");
}
else if (ssh_server == DROPBEAR_SSH)
{
system("rc restart dropbear");
}
std::string syslogstring = "SSH port changed to " + std::to_string(new_ssh_port);
syslog(LOG_INFO, "%s", syslogstring.c_str());
}
}
}
}