Add support for setting API port from the config file (#8435)
* Add support for setting API port from the config file * Update PortduinoGlue.cpp Fix typo in var identifier --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This commit is contained in:
@@ -55,6 +55,7 @@ void cpuDeepSleep(uint32_t msecs)
|
|||||||
void updateBatteryLevel(uint8_t level) NOT_IMPLEMENTED("updateBatteryLevel");
|
void updateBatteryLevel(uint8_t level) NOT_IMPLEMENTED("updateBatteryLevel");
|
||||||
|
|
||||||
int TCPPort = SERVER_API_DEFAULT_PORT;
|
int TCPPort = SERVER_API_DEFAULT_PORT;
|
||||||
|
bool checkConfigPort = true;
|
||||||
|
|
||||||
static error_t parse_opt(int key, char *arg, struct argp_state *state)
|
static error_t parse_opt(int key, char *arg, struct argp_state *state)
|
||||||
{
|
{
|
||||||
@@ -63,6 +64,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
|
|||||||
if (sscanf(arg, "%d", &TCPPort) < 1)
|
if (sscanf(arg, "%d", &TCPPort) < 1)
|
||||||
return ARGP_ERR_UNKNOWN;
|
return ARGP_ERR_UNKNOWN;
|
||||||
else
|
else
|
||||||
|
checkConfigPort = false;
|
||||||
printf("Using config file %d\n", TCPPort);
|
printf("Using config file %d\n", TCPPort);
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
@@ -870,6 +872,14 @@ bool loadConfig(const char *configPath)
|
|||||||
std::cout << "Cannot set both MACAddress and MACAddressSource!" << std::endl;
|
std::cout << "Cannot set both MACAddress and MACAddressSource!" << std::endl;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
if (checkConfigPort) {
|
||||||
|
portduino_config.api_port = (yamlConfig["General"]["APIPort"]).as<int>(-1);
|
||||||
|
if (portduino_config.api_port != -1 &&
|
||||||
|
portduino_config.api_port > 1023 &&
|
||||||
|
portduino_config.api_port < 65536) {
|
||||||
|
TCPPort = (portduino_config.api_port);
|
||||||
|
}
|
||||||
|
}
|
||||||
portduino_config.mac_address = (yamlConfig["General"]["MACAddress"]).as<std::string>("");
|
portduino_config.mac_address = (yamlConfig["General"]["MACAddress"]).as<std::string>("");
|
||||||
if (portduino_config.mac_address != "") {
|
if (portduino_config.mac_address != "") {
|
||||||
portduino_config.mac_address_explicit = true;
|
portduino_config.mac_address_explicit = true;
|
||||||
|
|||||||
@@ -175,6 +175,7 @@ extern struct portduino_config_struct {
|
|||||||
std::string mac_address = "";
|
std::string mac_address = "";
|
||||||
bool mac_address_explicit = false;
|
bool mac_address_explicit = false;
|
||||||
std::string mac_address_source = "";
|
std::string mac_address_source = "";
|
||||||
|
int api_port = -1;
|
||||||
std::string config_directory = "";
|
std::string config_directory = "";
|
||||||
std::string available_directory = "/etc/meshtasticd/available.d/";
|
std::string available_directory = "/etc/meshtasticd/available.d/";
|
||||||
int maxtophone = 100;
|
int maxtophone = 100;
|
||||||
@@ -508,6 +509,8 @@ extern struct portduino_config_struct {
|
|||||||
out << YAML::Key << "General" << YAML::Value << YAML::BeginMap;
|
out << YAML::Key << "General" << YAML::Value << YAML::BeginMap;
|
||||||
if (config_directory != "")
|
if (config_directory != "")
|
||||||
out << YAML::Key << "ConfigDirectory" << YAML::Value << config_directory;
|
out << YAML::Key << "ConfigDirectory" << YAML::Value << config_directory;
|
||||||
|
if (api_port != -1)
|
||||||
|
out << YAML::Key << "TCPPort" << YAML::Value << api_port;
|
||||||
if (mac_address_explicit)
|
if (mac_address_explicit)
|
||||||
out << YAML::Key << "MACAddress" << YAML::Value << mac_address;
|
out << YAML::Key << "MACAddress" << YAML::Value << mac_address;
|
||||||
if (mac_address_source != "")
|
if (mac_address_source != "")
|
||||||
|
|||||||
Reference in New Issue
Block a user