aboutsummaryrefslogtreecommitdiffstats
path: root/src/links.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/links.c')
-rw-r--r--src/links.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/links.c b/src/links.c
index 6374afd..bf282b6 100644
--- a/src/links.c
+++ b/src/links.c
@@ -114,6 +114,7 @@ int link_init(struct bsc_data *bsc)
lnk = talloc_zero(bsc->link_set, struct mtp_udp_link);
lnk->base.pcap_fd = bsc->pcap_fd;
lnk->bsc = bsc;
+ lnk->data = &bsc->udp_data;
lnk->link_index = 1;
lnk->reset_timeout = bsc->udp_reset_timeout;
mtp_link_set_add_link(bsc->link_set, (struct mtp_link *) lnk);
@@ -126,12 +127,15 @@ int link_init(struct bsc_data *bsc)
LOGP(DINP, LOGL_NOTICE, "Using UDP MTP mode.\n");
/* setup SNMP first, it is blocking */
- lnk->session = snmp_mtp_session_create(bsc->udp_ip);
- if (!lnk->session)
+ bsc->udp_data.session = snmp_mtp_session_create(bsc->udp_ip);
+ if (!bsc->udp_data.session)
+ return -1;
+
+ if (link_global_init(&bsc->udp_data, bsc->src_port) != 0)
return -1;
/* now connect to the transport */
- if (link_udp_init(lnk, bsc->src_port, bsc->udp_ip, bsc->udp_port) != 0)
+ if (link_udp_init(lnk, bsc->udp_ip, bsc->udp_port) != 0)
return -1;
/*
@@ -140,7 +144,7 @@ int link_init(struct bsc_data *bsc)
* SLTM and it begins a reset. Then we will take it up
* again and do the usual business.
*/
- snmp_mtp_deactivate(lnk->session,
+ snmp_mtp_deactivate(lnk->data->session,
lnk->link_index);
bsc->start_timer.cb = start_rest;
bsc->start_timer.data = &bsc;