aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-02-15 21:27:20 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-02-17 19:34:27 +0100
commit2cdb73cf4a0bb9e7a47cdb6eba4601d00e4eb0d2 (patch)
tree9ad7a9ecc757f9f46c8a73bf071e1d52c98dee70 /src
parent3d4d8c7b5098776867b7b2192b00d02ab1e9da7f (diff)
msc: Move more state into the sccp_state.c
Diffstat (limited to 'src')
-rw-r--r--src/msc_conn.c23
-rw-r--r--src/sccp_state.c12
2 files changed, 11 insertions, 24 deletions
diff --git a/src/msc_conn.c b/src/msc_conn.c
index a384290..84f6161 100644
--- a/src/msc_conn.c
+++ b/src/msc_conn.c
@@ -21,8 +21,6 @@
#include <msc_connection.h>
#include <bsc_data.h>
-#include <bsc_ussd.h>
-#include <bss_patch.h>
#include <bsc_sccp.h>
#include <bssap_sccp.h>
#include <ipaccess.h>
@@ -520,27 +518,6 @@ void msc_send_direct(struct msc_connection *fw, struct msgb *msg)
return msc_send(fw, msg, IPAC_PROTO_SCCP);
}
-void msc_send_msg(struct msc_connection *fw, int rc, struct sccp_parse_result *result, struct msgb *_msg)
-{
- struct msgb *msg;
-
- if (fw->msc_connection.bfd.fd < 0) {
- LOGP(DMSC, LOGL_ERROR, "No connection to the MSC. dropping\n");
- return;
- }
-
- bsc_ussd_handle_out_msg(fw, result, _msg);
-
- msg = msgb_alloc_headroom(4096, 128, "SCCP to MSC");
- if (!msg) {
- LOGP(DMSC, LOGL_ERROR, "Failed to alloc MSC msg.\n");
- return;
- }
-
- bss_rewrite_header_for_msc(rc, msg, _msg, result);
- msc_send(fw, msg, IPAC_PROTO_SCCP);
-}
-
struct msc_connection *msc_connection_create(struct bsc_data *bsc, int mgcp)
{
struct msc_connection *msc;
diff --git a/src/sccp_state.c b/src/sccp_state.c
index 74f571d..27cef5e 100644
--- a/src/sccp_state.c
+++ b/src/sccp_state.c
@@ -69,6 +69,7 @@ void mtp_link_set_forward_sccp(struct mtp_link_set *link, struct msgb *_msg, int
int rc;
struct sccp_parse_result result;
struct msc_connection *fw = link->fw;
+ struct msgb *msg;
if (fw->forward_only) {
msc_send_direct(fw, _msg);
@@ -111,8 +112,17 @@ void mtp_link_set_forward_sccp(struct mtp_link_set *link, struct msgb *_msg, int
return;
}
+ /* now send it out */
+ bsc_ussd_handle_out_msg(link->fw, &result, _msg);
+
+ msg = msgb_alloc_headroom(4096, 128, "SCCP to MSC");
+ if (!msg) {
+ LOGP(DMSC, LOGL_ERROR, "Failed to alloc MSC msg.\n");
+ return;
+ }
- msc_send_msg(fw, rc, &result, _msg);
+ bss_rewrite_header_for_msc(rc, msg, _msg, &result);
+ msc_send_direct(link->fw, msg);
}
void mtp_link_set_forward_isup(struct mtp_link_set *set, struct msgb *msg, int sls)