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?
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.
Created attachment 122013 [details] [diff] [review] Proposed patch This version of the patch uses PR_GETIPNODE_NOT_THREADSAFE, and defines it in the OpenVMS section of configure.in.
Created attachment 122027 [details] [diff] [review] Proposed patch v1.1 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();
Comment on attachment 122027 [details] [diff] [review] Proposed patch v1.1 Can this get into 1.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.