I have seen that in places just the formatting was improved - much 
appreciated, but

please respect the GNU Coding Style 
(http://openvas.org/compendium/source-code-style-guide.html).

Don't get me wrong, looks fine and tidy compared to what there was, but it 
would be great if we would have a consistent formatting of the code in the 
(near) future.

Thanks,
-- Felix


PS: What i was missing:
* space before opening bracket
* block indentation
* return type in own line


On Thursday 20 August 2009 11:20:33 scm-com...@wald.intevation.org wrote:
> Author: jan
> Date: 2009-08-20 11:20:32 +0200 (Thu, 20 Aug 2009)
> New Revision: 4634
>
> Modified:
>    trunk/openvas-server/ChangeLog
>    trunk/openvas-server/openvasd/attack.c
>    trunk/openvas-server/openvasd/rules.c
>    trunk/openvas-server/openvasd/rules.h
> Log:
> Initializing implementation for IPv6 support.
> This corresponds to Change Request #27,
> http://www.openvas.org/openvas-cr-27.html
> Most work done by Srinivasa NL <nl.srini...@gmail.com>.
>
> * openvasd/rules.h: Added type "inaddrs_t" as union to hold
> either IPv6 or IPv4 address.
> (struct openvas_rules): Adapted to above and added family.
> Adpated protos according to new type.
>
> * openvasd/rules.c (rules_validateandgetipaddr, rules_ipv6addrmask): New.
> (rules_init_aux): Mostly rewritten to support IPv6 addresses.
> (rules_dup_aux, rules_dup): Removed. These functions are never used.
> (rules_set_client_ip): API changed (family added). Now supports IPv6.
> (rules_add): Added support of IPv6.
> (rules_dump): Added support of IPv6.
> (get_host_rules): Removed recursion decision. Added support of IPv6.
>
> * openvasd/attack.c (attack_network): Adapt to new API for considerung
> also IPv6 addesses when checking for access rules.
>
>
>
> Modified: trunk/openvas-server/ChangeLog
> ===================================================================
> --- trunk/openvas-server/ChangeLog    2009-08-20 09:02:13 UTC (rev 4633)
> +++ trunk/openvas-server/ChangeLog    2009-08-20 09:20:32 UTC (rev 4634)
> @@ -1,3 +1,30 @@
> +2009-08-20  Jan-Oliver Wagner <jan-oliver.wag...@greenbone.net>
> +
> +     Initializing implementation for IPv6 support.
> +     This corresponds to Change Request #27,
> +     http://www.openvas.org/openvas-cr-27.html
> +     Most work done by Srinivasa NL <nl.srini...@gmail.com>.
> +
> +     * openvasd/rules.h: Added type "inaddrs_t" as union to hold
> +     either IPv6 or IPv4 address.
> +     (struct openvas_rules): Adapted to above and added family.
> +     Adpated protos according to new type.
> +
> +     * openvasd/rules.c (rules_validateandgetipaddr, rules_ipv6addrmask): 
> New.
> +     (rules_init_aux): Mostly rewritten to support IPv6 addresses.
> +     (rules_dup_aux, rules_dup): Removed. These functions are never used.
> +     (rules_set_client_ip): API changed (family added). Now supports IPv6.
> +     (rules_add): Added support of IPv6.
> +     (rules_dump): Added support of IPv6.
> +     (get_host_rules): Removed recursion decision. Added support of IPv6.
> +
> +     * openvasd/attack.c (attack_network): Adapt to new API for considerung
> +     also IPv6 addesses when checking for access rules.
> +
> +2009-08-10 Vlatko Kosturjak <k...@linux.hr>
> +
> +     * cnvts/3com_hub/Makefile, cnvts/3com_hub/3com_hub.c:
> +
>  2009-08-19  Tim Brown <t...@nth-dimension.org.uk>
>
>       * openvas-adduser.in, openvas-rmuser.in: Fixed bashism.
>
> Modified: trunk/openvas-server/openvasd/attack.c
> ===================================================================
> --- trunk/openvas-server/openvasd/attack.c    2009-08-20 09:02:13 UTC (rev
> 4633) +++ trunk/openvas-server/openvasd/attack.c      2009-08-20 09:20:32 UTC
> (rev 4634) @@ -721,6 +721,7 @@
>    hargwalk * hw;
>    char * key;
>    struct timeval then, now;
> +  inaddrs_t addrs;
>
>    gettimeofday(&then, NULL);
>
> @@ -861,8 +862,11 @@
>          }
>
>        host_pending = 0 ;
> +
> +      addrs.ip.s_addr = host_ip.s_addr;
> +
>        /* Do we have the right to test this host ? */
> -      if(CAN_TEST(get_host_rules(rules, host_ip,32)) == 0)
> +      if(CAN_TEST(get_host_rules(rules, addrs)) == 0)
>          {
>            log_write("user %s : rejected attempt to scan %s",
>                      attack_user_name(globals), hostname);
>
> Modified: trunk/openvas-server/openvasd/rules.c
> ===================================================================
> --- trunk/openvas-server/openvasd/rules.c     2009-08-20 09:02:13 UTC (rev
> 4633) +++ trunk/openvas-server/openvasd/rules.c       2009-08-20 09:20:32 UTC
> (rev 4634) @@ -35,6 +35,86 @@
>  #include "rules.h"
>  #include "log.h"
>
> +static int rules_validateandgetipaddr(char *ip, int family, struct
> sockaddr *sa, int numeric) +{
> +  struct addrinfo hints;
> +  struct addrinfo *ai;
> +  int retval;
> +
> +  memset(&hints, 0, sizeof(hints));
> +  switch(family)
> +  {
> +    case AF_INET:
> +      hints.ai_family = AF_INET;
> +      break;
> +    case AF_INET6:
> +      hints.ai_family = AF_INET6;
> +      break;
> +    default:
> +      return -1;
> +  }
> +  if(numeric)
> +    hints.ai_flags = AI_NUMERICHOST;
> +
> +  retval = getaddrinfo(ip, NULL, &hints, &ai);
> +  if(!retval)
> +  {
> +    if(family == AF_INET)
> +    {
> +      memcpy(sa, ai->ai_addr, sizeof(struct sockaddr_in));
> +    }
> +    else
> +    {
> +      memcpy(sa, &((struct sockaddr_in6 *)(ai->ai_addr))->sin6_addr,
> sizeof(struct sockaddr_in6)); +    }
> +    freeaddrinfo(ai);
> +    return 0;
> +  }
> +  return -1;
> +}
> +
> +static void rules_ipv6addrmask(struct in6_addr *in6addr, int mask)
> +{
> +  int wordmask;
> +  int word;
> +  uint32_t *ptr;
> +  uint32_t addr;
> +
> +  word = mask / 32;
> +  wordmask = mask % 32;
> +  ptr = (uint32_t *)in6addr;
> +  switch(word)
> +  {
> +    case 0:
> +      ptr[1] = ptr[2] = ptr[3] = 0;
> +      addr = ptr[0];
> +      addr = ntohl(addr) >> (32 - wordmask);
> +      addr = htonl(addr << (32 - wordmask));
> +      ptr[0] = addr;
> +      break;
> +    case 1:
> +      ptr[2] = ptr[3] = 0;
> +      addr = ptr[1];
> +      addr = ntohl(addr) >> (32 - wordmask);
> +      addr = htonl(addr << (32 - wordmask));
> +      ptr[1] = addr;
> +      break;
> +    case 2:
> +      ptr[3] = 0;
> +      addr = ptr[2];
> +      addr = ntohl(addr) >> (32 - wordmask);
> +      addr = htonl(addr << (32 - wordmask));
> +      ptr[2] = addr;
> +      break;
> +    case 3:
> +      addr = ptr[3];
> +      addr = ntohl(addr) >> (32 - wordmask);
> +      addr = htonl(addr << (32 - wordmask));
> +      ptr[3] = addr;
> +      break;
> +  }
> +}
> +
>  /**
>   * @brief Returns the name of the rules file.
>   *
> @@ -74,99 +154,137 @@
>  }
>
>
> -int rules_init_aux(rules,file, buffer, len,def)
> -  struct openvas_rules * rules;
> -  FILE * file;
> -  char * buffer;
> -  int len;
> -  int def;
> +int rules_init_aux(struct openvas_rules * rules, FILE * file,
> +                   char * buffer, int len, int def)
>  {
> - buffer[0] = buffer[len - 1 ] = '\0';
> -
> - if(!(fgets(buffer, len - 1, file))){
> -     rules->next = NULL;
> -     return def;
> - }
> - else {
> -   char *t = buffer;
> -   char *v;
> -   int t_len;
> -   if(t[strlen(t)-1]=='\n')t[strlen(t)-1]='\0';
> -   while((t[0]==' ')||(t[0]=='\t'))t++;
> -   if((t[0]=='#')||t[0] == '\0')return rules_init_aux(rules,file, buffer,
> len,def); -   v = strchr(t, ' ');
> -   if( v == NULL ){
> -      printf("Parse error in the rules file : %s\n",
> -                             buffer);
> -      return rules_init_aux(rules, file, buffer, len, def);
> -   }
> -   else
> -   {
> -     if(!strncmp(t, "accept", 6))
> -       rules->rule = RULES_ACCEPT;
> -     else if(!strncmp(t, "default", 7)){
> -             if(!strncmp(t+8, "accept", 6))def = RULES_ACCEPT;
> -     else def = RULES_REJECT;
> -     return rules_init_aux(rules, file, buffer, len, def);
> -     }
> -     else if((!strncmp(t, "reject", 6))||
> -          (!strncmp(t, "deny", 4)))rules->rule = RULES_REJECT;
> -     else {
> -                printf("Parse error in the rules file : %s\n",
> -                             buffer);
> -        return rules_init_aux(rules, file, buffer, len,def);
> -     }
> -     t = v+sizeof(char);
> -     v = strchr(t, '/');
> -     if(v)v[0]='\0';
> -     if(t[0]=='!'){
> -             rules->not = 1;
> -        t++;
> -     }
> -     else rules->not = 0;
> -     t_len = strlen(t);
> -     while(t[t_len-1]==' ')
> -     {
> -      t[t_len-1]='\0';
> -      t_len --;
> -     }
> -     if(!(inet_aton(t,&rules->ip)))
> -      {
> -       if(strcmp(t, "client_ip"))
> -       {
> -       printf("Parse error in the rules file : '%s' is not a valid IP\n",
> -                             t);
> -       return rules_init_aux(rules, file, buffer, len,def);
> -       }
> -       else
> -       {
> -        rules->ip.s_addr = -1;
> -        rules->client_ip = 1;
> -       }
> -      }
> -      else rules->client_ip = 0;
> -
> -     if(v)rules->mask = atoi(v+sizeof(char));
> -     else rules->mask = 32;
> -     if(rules->mask < 0 || rules->mask > 32)
> -     {
> -       printf("Error in the rules file. %s is not a valid cidr netmask\n",
> -                             v+sizeof(char));
> -       EXIT(1);
> +  struct sockaddr_in saddr;
> +  struct sockaddr_in6 s6addr;
>
> -     }
> -     if(rules->mask > 0)
> -     {
> -     rules->ip.s_addr = ntohl(rules->ip.s_addr) >> (32 - rules->mask);
> -     rules->ip.s_addr = htonl(rules->ip.s_addr << (32 - rules->mask));
> -     }
> -     else rules->ip.s_addr = 0;
> -     rules->next = emalloc(sizeof(*rules));
> -   }
> - }
> - return rules_init_aux(rules->next, file, buffer, len, def);
> +  while(1)
> +  {
> +    buffer[0] = buffer[len - 1 ] = '\0';
> +    if(!(fgets(buffer, len - 1, file)))
> +    {
> +      rules->next = NULL;
> +      return def;
> +    }
> +    else
> +    {
> +      char *t = buffer;
> +      char *v;
> +      int t_len;
> +      if(t[strlen(t)-1]=='\n')t[strlen(t)-1]='\0';
> +      while((t[0]==' ')||(t[0]=='\t'))t++;
> +      if((t[0]=='#')||t[0] == '\0')
> +        continue;
> +      v = strchr(t, ' ');
> +      if( v == NULL ){
> +        printf("Parse error in the rules file : %s\n",
> +            buffer);
> +        continue;
> +      }
> +      else
> +      {
> +        if(!strncmp(t, "accept", 6))
> +          rules->rule = RULES_ACCEPT;
> +        else if(!strncmp(t, "default", 7)){
> +          if(!strncmp(t+8, "accept", 6))def = RULES_ACCEPT;
> +          else def = RULES_REJECT;
> +          continue;
> +        }
> +        else if((!strncmp(t, "reject", 6))||
> +            (!strncmp(t, "deny", 4)))rules->rule = RULES_REJECT;
> +        else {
> +          printf("Parse error in the rules file : %s\n",
> +              buffer);
> +          continue;
> +        }
> +        t = v+sizeof(char);
> +        v = strchr(t, '/');
> +        if(v)v[0]='\0';
> +        if(t[0]=='!'){
> +          rules->not = 1;
> +          t++;
> +        }
> +        else rules->not = 0;
> +        t_len = strlen(t);
> +        while(t[t_len-1]==' ')
> +        {
> +          t[t_len-1]='\0';
> +          t_len --;
> +        }
> +
> +        if(!rules_validateandgetipaddr(t, AF_INET, (struct sockaddr
> *)&saddr ,1)) +        {
> +          rules->inaddrs.ip.s_addr = saddr.sin_addr.s_addr;
> +          rules->family = AF_INET;
> +          rules->client_ip = 0;
> +        }
> +        else if(!rules_validateandgetipaddr(t, AF_INET6, (struct sockaddr
> *)&s6addr ,1)) +        {
> +          memcpy(&rules->inaddrs.ip6, &s6addr, sizeof(struct
> sockaddr_in6)); +          rules->family = AF_INET6;
> +          rules->client_ip = 0;
> +        }
> +        else
> +        {
> +          if(strcmp(t, "client_ip"))
> +          {
> +            printf("Parse error in the rules file : '%s' is not a valid
> IP\n", +                t);
> +            continue;
> +          }
> +          else
> +          {
> +            rules->client_ip = 1;
> +          }
> +        }
> +
> +        if(v)
> +          rules->mask = atoi(v+sizeof(char));
> +        else
> +          rules->mask = rules->family == AF_INET ? 32 : 128;
> +
> +        if(rules->family == AF_INET)
> +        {
> +          if(rules->mask < 0 || rules->mask > 32)
> +          {
> +            printf("Error in the rules file. %s is not a valid cidr
> netmask\n", +                v+sizeof(char));
> +            EXIT(1);
> +          }
> +          if(rules->mask > 0)
> +          {
> +            rules->inaddrs.ip.s_addr = ntohl(rules->inaddrs.ip.s_addr) >>
> (32 - rules->mask); +            rules->inaddrs.ip.s_addr =
> htonl(rules->inaddrs.ip.s_addr << (32 - rules->mask));                     
>                                                                       ; +  
>        }
> +          else
> +            rules->inaddrs.ip.s_addr = 0;
> +        }
> +        else
> +        {
> +          if(rules->mask < 0 || rules->mask > 128)
> +          {
> +            printf("Error in the rules file. %s is not a valid cidr
> netmask\n", +                v+sizeof(char));
> +            EXIT(1);
> +          }
> +          if(rules->mask > 0)
> +            rules_ipv6addrmask(&rules->inaddrs.ip6, rules->mask);
> +          else
> +          {
> +            rules->inaddrs.ip6.s6_addr32[0] = 0;
> +            rules->inaddrs.ip6.s6_addr32[1] = 0;
> +            rules->inaddrs.ip6.s6_addr32[2] = 0;
> +            rules->inaddrs.ip6.s6_addr32[3] = 0;
> +          }
> +        }
> +        rules->next = emalloc(sizeof(*rules));
> +        rules = rules->next;
> +      }
> +    }
> +  }
>  }
> -
>
>  void
>  rules_init(rules, preferences)
> @@ -194,32 +312,6 @@
>  }
>
>  struct openvas_rules *
> -rules_dup_aux(s, r)
> -  struct openvas_rules * s, *r;
> -{
> -  printf("rules_dup called - does not work\n");
> -  if(!s->next)return r;
> -  else
> -  {
> -    r->ip.s_addr = s->ip.s_addr;
> -    r->mask = s->mask;
> -    r->rule = s->rule;
> -    r->not = s->not;
> -    r->def  = s->def;
> -    r->next = emalloc(sizeof(*r));
> -    return rules_dup_aux(s->next,r->next);
> -  }
> -}
> -struct openvas_rules *
> -rules_dup(struct openvas_rules *s)
> -{
> -  struct openvas_rules * r = emalloc(sizeof(*r));
> -  return rules_dup_aux(s, r);
> -}
> -
> -
> -
> -struct openvas_rules *
>  rules_cat(struct openvas_rules * a,
>       struct openvas_rules * b)
>  {
> @@ -239,17 +331,25 @@
>  }
>
>
> -void rules_set_client_ip(struct openvas_rules * r, struct in_addr client)
> +void rules_set_client_ip(struct openvas_rules * r, inaddrs_t *addrs, int
> family) {
> - if(!r)
> -  return;
> - else
> +  while(r)
>    {
> -   if(r->client_ip)
> -      r->ip = client;
> -   rules_set_client_ip(r->next, client);
> +    if(r->client_ip)
> +    {
> +      if(family == AF_INET)
> +      {
> +        r->inaddrs.ip.s_addr = addrs->ip.s_addr;
> +      }
> +      else
> +      {
> +        memcpy(&r->inaddrs.ip6,&addrs->ip6,sizeof(struct in6_addr));
> +      }
> +    }
> +    r = r->next;
>    }
>  }
> +
>  void rules_set_def(struct openvas_rules * r, int def)
>  {
>    if(!r)return;
> @@ -291,7 +391,13 @@
>      {
>        if(!username)
>        {
> -      accept_rules->ip.s_addr = t->ip.s_addr;
> +      if(t->family == AF_INET)
> +        accept_rules->inaddrs.ip.s_addr = t->inaddrs.ip.s_addr;
> +      else
> +      {
> +        memcpy(&accept_rules->inaddrs.ip6, &t->inaddrs.ip6, sizeof(struct
> in6_addr)); +      }
> +      accept_rules->family = t->family;
>        accept_rules->client_ip = t->client_ip;
>        accept_rules->mask = t->mask;
>        accept_rules->rule = t->rule;
> @@ -302,12 +408,18 @@
>        else
>        {
>         log_write("user %s : attempted to gain more rights by adding accept
> %s/%d", -                     username, inet_ntoa(t->ip), t->mask);
> +                     username, inet_ntoa(t->inaddrs.ip), t->mask);
>        }
>      }
>      else
>      {
> -      reject_rules->ip.s_addr = t->ip.s_addr;
> +      if(t->family == AF_INET)
> +        reject_rules->inaddrs.ip.s_addr = t->inaddrs.ip.s_addr;
> +      else
> +      {
> +        memcpy(&reject_rules->inaddrs.ip6, &t->inaddrs.ip6, sizeof(struct
> in6_addr)); +      }
> +      reject_rules->family = t->family;
>        reject_rules->client_ip = t->client_ip;
>        reject_rules->mask = t->mask;
>        reject_rules->rule = t->rule;
> @@ -327,7 +439,7 @@
>
>    rules_set_def(*rules, def);
>
> -#ifdef DEBUG_RULES
> +#ifdef DEBUG_RULES
>    printf("After rules_cat : \n");
>    rules_dump(*rules);
>  #endif
> @@ -337,49 +449,106 @@
>  void
>  rules_dump(struct openvas_rules * rules)
>  {
> -  if(!rules->next)return;
> -  printf("%d %c%s/%d (def %d)\n", rules->rule, rules->not?'!':' ',
> inet_ntoa(rules->ip), rules->mask, -                                  
> rules->def);
> -  rules_dump(rules->next);
> +  struct openvas_rules *r;
> +  char buf[INET6_ADDRSTRLEN];
> +  r = rules;
> +  while(r)
> +  {
> +    if(r->family == AF_INET)
> +      printf("%d %c%s/%d (def %d)\n", r->rule, r->not?'!':' ',
> inet_ntop(r->family, &r->inaddrs.ip, buf,sizeof(buf)), r->mask, +         
> r->def);
> +    else
> +      printf("%d %c%s/%d (def %d)\n", r->rule, r->not?'!':' ',
> inet_ntop(r->family, &r->inaddrs.ip6, buf,sizeof(buf)), r->mask, +         
> r->def);
> +    r = r->next;
> +  }
>  }
>  #endif
>
>  int
> -get_host_rules (struct openvas_rules * rules, struct in_addr addr,
> -                int netmask)
> +get_host_rules (struct openvas_rules * rules, inaddrs_t addr)
>  {
> -  struct in_addr backup;
> +  struct in_addr  tstaddr;
> +  struct in6_addr tstaddr6;
>
> +  tstaddr.s_addr = 0;
> +
>    if (!rules)
> -    {
> -      fprintf(stderr, "???? no rules - this is likely to be a bug\n");
> -      fprintf(stderr, "Please report at bugs.openvas.org\n");
> -      return RULES_ACCEPT;
> -    }
> -  if (!rules->next)
> -    return rules->def;
> +  {
> +    fprintf(stderr, "???? no rules - this is likely to be a bug\n");
> +    fprintf(stderr, "Please report at bugs.openvas.org\n");
> +    return RULES_ACCEPT;
> +  }
>
> -  backup.s_addr = addr.s_addr;
> -  if (rules->mask > 0)
> +  while(rules)
> +  {
> +    if (!rules->next)
> +      return rules->def;
> +
> +    if(rules->family == AF_INET)
>      {
> -      addr.s_addr = ntohl(addr.s_addr) >> (32 - rules->mask);
> -      addr.s_addr = htonl(addr.s_addr << (32 - rules->mask));
> -    }
> -  else addr.s_addr = 0;
> +      tstaddr.s_addr = addr.ip.s_addr;
> +      if (rules->mask > 0)
> +      {
> +        tstaddr.s_addr = ntohl(tstaddr.s_addr) >> (32 - rules->mask);
> +        tstaddr.s_addr = htonl(tstaddr.s_addr << (32 - rules->mask));
> +      }
> +      else tstaddr.s_addr = 0;
>
> -  if(rules->not)
> -    {
> -      if (addr.s_addr != rules->ip.s_addr)
> -        return(rules->rule);
> +      if(rules->not)
> +      {
> +        if (tstaddr.s_addr != rules->inaddrs.ip.s_addr)
> +          return(rules->rule);
> +      }
> +      else
> +      {
> +        if (tstaddr.s_addr == rules->inaddrs.ip.s_addr)
> +        {
> +          return(rules->rule);
> +        }
> +      }
>      }
> -  else
> +    else
>      {
> -      if (addr.s_addr == rules->ip.s_addr)
> +      /* Check whether ipv6 address can be scanned */
> +      memcpy(&tstaddr6, &addr.ip6, sizeof(struct in6_addr));
> +      if (rules->mask > 0)
> +        rules_ipv6addrmask(&tstaddr6, rules->mask);
> +      else
> +      {
> +        tstaddr6.s6_addr32[0] = 0;
> +        tstaddr6.s6_addr32[1] = 0;
> +        tstaddr6.s6_addr32[2] = 0;
> +        tstaddr6.s6_addr32[3] = 0;
> +      }
> +      if(rules->not)
> +      {
> +        /* If not equal return rules->rule*/
> +        if( tstaddr6.s6_addr32[0] != rules->inaddrs.ip6.s6_addr32[0] || \
> +            tstaddr6.s6_addr32[1] != rules->inaddrs.ip6.s6_addr32[1] || \
> +            tstaddr6.s6_addr32[2] != rules->inaddrs.ip6.s6_addr32[2] || \
> +            tstaddr6.s6_addr32[3] != rules->inaddrs.ip6.s6_addr32[3]    \
> +          )
> +          return(rules->rule);
> +      }
> +      else
> +      {
> +        /* If equal return rules->rule*/
> +        if( tstaddr6.s6_addr32[0] == rules->inaddrs.ip6.s6_addr32[0] && \
> +            tstaddr6.s6_addr32[1] == rules->inaddrs.ip6.s6_addr32[1] && \
> +            tstaddr6.s6_addr32[2] == rules->inaddrs.ip6.s6_addr32[2] && \
> +            tstaddr6.s6_addr32[3] == rules->inaddrs.ip6.s6_addr32[3]    \
> +          )
> +        if (tstaddr.s_addr == rules->inaddrs.ip.s_addr)
>          {
>            return(rules->rule);
>          }
> +      }
>      }
> -  return get_host_rules (rules->next, backup, netmask);
> +    rules = rules->next;
> +  }
> +  fprintf(stderr, "Rules check ended: May be bug? Please report\n");
> +  return RULES_ACCEPT;
>  }
>
>  void
> @@ -392,4 +561,3 @@
>    rules = next;
>   }
>  }
> -
>
> Modified: trunk/openvas-server/openvasd/rules.h
> ===================================================================
> --- trunk/openvas-server/openvasd/rules.h     2009-08-20 09:02:13 UTC (rev
> 4633) +++ trunk/openvas-server/openvasd/rules.h       2009-08-20 09:20:32 UTC
> (rev 4634) @@ -34,9 +34,16 @@
>  /**
>   * Representation of a chain of rules.
>   */
> +typedef union inaddrs
> +{
> +  struct in_addr  ip;
> +  struct in6_addr ip6;
> +} inaddrs_t;
> +
>  struct openvas_rules
>  {
> -  struct in_addr ip;
> +  inaddrs_t inaddrs;
> +  int    family;
>    int client_ip; /**< If set to 1, then 'ip' will be replaced by the
> client ip when appropriate. */
>    int mask;
> @@ -55,7 +62,7 @@
>  struct openvas_rules * rules_parse(char * , struct openvas_rules *, int);
>  struct openvas_rules * rules_dup(struct openvas_rules *);
>  void rules_set_def(struct openvas_rules *, int);
> -void rules_set_client_ip(struct openvas_rules *, struct in_addr);
> -int get_host_rules(struct openvas_rules *, struct in_addr, int);
> +void rules_set_client_ip(struct openvas_rules *, inaddrs_t *, int family);
> +int get_host_rules(struct openvas_rules *, inaddrs_t inaddrs);
>
>  #endif
>
> _______________________________________________
> Openvas-commits mailing list
> openvas-comm...@wald.intevation.org
> http://lists.wald.intevation.org/mailman/listinfo/openvas-commits


-- 
Felix Wolfsteller |  ++49-541-335 08 3451  |  http://www.intevation.de/
PGP Key: 39DE0100
Intevation GmbH, Neuer Graben 17, 49074 Osnabrück | AG Osnabrück, HR B 18998
Geschäftsführer: Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner
_______________________________________________
Openvas-devel mailing list
Openvas-devel@wald.intevation.org
http://lists.wald.intevation.org/mailman/listinfo/openvas-devel

Reply via email to