PUD: refactor setupNodeIdNumberForOlsrCache
authorFerry Huberts <f.huberts@mindef.nl>
Wed, 26 Oct 2011 13:28:11 +0000 (15:28 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Tue, 14 Feb 2012 13:32:57 +0000 (14:32 +0100)
Signed-off-by: Ferry Huberts <f.huberts@mindef.nl>
lib/pud/src/configuration.c
lib/pud/wireformat/include/OlsrdPudWireFormat/wireFormat.h
lib/pud/wireformat/src/wireFormat.c

index 0d100b5..e3953e2 100644 (file)
@@ -305,13 +305,16 @@ static bool setupNodeIdBinaryLongLong(unsigned long long min,
                nodeIdBinarySet = true;
        }
 
-       if (setupNodeIdNumberForOlsrCache(nodeIdBinary.longValue, min, max,
-                       bytes)) {
+       if ((nodeIdBinary.longValue < min) || (nodeIdBinary.longValue > max)) {
+               pudError(false, "%s value %llu is out of range [%llu,%llu]",
+                               PUD_NODE_ID_NAME, nodeIdBinary.longValue, min, max);
+               return false;
+       }
+
+       if (setupNodeIdNumberForOlsrCache(nodeIdBinary.longValue, bytes)) {
                return true;
        }
 
-       pudError(false, "%s value %llu is out of range [%llu,%llu]",
-                       PUD_NODE_ID_NAME, nodeIdBinary.longValue, min, max);
        return false;
 }
 
index 76e5882..9628538 100644 (file)
@@ -871,9 +871,7 @@ static inline void setPositionUpdateHdop(PudOlsrPositionUpdate * olsrGpsMessage,
  * NodeInfo
  */
 
-bool setupNodeIdNumberForOlsrCache(/*const char * nodeIdParameterName,*/
-unsigned long long val, unsigned long long min, unsigned long long max,
-               unsigned int bytes);
+bool setupNodeIdNumberForOlsrCache(unsigned long long val, unsigned int bytes);
 bool setupNodeIdBinaryBufferForOlsrCache(void * val, size_t bytes);
 
 /**
index 07e9866..2f74038 100644 (file)
@@ -40,15 +40,10 @@ static unsigned char cachedNodeIdBuffer[PUD_CACHED_NODEID_BUFFER_SIZE];
 static unsigned int cachedNodeIdBufferLength = 0;
 
 /**
- Check a nodeId number for validity and if valid set it up in the
- cachedNodeIdBuffer. The valid range for the number is [min, max].
+ Setup a nodeId number in the cachedNodeIdBuffer.
 
  @param val
  The value to setup in the cache
- @param min
- The lower bound for a valid number
- @param max
- The upper bound for a valid number
  @param bytes
  The number of bytes used by the number in the wire format
 
@@ -56,25 +51,23 @@ static unsigned int cachedNodeIdBufferLength = 0;
  - true when the number is valid
  - false otherwise
  */
-bool setupNodeIdNumberForOlsrCache(unsigned long long val,
-               unsigned long long min, unsigned long long max, unsigned int bytes) {
-       assert(bytes <= PUD_CACHED_NODEID_BUFFER_SIZE);
-
-       if ((val >= min) && (val <= max)) {
-               int i = bytes - 1;
-               while (i >= 0) {
-                       cachedNodeIdBuffer[i] = val & 0xff;
-                       val >>= 8;
-                       i--;
-               }
+bool setupNodeIdNumberForOlsrCache(unsigned long long val, unsigned int bytes) {
+       int i = bytes - 1;
 
-               assert(val == 0);
+       if (bytes > PUD_CACHED_NODEID_BUFFER_SIZE) {
+               return false;
+       }
 
-               cachedNodeIdBufferLength = bytes;
-               return true;
+       while (i >= 0) {
+               cachedNodeIdBuffer[i] = val & 0xff;
+               val >>= 8;
+               i--;
        }
 
-       return false;
+       assert(val == 0);
+
+       cachedNodeIdBufferLength = bytes;
+       return true;
 }
 
 /**