fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sys/types.h>
  5.  
  6. #define BLACKLIST_SIZE 512
  7.  
  8. typedef struct {
  9. /* IPV4 address as 32-bit integer */
  10. unsigned long ib_blackaddr;
  11. /* CIDR mask as 32-bit integer */
  12. unsigned long ib_blackmask;
  13. } ib_arrayelement;
  14.  
  15. /* Number of entries in the blacklist table */
  16. int ib_blacklist_size;
  17.  
  18. /* IPv4 address - CIDR mask blacklist */
  19. ib_arrayelement ib_blackarray[BLACKLIST_SIZE];
  20.  
  21. static int ib_cmpfunc (const void *a, const void *b) {
  22. const ib_arrayelement* aa = reinterpret_cast<const ib_arrayelement*>(a);
  23. const ib_arrayelement* bb = reinterpret_cast<const ib_arrayelement*>(b);
  24. if ( aa->ib_blackaddr - bb->ib_blackaddr > 0) return 1;
  25. if ( aa->ib_blackaddr - bb->ib_blackaddr < 0) return -1;
  26. return 0;
  27. }
  28.  
  29. int main (int argc, char **argv) {
  30.  
  31. qsort(ib_blackarray, ib_blacklist_size,
  32. sizeof(ib_arrayelement), ib_cmpfunc);
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0s 15248KB
stdin
Standard input is empty
stdout
Standard output is empty