Changeset 338 for pjproject/trunk/pjlib/src/pj/sock_bsd.c
- Timestamp:
- Mar 20, 2006 12:39:24 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjlib/src/pj/sock_bsd.c
r153 r338 83 83 84 84 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 85 94 /* 86 95 * Convert 16-bit value from network byte order to host byte order. … … 191 200 (addr->sin_addr.s_addr=PJ_INADDR_NONE, PJ_EINVAL)); 192 201 202 RESET_LEN(addr); 193 203 addr->sin_family = AF_INET; 194 204 … … 227 237 PJ_ASSERT_RETURN(addr, (addr->sin_addr.s_addr=PJ_INADDR_NONE, PJ_EINVAL)); 228 238 239 RESET_LEN(addr); 229 240 addr->sin_family = PJ_AF_INET; 230 241 pj_sockaddr_in_set_port(addr, port); … … 347 358 PJ_CHECK_STACK(); 348 359 360 SET_LEN(&addr, sizeof(pj_sockaddr_in)); 349 361 addr.sin_family = PJ_AF_INET; 350 362 addr.sin_addr.s_addr = pj_htonl(addr32); … … 386 398 if (getpeername(sock, (struct sockaddr*)addr, (socklen_t*)namelen) != 0) 387 399 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 } 390 404 } 391 405 … … 400 414 if (getsockname(sock, (struct sockaddr*)addr, (socklen_t*)namelen) != 0) 401 415 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 } 404 420 } 405 421 … … 484 500 if (*len < 0) 485 501 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 } 488 506 } 489 507 … … 575 593 PJ_ASSERT_RETURN(newsock != NULL, PJ_EINVAL); 576 594 595 #if defined(PJ_SOCKADDR_HAS_LEN) && PJ_SOCKADDR_HAS_LEN!=0 596 if (addr) { 597 SET_LEN(addr, *addrlen); 598 } 599 #endif 600 577 601 *newsock = accept(serverfd, (struct sockaddr*)addr, (socklen_t*)addrlen); 578 602 if (*newsock==PJ_INVALID_SOCKET) 579 603 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 } 582 614 } 583 615 #endif /* PJ_HAS_TCP */
Note: See TracChangeset
for help on using the changeset viewer.