aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-02-27 16:56:59 +0100
committerHarald Welte <laforge@gnumonks.org>2017-02-28 18:28:03 +0000
commite0d5caa91694e945f4f4af8d424161a4c5e1ec18 (patch)
tree512a8c42ed3ada391f5cc6bf5ffcd1120a526a1f /openbsc
parentacc6e8323afad3cf7a2661b5c020f81d1dd9b0aa (diff)
silent_call: remove unfinished fuzzer interface
Remove the fuzzer interface that was partially implemented in gsm_04_08.c and silent_call.c is causing problems when an SMS is sent during an active silent call. The reason for this is that gsm0408_dispatch() in gsm_04_08.c would decide to rout all uplink traffic to silent_call_rx() in silent_call.c. silent_call_rx() is a stub function that discards the data. This patch removes the fuzzer interface code by placing ifdefs around it, so that it can be re-activated by experimentators. Change-Id: Id500197d58663b3f4b1756136343670388b0a4bc
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/include/openbsc/silent_call.h3
-rw-r--r--openbsc/src/libmsc/gsm_04_08.c2
-rw-r--r--openbsc/src/libmsc/silent_call.c4
3 files changed, 9 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/silent_call.h b/openbsc/include/openbsc/silent_call.h
index 2492903c2..619a54327 100644
--- a/openbsc/include/openbsc/silent_call.h
+++ b/openbsc/include/openbsc/silent_call.h
@@ -6,7 +6,10 @@ struct gsm_subscriber_connection;
extern int gsm_silent_call_start(struct gsm_subscriber *subscr,
void *data, int type);
extern int gsm_silent_call_stop(struct gsm_subscriber *subscr);
+
+#if 0
extern int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg);
extern int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg);
+#endif
#endif /* _SILENT_CALL_H */
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index be43956c1..3cc86ba37 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -3958,8 +3958,10 @@ int gsm0408_dispatch(struct gsm_subscriber_connection *conn, struct msgb *msg)
OSMO_ASSERT(msg);
LOGP(DRLL, LOGL_DEBUG, "Dispatching 04.08 message, pdisc=%d\n", pdisc);
+#if 0
if (silent_call_reroute(conn, msg))
return silent_call_rx(conn, msg);
+#endif
switch (pdisc) {
case GSM48_PDISC_CC:
diff --git a/openbsc/src/libmsc/silent_call.c b/openbsc/src/libmsc/silent_call.c
index 131a1786b..590d01bbf 100644
--- a/openbsc/src/libmsc/silent_call.c
+++ b/openbsc/src/libmsc/silent_call.c
@@ -72,6 +72,7 @@ static int paging_cb_silent(unsigned int hooknum, unsigned int event,
return rc;
}
+#if 0
/* receive a layer 3 message from a silent call */
int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg)
{
@@ -79,6 +80,7 @@ int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg)
LOGP(DLSMS, LOGL_NOTICE, "Discarding L3 message from a silent call.\n");
return 0;
}
+#endif
struct msg_match {
uint8_t pdisc;
@@ -91,6 +93,7 @@ static const struct msg_match silent_call_accept[] = {
{ GSM48_PDISC_MM, GSM48_MT_MM_CM_SERV_REQ },
};
+#if 0
/* decide if we need to reroute a message as part of a silent call */
int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg)
{
@@ -114,6 +117,7 @@ int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg
LOGP(DLSMS, LOGL_INFO, "Rerouting L3 message from a silent call.\n");
return 1;
}
+#endif
/* initiate a silent call with a given subscriber */