aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-10 04:55:34 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-10 04:55:34 +0000
commita32bc08d36360adf59806908ebe790ff03f689a2 (patch)
treeaff30ce96dfe57baca2258006515aa59f57e8988
parent0de28773260c8c47dec6a39711765c27acc646de (diff)
downloadruby-a32bc08d36360adf59806908ebe790ff03f689a2.tar.gz
* configure.in, win32/Makefile.sub (LIBS, COMMON_HEADERS): use
winsock2 on mswin32/mingw. * ext/socket/extconf.rb: ditto. * win32/win32.c (StartSockets): ditto. * win32/win32.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog11
-rw-r--r--configure.in4
-rw-r--r--ext/socket/extconf.rb9
-rw-r--r--win32/Makefile.sub2
-rw-r--r--win32/win32.c14
-rw-r--r--win32/win32.h2
6 files changed, 22 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index f08d14f19c..ef7d34e6b6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Thu Feb 10 13:52:42 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * configure.in, win32/Makefile.sub (LIBS, COMMON_HEADERS): use
+ winsock2 on mswin32/mingw.
+
+ * ext/socket/extconf.rb: ditto.
+
+ * win32/win32.c (StartSockets): ditto.
+
+ * win32/win32.h: ditto.
+
Thu Feb 10 12:09:16 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/extmk.rb (extract_makefile): default to true if not compiled
diff --git a/configure.in b/configure.in
index ee5954c86a..1f1f611ebc 100644
--- a/configure.in
+++ b/configure.in
@@ -286,7 +286,7 @@ cygwin*) rb_cv_have_daylight=no
ac_cv_func__setjmp=no
ac_cv_func_setitimer=no
;;
-mingw*) LIBS="-lshell32 -lwsock32 $LIBS"
+mingw*) LIBS="-lshell32 -lws2_32 $LIBS"
ac_cv_header_a_out_h=no
ac_cv_header_pwd_h=no
ac_cv_header_utime_h=no
@@ -1299,7 +1299,7 @@ case "$target_os" in
AC_LIBOBJ([win32])
COMMON_LIBS=m
COMMON_MACROS="WIN32_LEAN_AND_MEAN="
- COMMON_HEADERS="windows.h winsock.h"
+ COMMON_HEADERS="winsock2.h windows.h"
;;
esac
XCFLAGS="$XCFLAGS"
diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb
index 076f8bf7d7..5e439401ce 100644
--- a/ext/socket/extconf.rb
+++ b/ext/socket/extconf.rb
@@ -1,14 +1,10 @@
require 'mkmf'
case RUBY_PLATFORM
-when /bccwin32/
+when /(ms|bcc)win32|mingw/
test_func = "WSACleanup"
have_library("ws2_32", "WSACleanup")
have_func("closesocket")
-when /mswin32|mingw/
- test_func = "WSACleanup"
- have_library("wsock32", "WSACleanup")
- have_func("closesocket")
when /cygwin/
test_func = "socket"
when /beos/
@@ -108,8 +104,7 @@ end
# doug's fix, NOW add -Dss_family... only if required!
doug = proc {have_struct_member("struct sockaddr_storage", "ss_family", headers)}
-if /mswin32|mingw/ !~ RUBY_PLATFORM and
- (doug[] or
+if (doug[] or
with_cppflags($CPPFLAGS + " -Dss_family=__ss_family -Dss_len=__ss_len", &doug))
$defs[-1] = "-DHAVE_SOCKADDR_STORAGE"
end
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index b45d9bc339..95007145e1 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -126,7 +126,7 @@ RFLAGS = -r
!if !defined(EXTLIBS)
EXTLIBS =
!endif
-LIBS = oldnames.lib user32.lib advapi32.lib shell32.lib wsock32.lib $(EXTLIBS)
+LIBS = oldnames.lib user32.lib advapi32.lib shell32.lib ws2_32.lib $(EXTLIBS)
MISSING = acosh.obj crypt.obj erf.obj win32.obj
ARFLAGS = -machine:$(MACHINE) -out:
diff --git a/win32/win32.c b/win32/win32.c
index 166d58e792..ea379c754a 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -1972,21 +1972,17 @@ StartSockets(void)
{
WORD version;
WSADATA retdata;
- int ret;
int iSockOpt;
//
// initalize the winsock interface and insure that it's
// cleaned up at exit.
//
- version = MAKEWORD(1, 1);
- if (ret = WSAStartup(version, &retdata))
+ version = MAKEWORD(2, 0);
+ if (WSAStartup(version, &retdata))
rb_fatal ("Unable to locate winsock library!\n");
- if (LOBYTE(retdata.wVersion) != 1)
- rb_fatal("could not find version 1 of winsock dll\n");
-
- if (HIBYTE(retdata.wVersion) != 1)
- rb_fatal("could not find version 1 of winsock dll\n");
+ if (LOBYTE(retdata.wVersion) != 2)
+ rb_fatal("could not find version 2 of winsock dll\n");
atexit((void (*)(void)) WSACleanup);
@@ -3658,7 +3654,7 @@ rb_w32_fopen(const char *path, const char *mode)
}
FILE *
-rb_w32_fdopen(int handle, char *type)
+rb_w32_fdopen(int handle, const char *type)
{
FILE *f = (errno = 0, _fdopen(handle, type));
if (f == NULL && errno == 0) {
diff --git a/win32/win32.h b/win32/win32.h
index 58538b26ee..25e949a7a9 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -22,8 +22,8 @@
// There is function-name conflitct, so we rename it
#if !defined(IN) && !defined(FLOAT)
#define OpenFile WINAPI_OpenFile
+#include <winsock2.h>
#include <windows.h>
-#include <winsock.h>
#undef OpenFile
#endif