Ignore:
Timestamp:
Mar 20, 2006 12:39:24 PM (19 years ago)
Author:
bennylp
Message:

Ported pjlib to PowerPC/MacOS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/src/pj/sock_bsd.c

    r153 r338  
    8383 
    8484 
     85#if defined(PJ_SOCKADDR_HAS_LEN) && PJ_SOCKADDR_HAS_LEN!=0 
     86#   define SET_LEN(addr,len) (((pj_sockaddr*)(addr))->sa_zero_len=(len)) 
     87#   define RESET_LEN(addr)   (((pj_sockaddr*)(addr))->sa_zero_len=0) 
     88#else 
     89#   define SET_LEN(addr,len)  
     90#   define RESET_LEN(addr) 
     91#endif 
     92 
     93 
    8594/* 
    8695 * Convert 16-bit value from network byte order to host byte order. 
     
    191200                     (addr->sin_addr.s_addr=PJ_INADDR_NONE, PJ_EINVAL)); 
    192201 
     202    RESET_LEN(addr); 
    193203    addr->sin_family = AF_INET; 
    194204 
     
    227237    PJ_ASSERT_RETURN(addr, (addr->sin_addr.s_addr=PJ_INADDR_NONE, PJ_EINVAL)); 
    228238 
     239    RESET_LEN(addr); 
    229240    addr->sin_family = PJ_AF_INET; 
    230241    pj_sockaddr_in_set_port(addr, port); 
     
    347358    PJ_CHECK_STACK(); 
    348359 
     360    SET_LEN(&addr, sizeof(pj_sockaddr_in)); 
    349361    addr.sin_family = PJ_AF_INET; 
    350362    addr.sin_addr.s_addr = pj_htonl(addr32); 
     
    386398    if (getpeername(sock, (struct sockaddr*)addr, (socklen_t*)namelen) != 0) 
    387399        return PJ_RETURN_OS_ERROR(pj_get_native_netos_error()); 
    388     else 
    389         return PJ_SUCCESS; 
     400    else { 
     401        RESET_LEN(addr); 
     402        return PJ_SUCCESS; 
     403    } 
    390404} 
    391405 
     
    400414    if (getsockname(sock, (struct sockaddr*)addr, (socklen_t*)namelen) != 0) 
    401415        return PJ_RETURN_OS_ERROR(pj_get_native_netos_error()); 
    402     else 
    403         return PJ_SUCCESS; 
     416    else { 
     417        RESET_LEN(addr); 
     418        return PJ_SUCCESS; 
     419    } 
    404420} 
    405421 
     
    484500    if (*len < 0)  
    485501        return PJ_RETURN_OS_ERROR(pj_get_native_netos_error()); 
    486     else 
    487         return PJ_SUCCESS; 
     502    else { 
     503        RESET_LEN(from); 
     504        return PJ_SUCCESS; 
     505    } 
    488506} 
    489507 
     
    575593    PJ_ASSERT_RETURN(newsock != NULL, PJ_EINVAL); 
    576594 
     595#if defined(PJ_SOCKADDR_HAS_LEN) && PJ_SOCKADDR_HAS_LEN!=0 
     596    if (addr) { 
     597        SET_LEN(addr, *addrlen); 
     598    } 
     599#endif 
     600     
    577601    *newsock = accept(serverfd, (struct sockaddr*)addr, (socklen_t*)addrlen); 
    578602    if (*newsock==PJ_INVALID_SOCKET) 
    579603        return PJ_RETURN_OS_ERROR(pj_get_native_netos_error()); 
    580     else 
    581         return PJ_SUCCESS; 
     604    else { 
     605         
     606#if defined(PJ_SOCKADDR_HAS_LEN) && PJ_SOCKADDR_HAS_LEN!=0 
     607        if (addr) { 
     608            RESET_LEN(addr); 
     609        } 
     610#endif 
     611             
     612        return PJ_SUCCESS; 
     613    } 
    582614} 
    583615#endif  /* PJ_HAS_TCP */ 
Note: See TracChangeset for help on using the changeset viewer.