[BACK]Return to hosts_access.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libwrap

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libwrap/hosts_access.c between version 1.19.10.1 and 1.19.10.2

version 1.19.10.1, 2012/04/23 16:48:53 version 1.19.10.2, 2012/04/23 23:40:41
Line 72  static char sep[] = ", \t\r\n";
Line 72  static char sep[] = ", \t\r\n";
   * verification mode.    * verification mode.
   */    */
   
 const char   *hosts_allow_table = HOSTS_ALLOW;  char   *hosts_allow_table = HOSTS_ALLOW;
 const char   *hosts_deny_table = HOSTS_DENY;  char   *hosts_deny_table = HOSTS_DENY;
 int     hosts_access_verbose = 0;  int     hosts_access_verbose = 0;
   
  /*   /*
Line 84  int     resident = (-1);  /* -1, 0: unkn
Line 84  int     resident = (-1);  /* -1, 0: unkn
   
 /* Forward declarations. */  /* Forward declarations. */
   
 static int table_match(const char *, struct request_info *);  static int table_match __P((char *, struct request_info *));
 static int list_match(char *, struct request_info *,  static int list_match __P((char *, struct request_info *,
     int (*)(char *, struct request_info *));      int (*)(char *, struct request_info *)));
 static int server_match(char *, struct request_info *);  static int server_match __P((char *, struct request_info *));
 static int client_match(char *, struct request_info *);  static int client_match __P((char *, struct request_info *));
 static int host_match(char *, struct host_info *);  static int host_match __P((char *, struct host_info *));
 static int hostfile_match(char *, struct host_info *);  static int hostfile_match __P((char *, struct host_info *));
 static int rbl_match(char *, char *);  static int rbl_match __P((char *, char *));
 static int string_match(char *, char *);  static int string_match __P((char *, char *));
 static int masked_match(char *, char *, char *);  static int masked_match __P((char *, char *, char *));
 static int masked_match4(char *, char *, char *);  static int masked_match4 __P((char *, char *, char *));
 #ifdef INET6  #ifdef INET6
 static int masked_match6(char *, char *, char *);  static int masked_match6 __P((char *, char *, char *));
 #endif  #endif
   
 /* Size of logical line buffer. */  /* Size of logical line buffer. */
