Opened 10 years ago

Closed 10 years ago

Last modified 9 years ago

#972 closed defect (fixed)

setsockopt options compatibility on various platforms (thanks Yann, John Ridges, and Dan Arrhenius for the reports)

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-1.5
Component: pjlib Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

Some problems were reported on Windows platforms on various PJ_SOL_xxx constants that is used by pj_setsockopt() and pj_getsockopt() functions:

  1. PJ_SOL_IP is initialized with 0xffff if SOL_IP is not defined, for the reason that we thought it is not supported on Windows. A better alternative is to use IPPROTO_IP.
  1. Similarly PJ_SOL_TCP and PJ_SOL_UDP are also initialized with 0xffff if IPPROTO_TCP/IPPROTO_UDP are not defined. Some users reported that on some Platform SDKs these constants are not declared as macro but rather as enum values, causing them to be reverted back to 0xffff value.

Change History (7)

comment:1 Changed 10 years ago by bennylp

  • Resolution set to fixed
  • Status changed from new to closed

In r2946:

  • set PJ_SOL_IP, PJ_SOL_TCP, and PJ_SOL_UDP to IPPROTO_IP, IPPROTO_TCP, and IPPROTO_UDP respectively on Windows
  • also added PJ_TCP_NODELAY and PJ_SO_REUSEADDR

comment:2 Changed 10 years ago by bennylp

In r2952:

  • fixed compilation problem with IPPROTO_IPV6 constant (thanks Robert Cichielo for the report)

comment:3 Changed 10 years ago by bennylp

In r2962:

  • fixed compilation error on Linux due to the introduction of PJ_TCP_NODELAY above. Thanks Dan Arrhenius for the report.

Note: everyone would need to re-run configure script

comment:4 Changed 10 years ago by bennylp

Fixed in r2964:

  • SOL_UDP is not set properly on Linux

comment:5 Changed 10 years ago by bennylp

  • Summary changed from setsockopt compatibility problems on Windows (thanks Yann and John Ridges for the reports) to setsockopt options compatibility on various platforms (thanks Yann, John Ridges, and Dan Arrhenius for the reports)

comment:6 Changed 9 years ago by bennylp

In r2982:

  • failed in pjlib-test because SOL_SOCKET is defined as 0xFFFF by Windows Platform SDK

comment:7 Changed 9 years ago by nanang

In r3016:

  • Removed PJ_SOL_SOCKET check in pjlib-test as it is defined as 0xffff on some platforms (e.g: win, mac).
Note: See TracTickets for help on using tickets.