Discussion:
Getting a SABME/UA after sending on in libpri 1.2.8
Benjamin Klimpel
2009-03-27 10:14:20 UTC
Permalink
Does anybody notice the same problem with verison 1.2.8
libpri(bristuff-PRE-1y-w) which should be fixed with Tzafrir Cohen`s SABME
bug fix in libpri 1.4.3-2? As for me, i still noticed wrong SAMBE/UA
handling in 1.2.8. But im afraid of patching 1.2.8 because of this comment
cout line in 1.2.8 sourcecode:

/* Send Unnumbered Acknowledgement */
q921_send_ua(pri, h->u.p_f, h->h.tei);
// if (pri->q921_state[teio] == Q921_LINK_CONNECTION_RELEASED) //
this breaks stuff!
return q921_dchannel_up(pri, h->h.tei);
} else if (h->u.m2 == 0) {
/* It's a UA */

Does anybody know why this should break stuff and if i savely could patch
this version too ?



[ Tzafrir Cohen ]
* Fix layer 2 startup bugs (e.g. resume from cable disconnect) on BRI lines:
- When getting a SABME/UA after sending one, don't reset state.
- Don't further process an unassigned TEI event.


--- libpri/trunk/debian/patches/bristuff.dpatch (original)
+++ libpri/trunk/debian/patches/bristuff.dpatch Sun Jun 22 07:55:39 2008
@@ -3714,14 +3714,15 @@
return ev;
case 3:
if (h->u.m2 == 3) {
-@@ -882,17 +1747,29 @@ static pri_event *__q921_receive_qualifi
+@@ -882,17 +1747,30 @@ static pri_event *__q921_receive_qualifi
}
}
/* Send Unnumbered Acknowledgement */
- q921_send_ua(pri, h->u.p_f);
- return q921_dchannel_up(pri);
+ q921_send_ua(pri, h->u.p_f, h->h.tei);
-+ return q921_dchannel_up(pri, h->h.tei);
++ if (pri->q921_state[teio] == Q921_LINK_CONNECTION_RELEASED)
++ return q921_dchannel_up(pri, h->h.tei);
} else if (h->u.m2 == 0) {
/* It's a UA */
- if (pri->q921_state == Q921_AWAITING_ESTABLISH) {

Loading...