aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/osmo-nitb/bsc_hack.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/osmo-nitb/bsc_hack.c')
-rw-r--r--openbsc/src/osmo-nitb/bsc_hack.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index 5a274e3f5..eb0b3bb13 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -1,7 +1,7 @@
/* A hackish minimal BSC (+MSC +HLR) implementation */
/* (C) 2008-2010 by Harald Welte <laforge@gnumonks.org>
- * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2009-2012 by Holger Hans Peter Freyther <zecke@selfish.org>
* All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
@@ -46,13 +46,16 @@
#include <openbsc/handover_decision.h>
#include <openbsc/rrlp.h>
#include <openbsc/control_if.h>
+#include <openbsc/osmo_bsc_rf.h>
#include "../../bscconfig.h"
/* MCC and MNC for the Location Area Identifier */
struct gsm_network *bsc_gsmnet = 0;
+static struct osmo_bsc_rf *rf_ctrl;
static const char *database_name = "hlr.sqlite3";
static const char *config_file = "openbsc.cfg";
+static const char *rf_ctrl_name = NULL;
extern const char *openbsc_copyright;
static int daemonize = 0;
static int use_mncc_sock = 0;
@@ -97,6 +100,7 @@ static void print_help()
printf(" -e --log-level number. Set a global loglevel.\n");
printf(" -m --mncc-sock Disable built-in MNCC handler and offer socket\n");
printf(" -C --no-dbcounter Disable regular syncing of counters to database\n");
+ printf(" -r --rf-ctl NAME. A unix domain socket to listen for cmds.\n");
}
static void handle_options(int argc, char **argv)
@@ -118,10 +122,11 @@ static void handle_options(int argc, char **argv)
{"log-level", 1, 0, 'e'},
{"mncc-sock", 0, 0, 'm'},
{"no-dbcounter", 0, 0, 'C'},
+ {"rf-ctl", 1, 0, 'r'},
{0, 0, 0, 0}
};
- c = getopt_long(argc, argv, "hd:Dsl:ar:p:TPVc:e:mC",
+ c = getopt_long(argc, argv, "hd:Dsl:ar:p:TPVc:e:mCr:",
long_options, &option_index);
if (c == -1)
break;
@@ -168,6 +173,9 @@ static void handle_options(int argc, char **argv)
print_version(1);
exit(0);
break;
+ case 'r':
+ rf_ctrl_name = optarg;
+ break;
default:
/* ignore */
break;
@@ -264,6 +272,14 @@ int main(int argc, char **argv)
/* seed the PRNG */
srand(time(NULL));
+ if (rf_ctrl_name) {
+ rf_ctrl = osmo_bsc_rf_create(rf_ctrl_name, bsc_gsmnet);
+ if (!rf_ctrl) {
+ fprintf(stderr, "Failed to create the RF service.\n");
+ exit(1);
+ }
+ }
+
if (db_init(database_name)) {
printf("DB: Failed to init database. Please check the option settings.\n");
return -1;