summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas.Eversberg <jolly@eversberg.eu>2010-09-16 08:39:43 +0000
committerAndreas.Eversberg <jolly@eversberg.eu>2010-09-16 08:39:43 +0000
commit4b2db86031178bbe1f251155b4be521b0b0769e3 (patch)
treeff13d4485676357ff4b6394abce41cf17b93925a
parentdece8977f438983f681feeeeb8a6f736859be98e (diff)
[layer23] Added missing pointer reset during establishment of LAPDm connection
Dieter pointed out that the SABM message was resent incorrectly, because the V(S) pointer was not reset to the location of the SAMB frame.
-rw-r--r--src/host/layer23/src/common/lapdm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/host/layer23/src/common/lapdm.c b/src/host/layer23/src/common/lapdm.c
index ca8ad380..970da7bf 100644
--- a/src/host/layer23/src/common/lapdm.c
+++ b/src/host/layer23/src/common/lapdm.c
@@ -1652,6 +1652,8 @@ static int rslms_rx_rll_est_req(struct msgb *msg, struct lapdm_datalink *dl)
/* Transmit-buffer carries exactly one segment */
memcpy(dl->tx_hist[0], msg->l2h, 3 + length);
dl->tx_length[0] = 3 + length;
+ /* set Vs to 0, because it is used as index when resending SAMB */
+ dl->V_send = 0;
/* Set states */
dl->own_busy = dl->peer_busy = 0;
@@ -1917,6 +1919,8 @@ static int rslms_rx_rll_res_req(struct msgb *msg, struct lapdm_datalink *dl)
/* Transmit-buffer carries exactly one segment */
memcpy(dl->tx_hist[0], msg->l2h, 3);
dl->tx_length[0] = 3;
+ /* set Vs to 0, because it is used as index when resending SAMB */
+ dl->V_send = 0;
/* Set states */
dl->own_busy = dl->peer_busy = 0;