Commit 21b8177e authored by unknown's avatar unknown
Browse files

Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-5.0

into  sanja.is.com.ua:/home/bell/mysql/bk/work-owner2-5.0

parents e33c22a1 06fc0e8b
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -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 */
}
+1 −1
Original line number Diff line number Diff line
@@ -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))