]> git.pond.sub.org Git - empserver/commitdiff
(getcontact,putcontact): Generalize the interface back to an int.
authorRon Koenderink <rkoenderink@yahoo.ca>
Sat, 19 Nov 2005 14:55:03 +0000 (14:55 +0000)
committerRon Koenderink <rkoenderink@yahoo.ca>
Sat, 19 Nov 2005 14:55:03 +0000 (14:55 +0000)
Add range checks to prevent unexpected results.

include/nat.h
src/lib/common/nat.c

index 4c292acee1f2575e1acecc1441935bdcdb93ee7c..c31647d2446e0b5a7f7372dbfbd8136444b415a1 100644 (file)
@@ -167,11 +167,10 @@ extern s_char *rejectname(struct natstr *np, natid other);
 extern s_char *natstate(struct natstr *np);
 extern int getrel(struct natstr *np, natid them);
 extern int getrejects(natid them, struct natstr *np);
-extern unsigned char getcontact(struct natstr *np, natid them);
+extern int getcontact(struct natstr *np, natid them);
 extern void putrel(struct natstr *np, natid them, int relate);
 extern void putreject(struct natstr *np, natid them, int how, int what);
-extern void putcontact(struct natstr *np, natid them,
-                      unsigned char contact);
+extern void putcontact(struct natstr *np, natid them, int contact);
 extern void agecontact(struct natstr *np);
 
 /* nation flags */
index b6628f1536623779ca3544437373055f8b04cd98..e8bd476281091432237ae92fd965ae1d17bca729 100644 (file)
@@ -31,6 +31,7 @@
  *     Dave Pare, 1989
  */
 
+#include "prototypes.h"
 #include "misc.h"
 #include "nat.h"
 #include "file.h"
@@ -128,7 +129,7 @@ agecontact(struct natstr *np)
     }
 }
 
-unsigned char
+int
 getcontact(struct natstr *np, natid them)
 {
     return np->nat_contact[them];
@@ -159,8 +160,13 @@ putreject(struct natstr *np, natid them, int how, int what)
 }
 
 void
-putcontact(struct natstr *np, natid them, unsigned char contact)
+putcontact(struct natstr *np, natid them, int contact)
 {
+    if (CANT_HAPPEN(contact < 0))
+       contact = 0;
+    if (CANT_HAPPEN(contact > 255))
+       contact = 255;
+
     if (np->nat_contact[them] < contact)
        np->nat_contact[them] = contact;
 }