aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm_04_08.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-02-16 22:05:44 +0000
committerHarald Welte <laforge@gnumonks.org>2009-02-16 22:05:44 +0000
commit595ad7b7625645e798b80fb9e0f5bef18b8881f7 (patch)
treea44447fd8af3e0c4a3f59ffaf771d9b72b8064b5 /src/gsm_04_08.c
parent75099266149b78193854e84f73910074680191fa (diff)
modify the signal handler/dispatch code (sorry zecke, no offense, I just had some different ideas)
* introduce new notion of subsystem in addition to signal number * no need for bitmasks of 'areas' (aka subsystems) * pass subsystem/signal_nr/... per argument rather than by data structure
Diffstat (limited to 'src/gsm_04_08.c')
-rw-r--r--src/gsm_04_08.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index 0d889fb93..c69e246e3 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -685,6 +685,7 @@ static int gsm48_rr_rx_pag_resp(struct msgb *msg)
u_int8_t mi_type = pr->mi[0] & GSM_MI_TYPE_MASK;
char mi_string[MI_SIZE];
struct gsm_subscriber *subscr;
+ struct paging_signal_data sig_data;
int rc = 0;
mi_to_string(mi_string, sizeof(mi_string), &pr->mi[0], pr->mi_len);
@@ -707,15 +708,11 @@ static int gsm48_rr_rx_pag_resp(struct msgb *msg)
subscr_put(subscr);
}
- struct paging_signal_data sig_data = {
- .data = {
- .area = S_PAGING,
- },
- .subscr = subscr,
- .bts = msg->lchan->ts->trx->bts,
- .lchan = msg->lchan,
- };
- dispatch_signal(&sig_data.data);
+ sig_data.subscr = subscr;
+ sig_data.bts = msg->lchan->ts->trx->bts;
+ sig_data.lchan = msg->lchan;
+
+ dispatch_signal(SS_PAGING, S_PAGING_COMPLETED, &sig_data);
paging_request_stop(msg->trx->bts, subscr);
/* FIXME: somehow signal the completion of the PAGING to