(file) Return to HostAddress.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/HostAddress.cpp between version 1.1.2.3 and 1.1.2.4

version 1.1.2.3, 2007/06/18 09:10:40 version 1.1.2.4, 2007/06/18 12:02:27
Line 142 
Line 142 
                 }                 }
             }             }
         }         }
         if ((isalpha(*src) && tolower(*src) <= 'f') || isdigit(*src))          if (isascii(*src) &&
               (isalpha(*src) && tolower(*src) <= 'f') || isdigit(*src))
         {         {
             // Check for ipv4 compatible ipv6 or ipv4 mapped ipv6 addresses             // Check for ipv4 compatible ipv6 or ipv4 mapped ipv6 addresses
            if(!strchr(src, ':') && strchr(src, '.'))            if(!strchr(src, ':') && strchr(src, '.'))
Line 162 
Line 163 
                 {                 {
                     return 0;                     return 0;
                 }                 }
                 if (!((isalpha(*src) && tolower(*src) <= 'f') || isdigit(*src)))                  if (!isascii(*src) ||
                       !((isalpha(*src) && tolower(*src) <= 'f') || isdigit(*src)))
                 {                 {
                     return 0;                     return 0;
                 }                 }
Line 184 
Line 186 
     {     {
         return 0;         return 0;
     }     }
       memset(dst, 0, PEGASUS_IN6_ADDR_SIZE);
     memset(dst, 0, sizeof(struct in6_addr));  
   
     for (int i = 0, j = 0; i < 8 ; ++i)     for (int i = 0, j = 0; i < 8 ; ++i)
     {     {
         if (ccIndex == i)         if (ccIndex == i)
Line 232 
Line 232 
     int zeroCnt = 0;     int zeroCnt = 0;
     int index = 0;     int index = 0;
  
     memcpy (n, src, sizeof (struct in6_addr));      memcpy (n, src, PEGASUS_IN6_ADDR_SIZE);
     memset(dst, 0, size);     memset(dst, 0, size);
     for (int i = 0; i < 8 ; ++i)     for (int i = 0; i < 8 ; ++i)
     {     {
Line 299 
Line 299 
                 Uint32 m;                 Uint32 m;
                 m = htons(n[7]);                 m = htons(n[7]);
                 m = (m << 16) + htons(n[6]);                 m = (m << 16) + htons(n[6]);
                 HostAddress::convertBinaryToText(AF_INET, &m, tmp, 50);                  convertBinaryToText(AF_INET, &m, tmp, 50);
                 i += 2;                 i += 2;
             }             }
             else             else
Line 381 
Line 381 
     switch (af)     switch (af)
     {     {
         case AT_IPV6:         case AT_IPV6:
              return !memcmp(p1, p2, sizeof(struct in6_addr));               return !memcmp(p1, p2, PEGASUS_IN6_ADDR_SIZE);
         case AT_IPV4:         case AT_IPV4:
              return !memcmp(p1, p2, sizeof(struct in_addr));              return !memcmp(p1, p2, sizeof(struct in_addr));
     }     }
Line 412 
Line 412 
 Boolean HostAddress::isValidIPV6Address (const String &ipv6Address) Boolean HostAddress::isValidIPV6Address (const String &ipv6Address)
 { {
     CString addr = ipv6Address.getCString();     CString addr = ipv6Address.getCString();
   #ifdef PEGASUS_ENABLE_IPV6
     struct in6_addr iaddr;     struct in6_addr iaddr;
   #else
       char iaddr[PEGASUS_IN6_ADDR_SIZE];
   #endif
     return  1 == convertTextToBinary(AT_IPV6, (const char*) addr,     return  1 == convertTextToBinary(AT_IPV6, (const char*) addr,
                      (void*)&iaddr);                      (void*)&iaddr);
 } }


Legend:
Removed from v.1.1.2.3  
changed lines
  Added in v.1.1.2.4

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2