Skip to content

Commit 4e2f1ae

Browse files
committed
Expire old entries from nameservice
1 parent def7962 commit 4e2f1ae

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

lib/nameservice/src/nameservice.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,7 @@ decap_namemsg(struct name *from_packet, struct name_entry **to, bool * this_tabl
925925
already_saved_name_entries = already_saved_name_entries->next) {
926926
if (type_of_from_packet == NAME_HOST
927927
&& strncmp(already_saved_name_entries->name, name, len_of_name) == 0) {
928-
already_saved_name_entries->expires = olsr_getTimestamp(NAME_VALID_TIME);
928+
already_saved_name_entries->expires = olsr_getTimestamp(ENTRY_VALID_TIME);
929929
if (ipequal(&already_saved_name_entries->ip, &from_packet->ip)) {
930930
OLSR_PRINTF(4, "NAME PLUGIN: received name entry %s (%s) already in hash table\n", name,
931931
olsr_ip_to_string(&strbuf, &already_saved_name_entries->ip));
@@ -943,18 +943,18 @@ decap_namemsg(struct name *from_packet, struct name_entry **to, bool * this_tabl
943943

944944
} else if (type_of_from_packet == NAME_SERVICE
945945
&& strncmp(already_saved_name_entries->name, name, len_of_name) == 0) {
946-
already_saved_name_entries->expires = olsr_getTimestamp(NAME_VALID_TIME);
946+
already_saved_name_entries->expires = olsr_getTimestamp(ENTRY_VALID_TIME);
947947
OLSR_PRINTF(4, "NAME PLUGIN: received name or service entry %s (%s) already in hash table\n", name,
948948
olsr_ip_to_string(&strbuf, &already_saved_name_entries->ip));
949949
return;
950950

951951
} else if (type_of_from_packet == NAME_FORWARDER && ipequal(&already_saved_name_entries->ip, &from_packet->ip)) {
952-
already_saved_name_entries->expires = olsr_getTimestamp(NAME_VALID_TIME);
952+
already_saved_name_entries->expires = olsr_getTimestamp(ENTRY_VALID_TIME);
953953
OLSR_PRINTF(4, "NAME PLUGIN: received forwarder entry %s (%s) already in hash table\n", name,
954954
olsr_ip_to_string(&strbuf, &already_saved_name_entries->ip));
955955
return;
956956
} else if (type_of_from_packet == NAME_LATLON) {
957-
already_saved_name_entries->expires = olsr_getTimestamp(NAME_VALID_TIME);
957+
already_saved_name_entries->expires = olsr_getTimestamp(ENTRY_VALID_TIME);
958958
if (0 != strncmp(already_saved_name_entries->name, name, len_of_name)) {
959959
OLSR_PRINTF(4, "NAME PLUGIN: updating name %s -> %s (%s)\n", already_saved_name_entries->name, name,
960960
olsr_ip_to_string(&strbuf, &already_saved_name_entries->ip));
@@ -988,7 +988,7 @@ decap_namemsg(struct name *from_packet, struct name_entry **to, bool * this_tabl
988988
tmp->len = ntohs(from_packet->len);
989989
tmp->name = olsr_malloc(tmp->len + 1, "new name_entry name");
990990
tmp->ip = from_packet->ip;
991-
tmp->expires = olsr_getTimestamp(NAME_VALID_TIME);
991+
tmp->expires = olsr_getTimestamp(ENTRY_VALID_TIME);
992992
strscpy(tmp->name, name, tmp->len + 1);
993993

994994
OLSR_PRINTF(3, "\nNAME PLUGIN: create new name/service/forwarder entry %s (%s) [len=%d] [type=%d] in linked list\n", tmp->name,
@@ -1508,12 +1508,13 @@ void
15081508
free_old_list_entries(struct list_node *list)
15091509
{
15101510
int i;
1511-
struct list_node *list_node;
1511+
struct list_node *list_node, *list_head;
15121512
struct name_entry *maybe_delete;
15131513
struct name_entry **tmp;
15141514

15151515
for (i = 0; i < HASHSIZE; i++) {
1516-
for (list_node = &list[i]; list_node != NULL; list_node = list_node->next) {
1516+
list_head = &list[i];
1517+
for (list_node = list_head->next; list_node != list_head; list_node = list_node->next) {
15171518
tmp = &list2db(list_node)->names;
15181519
while (*tmp != NULL) {
15191520
maybe_delete = *tmp;

lib/nameservice/src/nameservice.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
#define EMISSION_JITTER 25 /* percent */
7878
#define NAME_VALID_TIME 1800 /* seconds */
7979
#define NAMESERVER_COUNT 3
80+
#define ENTRY_VALID_TIME (NAME_VALID_TIME * 1000) /* milliseconds */
8081

8182
#define NAME_PROTOCOL_VERSION 1
8283

0 commit comments

Comments
 (0)