9
0
Fork 0

msc: Move more state into the sccp_state.c

This commit is contained in:
Holger Hans Peter Freyther 2011-02-15 21:27:20 +01:00
parent 3d4d8c7b50
commit 2cdb73cf4a
3 changed files with 11 additions and 25 deletions

View File

@ -70,7 +70,6 @@ struct msc_connection {
/* msc related functions */
void msc_send_rlc(struct msc_connection *bsc, struct sccp_source_reference *src, struct sccp_source_reference *dest);
void msc_send_reset(struct msc_connection *bsc);
void msc_send_msg(struct msc_connection *bsc, int rc, struct sccp_parse_result *, struct msgb *msg);
void msc_send_direct(struct msc_connection *bsc, struct msgb *msg);
void msc_close_connection(struct msc_connection *data);

View File

@ -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;

View File

@ -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);
msc_send_msg(fw, rc, &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_direct(link->fw, msg);
}
void mtp_link_set_forward_isup(struct mtp_link_set *set, struct msgb *msg, int sls)