aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/osmo_ss7.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c
index 7021fa8..98dfc0c 100644
--- a/src/osmo_ss7.c
+++ b/src/osmo_ss7.c
@@ -783,6 +783,15 @@ osmo_ss7_route_create(struct osmo_ss7_route_table *rtbl, uint32_t pc,
return NULL;
}
+ /* check for duplicates */
+ rt = osmo_ss7_route_find_dpc_mask(rtbl, pc, mask);
+ if (rt && !strcmp(rt->cfg.linkset_name, linkset_name)) {
+ LOGSS7(rtbl->inst, LOGL_ERROR, "Refusing to create duplicate route: "
+ "pc=%u=%s mask=0x%x via linkset/AS '%s'\n",
+ pc, osmo_ss7_pointcode_print(rtbl->inst, pc), mask, linkset_name);
+ return rt;
+ }
+
rt = talloc_zero(rtbl, struct osmo_ss7_route);
if (!rt)
return NULL;