nfs-ganesha 1.4

cidr_misc.c

Go to the documentation of this file.
00001 /*
00002  * Misc pieces
00003  */
00004 #ifdef HAVE_CONFIG_H
00005 #include "config.h"
00006 #endif
00007 
00008 #include "cidr.h"
00009 
00010 
00011 static const char *__libcidr_version = CIDR_VERSION_STR;
00012 
00013 /* Library version info */
00014 const char *
00015 cidr_version(void)
00016 {
00017 
00018         return(__libcidr_version);
00019 }
00020 
00021 
00022 /* Is a CIDR a v4-mapped IPv6 address? */
00023 int
00024 cidr_is_v4mapped(const CIDR *addr)
00025 {
00026         int i;
00027         
00028         if(addr->proto != CIDR_IPV6)
00029                 return(-1);
00030         
00031         /* First 10 octets should be 0 */
00032         for(i=0 ; i<=9 ; i++)
00033                 if(addr->addr[i] != 0)
00034                         return(-1);
00035         
00036         /* Next 2 should be 0xff */
00037         for(i=10 ; i<=11 ; i++)
00038                 if(addr->addr[i] != 0xff)
00039                         return(-1);
00040 
00041         /* Then it is */
00042         return(0);
00043 }