On 03/24/11 11:49 AM, Alan Bateman wrote:
Chris Hegarty wrote:

Yes, we will now have a dependency on iphlpapi.dll, but this dll is
part of Windows since Windows 2000 and the functions we are using are
all available on XP. Does this address your concern, or do you have
another issue?
The concern is that we load yet another DLL at startup. It might be
worth checking if it gets loaded already.

You are right, before these changes iphlpapi.dll is not loaded unless NetworkInterface or ResolverConfigurationImpl are called. After these changes iphlpapi.dll is loaded once net.dll is loaded.

I think we should use specify the loading of these dll's to be delayed. I can confirm that with the below changes iphlpapi.dll is only loaded when necessary.

diff -r ef5bbbe0dd75 make/java/net/Makefile
--- a/make/java/net/Makefile    Mon Mar 21 22:02:00 2011 -0700
+++ b/make/java/net/Makefile    Thu Mar 24 15:27:38 2011 +0000
@@ -37,10 +37,6 @@ AUTO_FILES_JAVA_DIRS = java/net
 AUTO_FILES_JAVA_DIRS = java/net

 ifeq ($(PLATFORM), windows)
-    # Windows 9x module only needed on 32-bit build
-    ifeq ($(ARCH_DATA_MODEL), 32)
-       FILES_c += NetworkInterface_win9x.c
-    endif
     FILES_c += NTLMAuthSequence.c
     FILES_c += NetworkInterface_winXP.c
 else
@@ -96,7 +92,9 @@ include $(BUILDDIR)/common/Library.gmk
 include $(BUILDDIR)/common/Library.gmk

 ifeq ($(PLATFORM), windows)
-  OTHER_LDLIBS = ws2_32.lib $(JVMLIB)
+  OTHER_LDLIBS = ws2_32.lib $(JVMLIB) \
+                 secur32.lib iphlpapi.lib delayimp.lib \
+                 /DELAYLOAD:secur32.dll /DELAYLOAD:iphlpapi.dll
 else
   OTHER_LDLIBS = $(LIBSOCKET) $(LIBNSL) -ldl $(JVMLIB)


:

I forgot to mention that I fixed a few compiler warning while I was
here. Are you referring to the casting of SOCKET s to jint, line 982?
SOCKET is an unsigned int pointer and needs an explicit cast. I
thought it was safe, and is what is done in Java_sun_nio_ch_Net_socket0.
NET_Socket is declared to return an int so I assume you meant to cast to
int rather than jint.

D'oh. Got it. Thanks,

-Chris.


-Alan.

Reply via email to