aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gprs/gtphub.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/gprs/gtphub.c')
-rw-r--r--openbsc/src/gprs/gtphub.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/openbsc/src/gprs/gtphub.c b/openbsc/src/gprs/gtphub.c
index 97ccf61ab..0550c7ffe 100644
--- a/openbsc/src/gprs/gtphub.c
+++ b/openbsc/src/gprs/gtphub.c
@@ -660,10 +660,16 @@ void nr_map_add(struct nr_map *map, struct nr_mapping *mapping, time_t now)
/* Add to the tail to always yield a list sorted by expiry, in
* ascending order. */
llist_add_tail(&mapping->entry, &map->mappings);
- if (map->add_items_to_expiry)
- expiry_add(map->add_items_to_expiry,
- &mapping->expiry_entry,
- now);
+ nr_map_refresh(map, mapping, now);
+}
+
+void nr_map_refresh(struct nr_map *map, struct nr_mapping *mapping, time_t now)
+{
+ if (!map->add_items_to_expiry)
+ return;
+ expiry_add(map->add_items_to_expiry,
+ &mapping->expiry_entry,
+ now);
}
void nr_map_clear(struct nr_map *map)
@@ -1010,9 +1016,7 @@ static struct nr_mapping *gtphub_mapping_have(struct nr_map *map,
gtphub_port_str(from),
(int)(nrm->orig), (int)(nrm->repl));
} else {
- /* restart expiry timeout */
- expiry_add(map->add_items_to_expiry, &nrm->expiry_entry,
- now);
+ nr_map_refresh(map, nrm, now);
}
OSMO_ASSERT(nrm);