check_ipcheck.c
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:1k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * check_ipcheck.c - check the is_allowed_ip function
  3.  *
  4.  * Lars Wirzenius
  5.  */
  6. #include "gwlib/gwlib.h"
  7. int main(void)
  8. {
  9.     Octstr *ip;
  10.     Octstr *allowed;
  11.     Octstr *denied;
  12.     int result;
  13.     int i;
  14.     static struct {
  15. char *allowed;
  16. char *denied;
  17. char *ip;
  18. int should_be_allowed;
  19.     } tab[] = {
  20. { "127.0.0.1", "", "127.0.0.1", 1 },
  21. { "127.0.0.1", "", "127.0.0.2", 1 },
  22. { "127.0.0.1", "*.*.*.*", "127.0.0.1", 1 },
  23. { "127.0.0.1", "*.*.*.*", "1.2.3.4", 0 },
  24. { "127.0.0.1", "127.0.0.*", "1.2.3.4", 1 },
  25. { "127.0.0.1", "127.0.0.*", "127.0.0.2", 0 },
  26.     };
  27.     
  28.     gwlib_init();
  29.     log_set_output_level(GW_INFO);
  30.         
  31.     for (i = 0; (size_t) i < sizeof(tab) / sizeof(tab[0]); ++i) {
  32. allowed = octstr_imm(tab[i].allowed);
  33. denied = octstr_imm(tab[i].denied);
  34. ip = octstr_imm(tab[i].ip);
  35. result = is_allowed_ip(allowed, denied, ip);
  36. if (!!result != !!tab[i].should_be_allowed) {
  37.     panic(0, "is_allowed_ip did not work for "
  38.           "allowed=<%s> denied=<%s> ip=<%s>, "
  39.      "returned %d should be %d",
  40.      octstr_get_cstr(allowed),
  41.      octstr_get_cstr(denied),
  42.      octstr_get_cstr(ip),
  43.      result,
  44.      tab[i].should_be_allowed);
  45. }
  46.     }
  47.     gwlib_shutdown();
  48.     return 0;
  49. }