* io.c (rb_fdopen): set errno if it's zero on win32 platforms.

* ext/openssl/ossl_ssl.c (TO_SOCKET): define special version when
  _WIN32 is defined. this is ruby's problem, not OpenSSL.

* win32/win32.c: remove some old comments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2003-07-26 12:27:04 +00:00
Родитель c83e7dfab2
Коммит b431230396
4 изменённых файлов: 13 добавлений и 17 удалений

Просмотреть файл

@ -1,3 +1,12 @@
Sat Jul 26 21:25:21 2003 NAKAMURA Usaku <usa@ruby-lang.org>
* io.c (rb_fdopen): set errno if it's zero on win32 platforms.
* ext/openssl/ossl_ssl.c (TO_SOCKET): define special version when
_WIN32 is defined. this is ruby's problem, not OpenSSL.
* win32/win32.c: remove some old comments.
Sat Jul 26 14:14:12 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* ext/stringio/stringio.c: includes Enumerable as well as IO.

Просмотреть файл

@ -19,7 +19,7 @@
#define numberof(ary) (sizeof(ary)/sizeof(ary[0]))
#ifdef OPENSSL_SYS_WINDOWS
#ifdef _WIN32
# define TO_SOCKET(s) _get_osfhandle(s)
#else
# define TO_SOCKET(s) s

3
io.c
Просмотреть файл

@ -1859,6 +1859,9 @@ rb_fdopen(fd, mode)
file = fdopen(fd, mode);
}
if (!file) {
#ifdef _WIN32
if (errno == 0) errno = EINVAL;
#endif
rb_sys_fail(0);
}
}

Просмотреть файл

@ -351,9 +351,6 @@ flock(int fd, int oper)
(DWORD)-1);
}
//#undef const
//FILE *fdopen(int, const char *);
//
// Initialization stuff
//
@ -1486,19 +1483,6 @@ valid_filename(char *s)
return 0;
}
//
// This is a clone of fdopen so that we can handle the
// brain damaged version of sockets that NT gets to use.
//
// The problem is that sockets are not real file handles and
// cannot be fdopen'ed. This causes problems in the do_socket
// routine in doio.c, since it tries to create two file pointers
// for the socket just created. We'll fake out an fdopen and see
// if we can prevent perl from trying to do stdio on sockets.
//
//EXTERN_C int __cdecl _alloc_osfhnd(void);
//EXTERN_C int __cdecl _set_osfhnd(int fh, long value);
EXTERN_C void __cdecl _lock_fhandle(int);
EXTERN_C void __cdecl _unlock_fhandle(int);
EXTERN_C void __cdecl _unlock(int);