Line 105  static int masked_match6(char *, char *,
Line 105  static int masked_match6(char *, char *,
   
 /* hosts_access - host access control facility */  /* hosts_access - host access control facility */
   
 int  int     hosts_access(request)
 hosts_access(struct request_info *request)  struct request_info *request;
 {  {
     int     verdict;      int     verdict;
   
Line 139  hosts_access(struct request_info *reques
Line 139  hosts_access(struct request_info *reques
   
 /* table_match - match table entries with (daemon, client) pair */  /* table_match - match table entries with (daemon, client) pair */
   
 static int  static int table_match(table, request)
 table_match(const char *table, struct request_info *request)  char   *table;
   struct request_info *request;
 {  {
     FILE   *fp;      FILE   *fp;
     char    sv_list[BUFLEN];            /* becomes list of daemons */      char    sv_list[BUFLEN];            /* becomes list of daemons */
Line 197  table_match(const char *table, struct re
Line 198  table_match(const char *table, struct re
   
 /* list_match - match a request against a list of patterns with exceptions */  /* list_match - match a request against a list of patterns with exceptions */
   
 static int  static int list_match(list, request, match_fn)
 list_match(char *list, struct request_info *request,  char   *list;
     int (*match_fn)(char *, struct request_info *))  struct request_info *request;
   int   (*match_fn) __P((char *, struct request_info *));
 {  {
     char   *tok;      char   *tok;
     static char *last;      static char *last;
Line 232  list_match(char *list, struct request_in
Line 234  list_match(char *list, struct request_in
   
 /* server_match - match server information */  /* server_match - match server information */
   
 static int  static int server_match(tok, request)
 server_match(char *tok, struct request_info *request)  char   *tok;
   struct request_info *request;
 {  {
     char   *host;      char   *host;
   
Line 247  server_match(char *tok, struct request_i
Line 250  server_match(char *tok, struct request_i
   
 /* client_match - match client information */  /* client_match - match client information */
   
 static int  static int client_match(tok, request)
 client_match(char *tok, struct request_info *request)  char   *tok;
   struct request_info *request;
 {  {
     char   *host;      char   *host;
   
Line 262  client_match(char *tok, struct request_i
Line 266  client_match(char *tok, struct request_i
   
 /* host_match - match host name and/or address against pattern */  /* host_match - match host name and/or address against pattern */
   
 static int  static int host_match(tok, host)
 host_match(char *tok, struct host_info *host)  char   *tok;
   struct host_info *host;
 {  {
     char   *mask;      char   *mask;
   
Line 306  host_match(char *tok, struct host_info *
Line 311  host_match(char *tok, struct host_info *
   
 /* hostfile_match - look up host patterns from file */  /* hostfile_match - look up host patterns from file */
   
 static int  static int hostfile_match(path, host)
 hostfile_match(char *path, struct host_info *host)  char   *path;
   struct host_info *host;
 {  {
     char    tok[BUFSIZ];      char    tok[BUFSIZ];
     int     match = NO;      int     match = NO;
Line 325  hostfile_match(char *path, struct host_i
Line 331  hostfile_match(char *path, struct host_i
   
 /* rbl_match() - match host by looking up in RBL domain */  /* rbl_match() - match host by looking up in RBL domain */
   
 static int  static int rbl_match(rbl_domain, rbl_hostaddr)
 rbl_match(  char   *rbl_domain;                             /* RBL domain */
     char   *rbl_domain,                 /* RBL domain */  char   *rbl_hostaddr;                           /* hostaddr */
     char   *rbl_hostaddr)               /* hostaddr */  
 {  {
     char *rbl_name;      char *rbl_name;
     unsigned long host_address;      unsigned long host_address;
Line 363  rbl_match(
Line 368  rbl_match(
   
 /* string_match - match string against pattern */  /* string_match - match string against pattern */
   
 static int  static int string_match(tok, string)
 string_match(char *tok, char *string)  char   *tok;
   char   *string;
 {  {
     int     n;      int     n;
   
Line 384  string_match(char *tok, char *string)
Line 390  string_match(char *tok, char *string)
   
 /* masked_match - match address against netnumber/netmask */  /* masked_match - match address against netnumber/netmask */
   
 static int  static int masked_match(net_tok, mask_tok, string)
 masked_match(char *net_tok, char *mask_tok, char *string)  char   *net_tok;
   char   *mask_tok;
   char   *string;
 {  {
 #ifndef INET6  #ifndef INET6
     return masked_match4(net_tok, mask_tok, string);      return masked_match4(net_tok, mask_tok, string);
Line 395  masked_match(char *net_tok, char *mask_t
Line 403  masked_match(char *net_tok, char *mask_t
      * If we could get rid of shortened IPv4 form, we could just always use       * If we could get rid of shortened IPv4 form, we could just always use
      * masked_match6().       * masked_match6().
      */       */
     if (dot_quad_addr(net_tok, NULL) != -1 &&      if (dot_quad_addr(net_tok, NULL) != INADDR_NONE &&
         dot_quad_addr(mask_tok, NULL) != -1 &&          dot_quad_addr(mask_tok, NULL) != INADDR_NONE &&
         dot_quad_addr(string, NULL) != -1) {          dot_quad_addr(string, NULL) != INADDR_NONE) {
         return masked_match4(net_tok, mask_tok, string);          return masked_match4(net_tok, mask_tok, string);
     } else      } else
         return masked_match6(net_tok, mask_tok, string);          return masked_match6(net_tok, mask_tok, string);
 #endif  #endif
 }  }
   
 static int  static int masked_match4(net_tok, mask_tok, string)
 masked_match4(char *net_tok, char *mask_tok, char *string)  char   *net_tok;
   char   *mask_tok;
   char   *string;
 {  {
     unsigned long net;      unsigned long net;
     unsigned long mask;      unsigned long mask;
Line 432  masked_match4(char *net_tok, char *mask_
Line 442  masked_match4(char *net_tok, char *mask_
 }  }
   
 #ifdef INET6  #ifdef INET6
 static int  static int masked_match6(net_tok, mask_tok, string)
 masked_match6(char *net_tok, char *mask_tok, char *string)  char   *net_tok;
   char   *mask_tok;
   char   *string;
 {  {
     union {      union {
         struct sockaddr sa;          struct sockaddr sa;
Line 443  masked_match6(char *net_tok, char *mask_
Line 455  masked_match6(char *net_tok, char *mask_
     struct addrinfo hints, *res;      struct addrinfo hints, *res;
     unsigned long masklen;      unsigned long masklen;
     char *ep;      char *ep;
     size_t i;      int i;
     char *np, *mp, *ap;      char *np, *mp, *ap;
     size_t alen;      int alen;
   
     memset(&hints, 0, sizeof(hints));      memset(&hints, 0, sizeof(hints));
     hints.ai_family = PF_UNSPEC;      hints.ai_family = PF_UNSPEC;

Legend:
Removed from v.1.19.10.1  
changed lines
  Added in v.1.19.10.2

CVSweb <webmaster@jp.NetBSD.org>