From 0a2d03fdaa47ce2bc9def14cae9aae675a8a3e9b Mon Sep 17 00:00:00 2001 From: Barry Kane Date: Tue, 19 Mar 2024 23:20:08 +0000 Subject: [PATCH] Added environment variable handling. * source/server/main.c (main): - Added environment variable handling. - Moved "Using" messages to after both command line arguments and enviroment variables are checked and applied. - Command-line arguments override enviroment variables. --- source/server/main.c | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/source/server/main.c b/source/server/main.c index a22f9c9..8795652 100644 --- a/source/server/main.c +++ b/source/server/main.c @@ -63,9 +63,24 @@ int main (int argc, char ** argv) {"port", required_argument, 0, 'p' }, {"host", required_argument, 0, 'h' }, {"interface", required_argument, 0, 'i' } - }; - + }; + // Check environment variables: + if (getenv("SILVERMUD_SERVER_PORT") != NULL) + { + portSpecified = true; + strncpy(serverPort, getenv("SILVERMUD_SERVER_HOST"), HOST_NAME_MAX); + } + if (getenv("SILVERMUD_SERVER_HOST") != NULL) + { + hostSpecified = true; + strncpy(serverHostname, getenv("SILVERMUD_SERVER_HOST"), HOST_NAME_MAX); + } + if (getenv("SILVERMUD_SERVER_INTERFACE") != NULL) + { + interfaceSpecified = true; + strncpy(serverInterface, getenv("SILVERMUD_SERVER_INTERFACE"), HOST_NAME_MAX); + } // Parse command-line options: int selectedOption = 0, optionIndex = 0; @@ -75,14 +90,13 @@ int main (int argc, char ** argv) { case 'p': { - printf("Using port: %s\n", optarg); portSpecified = true; strncpy(serverPort, optarg, HOST_NAME_MAX); break; } case 'h': { - printf("Using hostname: %s\n", optarg); + hostSpecified = true; strncpy(serverHostname, optarg, HOST_NAME_MAX); break; @@ -96,7 +110,22 @@ int main (int argc, char ** argv) } } } - + + if (portSpecified) + { + printf("Using port: %s\n", serverPort); + } + + if (hostSpecified) + { + printf("Using hostname: %s\n", serverHostname); + } + + if (interfaceSpecified) + { + printf("Using interface: %s\n", serverInterface); + } + // Initialize Scheme: scm_init_guile();