3077 Jonas Oreland 2008-11-17
ndb - win32 (my_socket_win32.h) - fix error handling
causing spurious "node failures" in mtr
modified:
include/my_socket_win32.h
3076 Jonas Oreland 2008-11-17
ndb - win32 - fix partial read also with pread
modified:
storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp
3075 Jonas Oreland 2008-11-17
ndb - enable pread/pwrite for windows
modified:
storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp
=== modified file 'include/my_socket_win32.h'
--- a/include/my_socket_win32.h 2008-08-21 12:02:12 +0000
+++ b/include/my_socket_win32.h 2008-11-17 21:00:50 +0000
@@ -53,13 +53,19 @@ static inline int my_socket_nfds(my_sock
static inline size_t my_recv(my_socket s, char* buf, size_t len, int flags)
{
- return recv(s.s, buf, len, flags);
+ int ret= recv(s.s, buf, len, flags);
+ if (ret == SOCKET_ERROR)
+ return -1;
+ return ret;
}
static inline
size_t my_send(my_socket s, const char* buf, size_t len, int flags)
{
- return send(s.s, buf, len, flags);
+ int ret= send(s.s, buf, len, flags);
+ if (ret == SOCKET_ERROR)
+ return -1;
+ return ret;
}
static inline int my_socket_reuseaddr(my_socket s, int enable)
@@ -180,7 +186,8 @@ static inline ssize_t my_socket_readv(my
int iovcnt)
{
DWORD rv=0;
- WSARecv(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0);
+ if (WSARecv(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0) == SOCKET_ERROR)
+ return -1;
return rv;
}
@@ -188,7 +195,8 @@ static inline ssize_t my_socket_writev(m
int iovcnt)
{
DWORD rv=0;
- WSASend(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0);
+ if (WSASend(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0) == SOCKET_ERROR)
+ return -1;
return rv;
}
=== modified file 'storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp'
--- a/storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp 2008-11-17 14:42:22 +0000
+++ b/storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp 2008-11-17 20:58:11 +0000
@@ -225,7 +225,12 @@ Win32AsyncFile::readBuffer(Request* req,
&dwBytesRead,
&ov);
if(!bRead){
- return GetLastError();
+ int err = GetLastError();
+ if (err == ERROR_HANDLE_EOF && req->action == Request::readPartial)
+ {
+ return 0;
+ }
+ return err;
}
bytes_read = dwBytesRead;
| Thread |
|---|
| • bzr push into mysql-5.1 branch (jonas:3075 to 3077) | Jonas Oreland | 17 Nov |