diff options
author | Holger Freyther <zecke@selfish.org> | 2009-01-27 23:38:27 +0000 |
---|---|---|
committer | Holger Freyther <zecke@selfish.org> | 2009-01-27 23:38:27 +0000 |
commit | 1525de0c8f5540dd4ca8456840c7c05ed82d8786 (patch) | |
tree | 6c13649c852b47cfa59c10491c313ba97762d44e /src/paging.c | |
parent | 342a2c67de609fad82dcad72ee7e0e51e2e56de4 (diff) |
[paging] memset and improve error message
Diffstat (limited to 'src/paging.c')
-rw-r--r-- | src/paging.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/paging.c b/src/paging.c index d7183ea95..ec4b180d9 100644 --- a/src/paging.c +++ b/src/paging.c @@ -123,15 +123,21 @@ void page_request(struct gsm_bts *bts, struct gsm_subscriber *subscr, int type) struct paging_request *req; req = (struct paging_request *)malloc(sizeof(*req)); + memset(req, 0, sizeof(*req)); req->subscr = subscr_get(subscr); req->bts = bts; req->chan_type = type; llist_for_each_entry(bts_entry, &managed_bts, bts_list) { - if (bts == bts_entry->bts && !page_pending_request(bts_entry, subscr)) { - llist_add_tail(&req->entry, &bts_entry->pending_requests); - if (!timer_pending(&bts_entry->page_timer)) - schedule_timer(&bts_entry->page_timer, PAGING_TIMEOUT); + if (bts == bts_entry->bts) { + if (!page_pending_request(bts_entry, subscr)) { + llist_add_tail(&req->entry, &bts_entry->pending_requests); + if (!timer_pending(&bts_entry->page_timer)) + schedule_timer(&bts_entry->page_timer, PAGING_TIMEOUT); + } else { + DEBUGP(DPAG, "Paging request already pending\n"); + } + return; } } |