From 14068fefb5e5f43fc0bfd3d99aa30fa13faf2146 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Wed, 21 Feb 2024 10:22:25 -0500 Subject: Allow specifying bind address Add support for specifying the bind address via the optional configuration file. This is required for the KVM demo usecase where the service runs on the host and the homescreen in the guest needs to connect to it. Bug-AGL: SPEC-5082 Change-Id: I0af843f1ef55ef1d857730fbdec17163c6d88b4b Signed-off-by: Scott Murray --- src/main-grpc.cc | 26 ++++++++++++++++++++++++-- 1 file 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 @@ -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 -- cgit 1.2.3-korg