Ignore:
Timestamp:
Dec 31, 2007 11:26:21 AM (16 years ago)
Author:
bennylp
Message:

Fixed IPv6/IPv4 address issue in Symbian: Symbian, at least 9.1, seems to have dual stack IP, so IPv4 address can be returned as a mapped IPv6 address

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/src/pj/ip_helper_symbian.cpp

    r1608 r1647  
    2121#include <pj/assert.h> 
    2222#include <pj/errno.h> 
     23#include <pj/log.h> 
    2324#include <pj/string.h> 
    2425#include <pj/compat/socket.h> 
     
    2627 
    2728#include "os_symbian.h" 
     29 
     30#define THIS_FILE       "ip_helper_symbian.cpp" 
     31#define TRACE_ME        0 
    2832 
    2933static pj_status_t rsock_enum_interface(int af, 
     
    5963        TInetAddr &iAddress = info().iAddress; 
    6064        int namelen; 
     65 
     66#if TRACE_ME 
     67                if (1) { 
     68                        pj_sockaddr a; 
     69                        char ipaddr[PJ_INET6_ADDRSTRLEN+2]; 
     70                         
     71                        namelen = sizeof(pj_sockaddr); 
     72                        if (PjSymbianOS::Addr2pj(iAddress, a, &namelen,  
     73                                                                         PJ_FALSE) == PJ_SUCCESS)  
     74                        { 
     75                                PJ_LOG(5,(THIS_FILE, "Enum: found address %s",  
     76                                                pj_sockaddr_print(&a, ipaddr, sizeof(ipaddr), 2))); 
     77                        } 
     78                } 
     79#endif 
    6180         
    62         if (iAddress.Family() != (unsigned)af) { 
     81        namelen = sizeof(ifs[i]); 
     82        if (PjSymbianOS::Addr2pj(iAddress, ifs[i], &namelen,  
     83                                                         PJ_TRUE) != PJ_SUCCESS) 
     84        { 
    6385            continue; 
    6486        } 
    65          
    66         namelen = sizeof(ifs[i]); 
    67         if (PjSymbianOS::Addr2pj(iAddress, ifs[i], &namelen) != PJ_SUCCESS) 
    68             continue; 
     87 
     88        if (ifs[i].addr.sa_family != af) 
     89                    continue; 
    6990         
    7091        ++i; 
Note: See TracChangeset for help on using the changeset viewer.