summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--ext/socket/socket.c20
-rw-r--r--win32/win32.c22
-rw-r--r--win32/win32.h2
4 files changed, 9 insertions, 44 deletions
diff --git a/ChangeLog b/ChangeLog
index e221698ab9b..370110c26c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Tue Oct 1 23:48:32 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * ext/socket/socket.c (init_sock): no need for special finalizer,
+ socket descriptor is no longer duplicated in 1.7.
+ [ruby-talk:50732]
+
+ * win32/win32.c, win32/win32.h (rb_w32_fddup, rb_w32_fdclose):
+ delete.
+
Mon Sep 30 20:29:10 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* io.c (rb_io_inspect): not need to raise IOError for closed
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index a89e8f9104e..1c671fdb63b 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -163,23 +163,6 @@ ruby_getaddrinfo(nodename, servname, hints, res)
#define close closesocket
#endif
-#ifdef NT
-static void sock_finalize _((OpenFile *fptr));
-
-static void
-sock_finalize(fptr)
- OpenFile *fptr;
-{
- SOCKET s;
-
- if (!fptr->f) return;
- s = get_osfhandle(fileno(fptr->f));
- rb_w32_fdclose(fptr->f);
- if (fptr->f2) rb_w32_fdclose(fptr->f2);
- closesocket(s);
-}
-#endif
-
static VALUE
init_sock(sock, fd)
VALUE sock;
@@ -189,9 +172,6 @@ init_sock(sock, fd)
MakeOpenFile(sock, fp);
fp->f = rb_fdopen(fd, "r");
-#ifdef NT
- fp->finalize = sock_finalize;
-#endif
fp->f2 = rb_fdopen(fd, "w");
fp->mode = FMODE_READWRITE;
rb_io_synchronized(fp);
diff --git a/win32/win32.c b/win32/win32.c
index 2a39de2ae8e..89b41af33d2 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -1472,28 +1472,6 @@ is_socket(SOCKET fd)
return result;
}
-int
-rb_w32_fddup (int fd)
-{
- SOCKET s = TO_SOCKET(fd);
-
- if (s == -1)
- return -1;
-
- RUBY_CRITICAL(fd = rb_w32_open_osfhandle(s, O_RDWR|O_BINARY));
- return fd;
-}
-
-
-void
-rb_w32_fdclose(FILE *fp)
-{
- RUBY_CRITICAL({
- STHREAD_ONLY(_free_osfhnd(fileno(fp)));
- fclose(fp);
- });
-}
-
//
// Since the errors returned by the socket error function
// WSAGetLastError() are not known by the library routine strerror
diff --git a/win32/win32.h b/win32/win32.h
index 23bac71fbfb..31a3f0734f0 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -161,8 +161,6 @@ extern char * NtGetLib(void);
extern char * NtGetBin(void);
extern pid_t pipe_exec(char *, int, FILE **, FILE **);
extern int flock(int fd, int oper);
-extern int rb_w32_fddup(int);
-extern void rb_w32_fdclose(FILE *);
extern int rb_w32_accept(int, struct sockaddr *, int *);
extern int rb_w32_bind(int, struct sockaddr *, int);
extern int rb_w32_connect(int, struct sockaddr *, int);