aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-06-21 17:55:56 +0700
committerHarald Welte <laforge@gnumonks.org>2018-07-30 21:28:01 +0200
commitfcc24ed553100f0d7850de6c0388e6e84fe73e1c (patch)
tree8d11139dc64f8836b6c1f3de1340245feb304f4b
parentf2f83b07f36d9676e02f90320d69b3f63f55d8e8 (diff)
libmsc/gsm_09_11.c: properly handle MS-initiated release
According to GSM TS 02.90, section 4.3, release of the connection used for SS/USSD is normally the responsibility of the network. But the user may also initiate connection release, e.g. by pressing the 'red button'. TTCN-3 test case: I7936ed5072ed2ae02f039dc90a1fece1e7f70a70 Change-Id: I76fc277bf9db614a97824b1541cd5bb75aa3e29d
-rw-r--r--src/libmsc/gsm_09_11.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c
index 9423ec732..96acd8c4a 100644
--- a/src/libmsc/gsm_09_11.c
+++ b/src/libmsc/gsm_09_11.c
@@ -179,8 +179,11 @@ int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg)
goto error;
}
- /* Don't release connection, wait for response */
- msc_subscr_conn_communicating(conn);
+ /* Should we release connection? Or wait for response? */
+ if (msg_type == GSM0480_MTYPE_RELEASE_COMPLETE)
+ trans_free(trans);
+ else
+ msc_subscr_conn_communicating(conn);
return 0;