aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-02-05 19:51:05 +0100
committerHarald Welte <laforge@gnumonks.org>2011-02-05 20:26:27 +0100
commit8fc66a0c4d683f3b4de16f7306235d88112451d6 (patch)
tree96aed56b3981cb0e021653ec1537687c3bafa84a /openbsc
parent1458ec65710af1fab626e0cd4e8fe30433bc6d04 (diff)
[LAPD] fix bug in TEI manager rendering LAPD unusable
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/input/lapd.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/openbsc/src/input/lapd.c b/openbsc/src/input/lapd.c
index d488bfd40..de0d5a546 100644
--- a/openbsc/src/input/lapd.c
+++ b/openbsc/src/input/lapd.c
@@ -161,40 +161,39 @@ static void lapd_tei_set_state(struct lapd_tei *teip, int newstate)
static void lapd_tei_receive(struct lapd_instance *li, uint8_t *data, int len)
{
- int entity = data[0];
- int ref = data[1];
- int mt = data[3];
- int action = data[4] >> 1;
- int e = data[4] & 1;
- int tei;
+ uint8_t entity = data[0];
+ uint8_t ref = data[1];
+ uint8_t mt = data[3];
+ uint8_t action = data[4] >> 1;
+ uint8_t e = data[4] & 1;
uint8_t resp[8];
struct lapd_tei *teip;
- DEBUGP(DMI, "tei mgmt: entity %x, ref %x, mt %x, action %x, e %x\n", entity, ref, mt, action, e);
+ DEBUGP(DMI, "TEIMGR: entity %x, ref %x, mt %x, action %x, e %x\n", entity, ref, mt, action, e);
switch (mt) {
case 0x01: /* IDENTITY REQUEST */
- DEBUGP(DMI, "TEIMGR: identity request for TEI %u\n", tei);
+ DEBUGP(DMI, "TEIMGR: identity request for TEI %u\n", action);
- teip = teip_from_tei(li, tei);
+ teip = teip_from_tei(li, action);
if (!teip) {
- LOGP(DMI, LOGL_INFO, "TEI MGR: New TEI %u\n", tei);
+ LOGP(DMI, LOGL_INFO, "TEI MGR: New TEI %u\n", action);
teip = talloc_zero(li, struct lapd_tei);
- teip->tei = tei;
+ teip->tei = action;
llist_add(&teip->list, &li->tei_list);
lapd_tei_set_state(teip, LAPD_TEI_ASSIGNED);
}
/* Send ACCEPT */
memmove(resp, "\xfe\xff\x03\x0f\x00\x00\x02\x00", 8);
- resp[7] = (tei << 1) | 1;
+ resp[7] = (action << 1) | 1;
li->transmit_cb(resp, 8, li->cbdata);
if (teip->state == LAPD_TEI_NONE)
lapd_tei_set_state(teip, LAPD_TEI_ASSIGNED);
break;
default:
- LOGP(DMI, LOGL_NOTICE, "tei mgmt: unknown mt %x action %x\n",
+ LOGP(DMI, LOGL_NOTICE, "TEIMGR: unknown mt %x action %x\n",
mt, action);
break;
};