The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

This is what we are testing:

/* serial max = 4294967295 * rollover = (1 + max / 2) = 2147483648 * * returns: * 0 s1 = s2 * -1 s1 < s2 * 1 s1 > s2 * >1 undefined */

int cmp_serial(u_int32_t s1, u_int32_t s2) { u_int32_t rollover = 2147483647;

  rollover += 1;        /* silence unsigned integer compiler warning    */
  if (s1 == s2)
    return(0);
  else if ((s1 < s2 && s2 - s1 < rollover) ||
           (s1 > s2 && s1 - s2 > rollover))
    return(-1);
  else if ((s1 < s2 && s2 - s1 > rollover) ||
           (s1 > s2 && s1 - s2 < rollover))
    return(1);
  return(2);
}