handover_test: explicitly wrap abis_rsl_sendmsg()

Until now, handover_test simply defines an abis_rsl_sendmsg() function to
override the one from libosmo-babis. To me this amounts to implicit linker
magic (aka luck).

The common pattern we're using for this scenario is to explicitly wrap an
existing function by instructing the linker. Also do this for
abis_rsl_sendmsg() in handover_test.c to clarify.

Change-Id: I05ce33a4e42bc82b9ce5060e2f811033f5a1f8d8
This commit is contained in:
Neels Hofmeyr 2018-03-05 21:53:18 +01:00 committed by Neels Hofmeyr
parent 7ec27564c9
commit 1d7473cf02
2 changed files with 8 additions and 2 deletions

View File

@ -27,6 +27,10 @@ handover_test_SOURCES = \
handover_test.c \
$(NULL)
handover_test_LDFLAGS =\
-Wl,--wrap=abis_rsl_sendmsg \
$(NULL)
handover_test_LDADD = \
$(top_builddir)/src/libbsc/libbsc.a \
$(LIBOSMOCORE_LIBS) \

View File

@ -339,8 +339,10 @@ static void send_ho_complete(struct gsm_lchan *lchan, bool success)
abis_rsl_rcvmsg(msg);
}
/* RSL messages from BSC */
int abis_rsl_sendmsg(struct msgb *msg)
/* override, requires '-Wl,--wrap=abis_rsl_sendmsg'.
* Catch RSL messages sent towards the BTS. */
int __real_abis_rsl_sendmsg(struct msgb *msg);
int __wrap_abis_rsl_sendmsg(struct msgb *msg)
{
struct abis_rsl_dchan_hdr *dh = (struct abis_rsl_dchan_hdr *) msg->data;
struct e1inp_sign_link *sign_link = msg->dst;