arehbein has uploaded this change for review.
common: Fix nack message cause
Give more specific causes than NM_NACK_OBJINST_UNKN
Related: OS#5961
Related: OS#5967
Change-Id: I1ad47e2ba362e2ce676757310df8cc70641343a7
---
M src/common/oml.c
1 file changed, 25 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/76/32076/1
diff --git a/src/common/oml.c b/src/common/oml.c
index 06b2b15..1212c9c 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -1627,12 +1627,14 @@
case NM_OC_BASEB_TRANSC:
case NM_OC_CHANNEL:
case NM_OC_GPRS_NSVC:
- if (obj_inst->trx_nr >= bts->num_trx)
- *c = NM_NACK_OBJINST_UNKN;
+ if (obj_inst->trx_nr >= bts->num_trx) {
+ *c = NM_NACK_PARAM_RANGE;
return NULL;
- if (!(trx = gsm_bts_trx_num(bts, obj_inst->trx_nr)))
- *c = NM_NACK_OBJINST_UNKN;
+ }
+ if (!(trx = gsm_bts_trx_num(bts, obj_inst->trx_nr))) {
+ *c = NM_NACK_TRXNR_UNKN;
return NULL;
+ }
break;
}
/* Other cases, set mo */
@@ -1648,8 +1650,7 @@
break;
case NM_OC_CHANNEL:
if (obj_inst->ts_nr >= TRX_NR_TS)
- *c = NM_NACK_OBJINST_UNKN;
- return NULL;
+ goto objclass_invalid;
mo = &trx->ts[obj_inst->ts_nr].mo;
break;
case NM_OC_SITE_MANAGER:
@@ -1663,12 +1664,15 @@
break;
case NM_OC_GPRS_NSVC:
if (obj_inst->trx_nr >= ARRAY_SIZE(bts->gprs.nsvc))
- *c = NM_NACK_OBJINST_UNKN;
- return NULL;
+ goto objclass_invalid;
mo = &bts->gprs.nsvc[obj_inst->trx_nr].mo;
break;
}
return mo;
+
+objclass_invalid:
+ *c = NM_NACK_OBJCLASS_INVAL;
+ return NULL;
}
/* obtain the in-memory data structure of a given object instance */
To view, visit change 32076. To unsubscribe, or for help writing mail filters, visit settings.