diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-11-03 19:03:35 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-11-15 20:06:47 +0100 |
commit | 7225fd18e07d28f3df2816d571f7368f3fe6fd7c (patch) | |
tree | dd11ec409abe79690be53d8270aff1ed5b344a5f /openbsc/src/bsc | |
parent | 1999cf11b9c3667990240bdd94a97ac912fb2a60 (diff) |
bsc: Add some basic checks to see if a SCCP connection is established
Diffstat (limited to 'openbsc/src/bsc')
-rw-r--r-- | openbsc/src/bsc/osmo_bsc_api.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/openbsc/src/bsc/osmo_bsc_api.c b/openbsc/src/bsc/osmo_bsc_api.c index f4b3148f8..82074e7e1 100644 --- a/openbsc/src/bsc/osmo_bsc_api.c +++ b/openbsc/src/bsc/osmo_bsc_api.c @@ -19,14 +19,29 @@ */ #include <openbsc/osmo_bsc.h> +#include <openbsc/debug.h> + +#define return_when_not_connected(conn) \ + if (!conn->sccp_con) {\ + LOGP(DMSC, LOGL_ERROR, "MSC Connection not present.\n"); \ + return; \ + } + +#define return_when_not_connected_val(conn, ret) \ + if (!conn->sccp_con) {\ + LOGP(DMSC, LOGL_ERROR, "MSC Connection not present.\n"); \ + return ret; \ + } static void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) { + return_when_not_connected(conn); } static void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr) { + return_when_not_connected(conn); } static int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, @@ -37,21 +52,25 @@ static int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg static void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) { + return_when_not_connected(conn); } static void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause, uint8_t chosen_channel, uint8_t encr_alg_id, uint8_t speech_model) { + return_when_not_connected(conn); } static void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) { + return_when_not_connected(conn); } static int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) { + return_when_not_connected_val(conn, 1); return 0; } |