aboutsummaryrefslogtreecommitdiffstats
path: root/src/msc_conn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/msc_conn.c')
-rw-r--r--src/msc_conn.c45
1 files changed, 5 insertions, 40 deletions
diff --git a/src/msc_conn.c b/src/msc_conn.c
index 77c4039..bc05744 100644
--- a/src/msc_conn.c
+++ b/src/msc_conn.c
@@ -46,48 +46,13 @@ static void msc_send_id_response(struct bsc_data *bsc);
static void msc_send(struct bsc_data *bsc, struct msgb *msg, int proto);
static void msc_schedule_reconnect(struct bsc_data *bsc);
-void mtp_link_slta_recv(struct mtp_link *link)
+int send_or_queue_bsc_msg(struct mtp_link_set *link, int sls, struct msgb *msg)
{
- struct msgb *msg;
- unsigned int sls;
-
- while (!llist_empty(&link->pending_msgs)) {
- msg = msgb_dequeue(&link->pending_msgs);
- sls = (unsigned int) msg->l3h;
-
- if (mtp_link_submit_sccp_data(link, sls, msg->l2h, msgb_l2len(msg)) != 0)
- LOGP(DMSC, LOGL_ERROR, "Could not forward SCCP message.\n");
-
- msgb_free(msg);
- }
-}
-
-int send_or_queue_bsc_msg(struct mtp_link *link, int sls, struct msgb *msg)
-{
- if (link->sltm_pending) {
- LOGP(DMSC, LOGL_NOTICE, "Queueing msg for pending SLTM.\n");
- msg->l3h = (uint8_t *) sls;
- msgb_enqueue(&link->pending_msgs, msg);
- return 1;
- }
-
- if (mtp_link_submit_sccp_data(link, sls, msg->l2h, msgb_l2len(msg)) != 0)
+ if (mtp_link_set_submit_sccp_data(link, sls, msg->l2h, msgb_l2len(msg)) != 0)
LOGP(DMSC, LOGL_ERROR, "Could not forward SCCP message.\n");
return 0;
}
-
-void msc_clear_queue(struct bsc_data *data)
-{
- struct msgb *msg;
-
- LOGP(DMSC, LOGL_NOTICE, "Clearing the MSC to BSC queue.\n");
- while (!llist_empty(&data->link.the_link->pending_msgs)) {
- msg = msgb_dequeue(&data->link.the_link->pending_msgs);
- msgb_free(msg);
- }
-}
-
void msc_close_connection(struct bsc_data *bsc)
{
struct bsc_fd *bfd = &bsc->msc_connection.bfd;
@@ -157,7 +122,7 @@ static int ipaccess_a_fd_cb(struct bsc_fd *bfd)
{
int error;
struct ipaccess_head *hh;
- struct mtp_link *link;
+ struct mtp_link_set *link;
struct bsc_data *bsc;
struct msgb *msg;
@@ -181,7 +146,7 @@ static int ipaccess_a_fd_cb(struct bsc_fd *bfd)
hh = (struct ipaccess_head *) msg->data;
ipaccess_rcvmsg_base(msg, bfd);
- link = bsc->link.the_link;
+ link = bsc->link_set;
/* initialize the networking. This includes sending a GSM08.08 message */
if (hh->proto == IPAC_PROTO_IPACCESS) {
@@ -203,7 +168,7 @@ static int ipaccess_a_fd_cb(struct bsc_fd *bfd)
/* we can not forward it right now */
if (bsc->forward_only && link->sccp_up) {
- if (send_or_queue_bsc_msg(link, 13, msg) != 1)
+ if (send_or_queue_bsc_msg(link, -1, msg) != 1)
msgb_free(msg);
return 0;
}