ipban.h
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 2000  Gediminas (gugini@fortas.ktu.lt)
  3.  * Copyright (C) 2002  Bart硂miej Butyn (bartek@milc.com.pl)
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License
  7.  * as published by the Free Software Foundation; either version 2
  8.  * of the License, or (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  */
  19. #ifndef INCLUDED_IPBAN_TYPES
  20. #define INCLUDED_IPBAN_TYPES
  21. #ifdef IPBAN_INTERNAL_ACCESS
  22. #define MAX_FUNC_LEN 10
  23. #define MAX_IP_STR   32
  24. #define MAX_TIME_STR 9
  25. #define IPBAN_FUNC_ADD     1
  26. #define IPBAN_FUNC_DEL     2
  27. #define IPBAN_FUNC_LIST    3
  28. #define IPBAN_FUNC_CHECK   4
  29. #define IPBAN_FUNC_HELP    5
  30. #define IPBAN_FUNC_UNKNOWN 6
  31. typedef enum
  32. {
  33.     ipban_type_exact,     /* 192.168.0.10              */
  34.     ipban_type_wildcard,  /* 192.168.*.*               */
  35.     ipban_type_range,     /* 192.168.0.10-192.168.0.25 */
  36.     ipban_type_netmask,   /* 192.168.0.0/255.255.0.0   */
  37.     ipban_type_prefix     /* 192.168.0.0/16            */
  38. } t_ipban_type;
  39. typedef struct ipban_entry_struct
  40. {
  41.     char *                      info1; /* third octet */
  42.     char *                      info2; /* third octet */
  43.     char *                      info3; /* third octet */
  44.     char *                      info4; /* fourth octet */
  45.     int                         type;
  46.     time_t endtime;
  47. } t_ipban_entry;
  48. #endif
  49. #endif
  50. /*****/
  51. #ifndef JUST_NEED_TYPES
  52. #ifndef INCLUDED_IPBAN_PROTOS
  53. #define INCLUDED_IPBAN_PROTOS
  54. #define JUST_NEED_TYPES
  55. #include "connection.h"
  56. #undef JUST_NEED_TYPES
  57. extern int ipbanlist_create(void);
  58. extern int ipbanlist_destroy(void);
  59. extern int ipbanlist_load(char const * filename);
  60. extern int ipbanlist_save(char const * filename);
  61. extern int ipbanlist_check(char const * addr);
  62. extern int ipbanlist_add(t_connection * c, char const * cp, time_t endtime);
  63. extern int ipbanlist_unload_expired(void);
  64. extern time_t ipbanlist_str_to_time_t(t_connection * c, char const * timestr);
  65. extern int handle_ipban_command(t_connection * c, char const * text);
  66. #endif
  67. #endif