]> git.pond.sub.org Git - empserver/commitdiff
contact: Avoid unnecessary nation updates
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 23 Oct 2016 16:38:56 +0000 (18:38 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 6 Aug 2017 18:09:20 +0000 (20:09 +0200)
Make setcont() update the nation only when it actually changes the
contact value.  For added benefit, map all non-zero values to one when
option LOSE_CONTACT is disabled.

This saves I/O, in particular xdump bandwidth.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
src/lib/subs/rej.c

index de11e8171108282bf55eaef3f888e80b409ddb7f..bf8882d19d47afb507e0d256d328ed8a235a7efa 100644 (file)
@@ -123,9 +123,12 @@ setcont(natid us, natid them, int contact)
     if (CANT_HAPPEN(contact > 255))
        contact = 255;
 
-    if (np->nat_contact[them] < contact)
+    if (!opt_LOSE_CONTACT)
+       contact = !!contact;
+    if (np->nat_contact[them] < contact) {
        np->nat_contact[them] = contact;
-    putnat(np);
+       putnat(np);
+    }
 }
 
 void