diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-03-02 10:35:04 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-03-02 10:35:39 +0100 |
commit | 4be57b9afd0f7a07361a5ac24a271adfd5e302d1 (patch) | |
tree | f7895453fcdb5a04a3f54caa34e22440da90739d /src/host/layer23/src/mobile/main.c | |
parent | b7a4d8d9128076d83bd70157299ef0a7a8717a0c (diff) |
mobile: Use config file in ~/.osmocom/bb/mobile.cfg
We don't need root permission and a system-wide config file in /etc/osmocom
Based on a patch by Pierre Pronchery <khorben@defora.org>
Diffstat (limited to 'src/host/layer23/src/mobile/main.c')
-rw-r--r-- | src/host/layer23/src/mobile/main.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/host/layer23/src/mobile/main.c b/src/host/layer23/src/mobile/main.c index 87aa4c6e..5c66510f 100644 --- a/src/host/layer23/src/mobile/main.c +++ b/src/host/layer23/src/mobile/main.c @@ -35,7 +35,9 @@ #define _GNU_SOURCE #include <getopt.h> #include <stdlib.h> +#include <stdio.h> #include <unistd.h> +#include <string.h> #include <errno.h> #include <fcntl.h> #include <signal.h> @@ -44,7 +46,6 @@ struct log_target *stderr_target; void *l23_ctx = NULL; -static const char *config_file = "/etc/osmocom/osmocom.cfg"; struct llist_head ms_list; static uint32_t gsmtap_ip = 0; unsigned short vty_port = 4247; @@ -129,7 +130,7 @@ void sighandler(int sigset) if (sigset == SIGHUP || sigset == SIGPIPE) return; - fprintf(stderr, "Signal %d recevied.\n", sigset); + fprintf(stderr, "Signal %d received.\n", sigset); /* in case there is a lockup during exit */ signal(SIGINT, SIG_DFL); @@ -144,6 +145,10 @@ int main(int argc, char **argv) { int quit = 0; int rc; + char const * home; + size_t len; + const char osmocomcfg[] = ".osmocom/bb/mobile.cfg"; + char *config_file = NULL; printf("%s\n", openbsc_copyright); @@ -171,7 +176,15 @@ int main(int argc, char **argv) } } + home = getenv("HOME"); + if (home != NULL) { + len = strlen(home) + 1 + sizeof(osmocomcfg); + config_file = talloc_size(l23_ctx, len); + if (config_file != NULL) + snprintf(config_file, len, "%s/%s", home, osmocomcfg); + } rc = l23_app_init(NULL, config_file, vty_port); + talloc_free(config_file); if (rc) exit(rc); |