aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main-grpc.cc26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/main-grpc.cc b/src/main-grpc.cc
index 29e01f1..9b29adb 100644
--- a/src/main-grpc.cc
+++ b/src/main-grpc.cc
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: Apache-2.0
/*
- * Copyright (C) 2023 Konsulko Group
+ * Copyright (C) 2023,2024 Konsulko Group
*/
#include <thread>
@@ -40,8 +40,30 @@ int main(int argc, char *argv[])
grpc::reflection::InitProtoReflectionServerBuilderPlugin();
ServerBuilder builder;
+ // Load settings from configuration file if it exists
+ std::string bind_address = "localhost";
+ GKeyFile *conf_file = g_key_file_new();
+ if(conf_file &&
+ g_key_file_load_from_dirs(conf_file,
+ "AGL.conf",
+ (const gchar**) g_get_system_config_dirs(),
+ NULL,
+ G_KEY_FILE_KEEP_COMMENTS,
+ NULL) == TRUE) {
+
+ // Set band plan if it is specified
+ gchar *value_str = g_key_file_get_string(conf_file,
+ "radio",
+ "bind",
+ NULL);
+ if(value_str) {
+ bind_address = value_str;
+ }
+ }
+ g_key_file_free(conf_file);
+
// Listen on the given address without any authentication mechanism (for now)
- std::string server_address("localhost:50053");
+ std::string server_address(bind_address + ":50053");
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
// Register "service" as the instance through which we'll communicate with