It turns out that the getipnodebyxxxx routines provided by TCP/IP Services for OpenVMS are not threadsafe (I have reported this internally as PTR 30-5-415 in library OSSG). But until the problem gets fixed, I have to patch prnetdb.c to work around the bug (see attachment in next reply). If I were to change the "#ifdef VMS" to "#ifdef PR_GETIPNODE_NOT_THREADSAFE" or something like that, and then define PR_GETIPNODE_NOT_THREADSAFE in nsprpub/config/OpenVMS.mk, is this something that could/should be checked in?
This is my current workaround.
Yes, please use something like PR_GETIPNODE_NOT_THREADSAFE. You'd need to define that macro in nsprpub/configure.in. nsprpub/config/OpenVMS.mk is obsolete.
Status: NEW → ASSIGNED
This version of the patch uses PR_GETIPNODE_NOT_THREADSAFE, and defines it in the OpenVMS section of configure.in.
Attachment #121649 - Attachment is obsolete: true
This is essentially the same as Colin's patch. I only made some changes to conform to the coding style (of the placement of curly braces) and to avoid this nested ifdef and if, which I find difficult to understand: +#ifndef PR_GETIPNODE_NOT_THREADSAFE if (_pr_ipv6_is_present == PR_FALSE) +#endif UNLOCK_DNS();
Attachment #122013 - Attachment is obsolete: true
Comment on attachment 122027 [details] [diff] [review] Proposed patch v1.1 Can this get into 1.4b?
Attachment #122027 - Flags: approval1.4b?
Attachment #122027 - Flags: approval1.4b? → approval1.4b+
I believe this fix is checked in now. So the bug can be closed?
Yes, the fix has been checked in. Marked the bug fixed.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Target Milestone: --- → 4.4
You need to log in before you can comment on or make changes to this bug.