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
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index 0d889fb..c69e246 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -685,6 +685,7 @@
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 @@
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