_pr_ipv6_is_present = _pr_probe_ipv6_presence(); if (PR_TRUE == _pr_ipv6_is_present) return PR_SUCCESS;
PRStatus _pr_init_ipv6(){    const PRIOMethods *stubMethods;#if defined(_PR_INET6_PROBE)#if !defined(_PR_INET6) && defined(_PR_HAVE_GETIPNODEBYNAME)	PRLibrary *lib;	#if defined(VMS)#define GETIPNODEBYNAME getenv("GETIPNODEBYNAME")#define GETIPNODEBYADDR getenv("GETIPNODEBYADDR")#define FREEHOSTENT     getenv("FREEHOSTENT")#else#define GETIPNODEBYNAME "getipnodebyname"#define GETIPNODEBYADDR "getipnodebyaddr"#define FREEHOSTENT     "freehostent"#endif	_pr_getipnodebyname_fp = PR_FindSymbolAndLibrary(GETIPNODEBYNAME, &lib);	if (NULL != _pr_getipnodebyname_fp) {		_pr_freehostent_fp = PR_FindSymbol(lib, FREEHOSTENT);		if (NULL != _pr_freehostent_fp) {			_pr_getipnodebyaddr_fp = PR_FindSymbol(lib, GETIPNODEBYADDR);			if (NULL != _pr_getipnodebyaddr_fp)				_pr_ipv6_is_present = PR_TRUE;			else				_pr_ipv6_is_present = PR_FALSE;		} else			_pr_ipv6_is_present = PR_FALSE;		(void)PR_UnloadLibrary(lib);	} else		_pr_ipv6_is_present = PR_FALSE;	if (PR_TRUE == _pr_ipv6_is_present)#endif		_pr_ipv6_is_present = _pr_test_ipv6_socket();	if (PR_TRUE == _pr_ipv6_is_present)			return PR_SUCCESS;#endif    _pr_ipv6_to_ipv4_id = PR_GetUniqueIdentity("Ipv6_to_Ipv4 layer");    PR_ASSERT(PR_INVALID_IO_LAYER != _pr_ipv6_to_ipv4_id);	stubMethods = PR_GetDefaultIOMethods();	ipv6_to_v4_tcpMethods = *stubMethods;  /* first get the entire batch */	/* then override the ones we care about */	ipv6_to_v4_tcpMethods.connect = Ipv6ToIpv4SocketConnect;	ipv6_to_v4_tcpMethods.bind = Ipv6ToIpv4SocketBind;	ipv6_to_v4_tcpMethods.accept = Ipv6ToIpv4SocketAccept;	ipv6_to_v4_tcpMethods.acceptread = Ipv6ToIpv4SocketAcceptRead;	ipv6_to_v4_tcpMethods.getsockname = Ipv6ToIpv4SocketGetName;	ipv6_to_v4_tcpMethods.getpeername = Ipv6ToIpv4SocketGetPeerName;/*	ipv6_to_v4_tcpMethods.getsocketoption = Ipv6ToIpv4GetSocketOption;	ipv6_to_v4_tcpMethods.setsocketoption = Ipv6ToIpv4SetSocketOption;*/	ipv6_to_v4_udpMethods = *stubMethods;  /* first get the entire batch */	/* then override the ones we care about */	ipv6_to_v4_udpMethods.connect = Ipv6ToIpv4SocketConnect;	ipv6_to_v4_udpMethods.bind = Ipv6ToIpv4SocketBind;	ipv6_to_v4_udpMethods.sendto = Ipv6ToIpv4SocketSendTo;	ipv6_to_v4_udpMethods.recvfrom = Ipv6ToIpv4SocketRecvFrom;	ipv6_to_v4_tcpMethods.getsockname = Ipv6ToIpv4SocketGetName;	ipv6_to_v4_tcpMethods.getpeername = Ipv6ToIpv4SocketGetPeerName;/*	ipv6_to_v4_tcpMethods.getsocketoption = Ipv6ToIpv4GetSocketOption;	ipv6_to_v4_tcpMethods.setsocketoption = Ipv6ToIpv4SetSocketOption;*/	return PR_SUCCESS;}