Speculative fix for not sending LOCATION UPDATING REJECT
As reported by the operator the rejecting didn't work after the first fix (wrong logic/missing negation). The hypothesis is that that the lchan was released before the reject timeout was fired. Fix it by getting a reference on the lchan when allocating a logical operation and release the reference when the operation is finished or timed out.
This commit is contained in:
parent
d125250ae2
commit
3eaa792b21
|
@ -93,6 +93,7 @@ static void release_loc_updating_req(struct gsm_lchan *lchan)
|
|||
del_timer(&lchan->loc_operation->updating_timer);
|
||||
free(lchan->loc_operation);
|
||||
lchan->loc_operation = 0;
|
||||
put_lchan(lchan);
|
||||
}
|
||||
|
||||
static void allocate_loc_updating_req(struct gsm_lchan *lchan)
|
||||
|
@ -102,6 +103,7 @@ static void allocate_loc_updating_req(struct gsm_lchan *lchan)
|
|||
lchan->loc_operation = (struct gsm_loc_updating_operation *)
|
||||
malloc(sizeof(*lchan->loc_operation));
|
||||
memset(lchan->loc_operation, 0, sizeof(*lchan->loc_operation));
|
||||
use_lchan(lchan);
|
||||
}
|
||||
|
||||
static void parse_lai(struct gsm_lai *lai, const struct gsm48_loc_area_id *lai48)
|
||||
|
|
Loading…
Reference in New Issue