aboutsummaryrefslogtreecommitdiffstats
path: root/src/paging.c
diff options
context:
space:
mode:
authorHolger Freyther <zecke@selfish.org>2009-01-27 23:38:27 +0000
committerHolger Freyther <zecke@selfish.org>2009-01-27 23:38:27 +0000
commit1525de0c8f5540dd4ca8456840c7c05ed82d8786 (patch)
tree6c13649c852b47cfa59c10491c313ba97762d44e /src/paging.c
parent342a2c67de609fad82dcad72ee7e0e51e2e56de4 (diff)
[paging] memset and improve error message
Diffstat (limited to 'src/paging.c')
-rw-r--r--src/paging.c14
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;
}
}