diff options
author | unknown <tulin@dl145c.mysql.com> | 2005-09-14 17:58:20 +0200 |
---|---|---|
committer | unknown <tulin@dl145c.mysql.com> | 2005-09-14 17:58:20 +0200 |
commit | ee2125c919b73b44c028716af14d2c6d311605df (patch) | |
tree | d46146fa982f3c243e7cf4778b516f9c21cce3d6 /storage | |
parent | 24f047831f9bdcbef5762a3be1f6d506422e0642 (diff) | |
parent | 528c3a71f847afe6be5bdf460be57512eada71cb (diff) | |
download | mariadb-git-ee2125c919b73b44c028716af14d2c6d311605df.tar.gz |
merge
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_acl.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/table.h:
Auto merged
storage/ndb/src/common/portlib/NdbTCP.cpp:
Auto merged
storage/ndb/src/common/portlib/win32/NdbTCP.c:
Auto merged
Diffstat (limited to 'storage')
-rw-r--r-- | storage/ndb/src/common/portlib/NdbTCP.cpp | 32 | ||||
-rw-r--r-- | storage/ndb/src/common/portlib/win32/NdbTCP.c | 2 |
2 files changed, 33 insertions, 1 deletions
diff --git a/storage/ndb/src/common/portlib/NdbTCP.cpp b/storage/ndb/src/common/portlib/NdbTCP.cpp index 768292ac7c0..41471548b7e 100644 --- a/storage/ndb/src/common/portlib/NdbTCP.cpp +++ b/storage/ndb/src/common/portlib/NdbTCP.cpp @@ -86,6 +86,7 @@ Ndb_getInAddr(struct in_addr * dst, const char *address) { int Ndb_check_socket_hup(NDB_SOCKET_TYPE sock) { +#ifdef HAVE_POLL struct pollfd pfd[1]; int r; @@ -97,4 +98,35 @@ int Ndb_check_socket_hup(NDB_SOCKET_TYPE sock) return 1; return 0; +#else /* HAVE_POLL */ + fd_set readfds, writefds, errorfds; + struct timeval tv= {0,0}; + int s_err; + int s_err_size= sizeof(s_err); + + FD_ZERO(&readfds); + FD_ZERO(&writefds); + FD_ZERO(&errorfds); + + FD_SET(sock, &readfds); + FD_SET(sock, &writefds); + FD_SET(sock, &errorfds); + + if(select(1, &readfds, &writefds, &errorfds, &tv)<0) + return 1; + + if(FD_ISSET(sock,&errorfds)) + return 1; + + s_err=0; + if (getsockopt(sock, SOL_SOCKET, SO_ERROR, (char*) &s_err, &s_err_size) != 0) + return(1); + + if (s_err) + { /* getsockopt could succeed */ + return(1); /* but return an error... */ + } + + return 0; +#endif /* HAVE_POLL */ } diff --git a/storage/ndb/src/common/portlib/win32/NdbTCP.c b/storage/ndb/src/common/portlib/win32/NdbTCP.c index a14cd4409eb..5d6c0ae5c7d 100644 --- a/storage/ndb/src/common/portlib/win32/NdbTCP.c +++ b/storage/ndb/src/common/portlib/win32/NdbTCP.c @@ -52,7 +52,7 @@ int Ndb_check_socket_hup(NDB_SOCKET_TYPE sock) FD_SET(sock, &writefds); FD_SET(sock, &errorfds); - if(select(1, &readfds, &writefds, &errorfds, &t)==SOCKET_ERROR) + if(select(1, &readfds, &writefds, &errorfds, &tv)==SOCKET_ERROR) return 1; if(FD_ISSET(sock,&errorfds)) |