summaryrefslogtreecommitdiffstats
path: root/src/gsm/lapd_core.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-03-26 18:15:06 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-03-26 18:15:57 +0100
commitd0ed9218bc79a25b46023a6cc57aedcda3fc9152 (patch)
treec8a9609da0fff4967574b1d7af375d58a65f4788 /src/gsm/lapd_core.c
parente4c50d5a43f129aa4bdfaf62a7238c4db671974b (diff)
parent3dc4e16786d1e5723e76ad7c70ad54134957f9e5 (diff)
Merge remote-tracking branch 'daniel/lapdm-desync'
This should fix long delays when sending a long SMS on an encrypted channel. It is the most minimal change to the polling mode. One option we discussed internally is to queue a higher level representation and generate the actual LAPDm frames later.
Diffstat (limited to 'src/gsm/lapd_core.c')
-rw-r--r--src/gsm/lapd_core.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c
index ef1d22a7..8c5fe9c6 100644
--- a/src/gsm/lapd_core.c
+++ b/src/gsm/lapd_core.c
@@ -1607,6 +1607,12 @@ static int lapd_rx_i(struct msgb *msg, struct lapd_msg_ctx *lctx)
if (!dl->own_busy) {
/* NOTE: V(R) is already set above */
rc = lapd_send_i(lctx, __LINE__);
+
+ /* if update_pending_iframe returns 0 it updated
+ * the lapd header of an iframe in the tx queue */
+ if (rc && dl->update_pending_frames)
+ rc = dl->update_pending_frames(lctx);
+
if (rc) {
LOGP(DLLAPD, LOGL_INFO, "we are not busy and "
"have no pending data, send RR\n");