aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2022-12-04 13:12:09 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2023-01-15 19:01:00 +0100
commit32a208781a04b314627c7195b6e73e01c1c1e41f (patch)
tree429394227a0b0c8fa2b93c7c15e1db629ac7a510
parent917454dd9c5e79b45e12b7654d259eff76fea6e4 (diff)
Remove mISDN header from received channel data
-rw-r--r--src/input/misdn.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/input/misdn.c b/src/input/misdn.c
index 5f6dd62..5d47a79 100644
--- a/src/input/misdn.c
+++ b/src/input/misdn.c
@@ -372,9 +372,10 @@ static int handle_tsX_read(struct osmo_fd *bfd)
switch (hh->prim) {
case PH_DATA_IND:
- msg->l2h = msg->data + MISDN_HEADER_LEN;
+ /* remove the Misdn Header */
+ msg->l2h = msgb_pull(msg, MISDN_HEADER_LEN);
LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "BCHAN RX: %s\n",
- osmo_hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN));
+ osmo_hexdump(msgb_l2(msg), msgb_l2len(msg)));
/* the number of bytes received indicates that data to send */
handle_tsX_write(bfd, msgb_l2len(msg));
return e1inp_rx_ts(e1i_ts, msg, 0, 0);
@@ -454,9 +455,10 @@ static int handle_ts_raw_read(struct osmo_fd *bfd)
switch (hh->prim) {
case PH_DATA_IND:
- msg->l2h = msg->data + MISDN_HEADER_LEN;
+ /* remove the Misdn Header */
+ msg->l2h = msgb_pull(msg, MISDN_HEADER_LEN);
LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "RAW CHAN RX: %s\n",
- osmo_hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN));
+ osmo_hexdump(msgb_l2(msg), msgb_l2len(msg)));
/* the number of bytes received indicates that data to send */
handle_ts_raw_write(bfd, msgb_l2len(msg));
return e1inp_rx_ts(e1i_ts, msg, 0, 0);
@@ -539,9 +541,11 @@ static int handle_ts_hdlc_read(struct osmo_fd *bfd)
switch (hh->prim) {
case PH_DATA_IND:
- msg->l2h = msg->data + MISDN_HEADER_LEN;
+ /* remove the Misdn Header */
+ msgb_pull(msg, MISDN_HEADER_LEN);
+ msg->l2h = msg->data;
LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "HDLC CHAN RX: %s\n",
- osmo_hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN));
+ osmo_hexdump(msgb_l2(msg), msgb_l2len(msg)));
return e1inp_rx_ts(e1i_ts, msg, 0, 0);
case PH_ACTIVATE_IND:
break;