[paging] Discard paging requests after not completing them...

This commit is contained in:
Holger Freyther 2009-01-27 23:46:19 +00:00
parent 1525de0c8f
commit bf83481799
1 changed files with 10 additions and 5 deletions

View File

@ -78,15 +78,20 @@ static void page_handle_pending_requests(void *data) {
/* handle the paging request now */ /* handle the paging request now */
DEBUGP(DPAG, "Going to send paging commands: '%s'\n", DEBUGP(DPAG, "Going to send paging commands: '%s'\n",
paging_bts->last_request->subscr->imsi); paging_bts->last_request->subscr->imsi);
++paging_bts->last_request->requests;
tmsi = strtoul(paging_bts->last_request->subscr->tmsi, NULL, 10); tmsi = strtoul(paging_bts->last_request->subscr->tmsi, NULL, 10);
mi_len = generate_mid_from_tmsi(mi, tmsi); mi_len = generate_mid_from_tmsi(mi, tmsi);
rsl_paging_cmd(paging_bts->bts, 1, mi_len, mi, RSL_CHANNEED_TCH_F); rsl_paging_cmd(paging_bts->bts, 1, mi_len, mi, RSL_CHANNEED_TCH_F);
/* move to the next item */ if (paging_bts->last_request->requests > 1500) {
paging_bts->last_request = page_remove_request(paging_bts);
(struct paging_request *)paging_bts->last_request->entry.next; } else {
if (&paging_bts->last_request->entry == &paging_bts->pending_requests) /* move to the next item */
paging_bts->last_request = NULL; paging_bts->last_request =
(struct paging_request *)paging_bts->last_request->entry.next;
if (&paging_bts->last_request->entry == &paging_bts->pending_requests)
paging_bts->last_request = NULL;
}
schedule_timer(&paging_bts->page_timer, PAGING_TIMEOUT); schedule_timer(&paging_bts->page_timer, PAGING_TIMEOUT);
} }