summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src/mobile/main.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-03-02 10:35:04 +0100
committerHarald Welte <laforge@gnumonks.org>2011-03-02 10:35:39 +0100
commit4be57b9afd0f7a07361a5ac24a271adfd5e302d1 (patch)
treef7895453fcdb5a04a3f54caa34e22440da90739d /src/host/layer23/src/mobile/main.c
parentb7a4d8d9128076d83bd70157299ef0a7a8717a0c (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.c17
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);