diff --git a/lib/connect.c b/lib/connect.c index cfdf5680ad6e16c99063c90577d8c1a63c0403af..c8c82a1b74697ad8c6ed3692156d82d790721c85 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -440,6 +440,13 @@ static bool verifyconnect(curl_socket_t sockfd, int *error) SET_SOCKERRNO(0); err = 0; } +#endif +#ifdef __minix + /* Minix 3.1.x doesn't support getsockopt on UDP sockets */ + if (EBADIOCTL == err) { + SET_SOCKERRNO(0); + err = 0; + } #endif if ((0 == err) || (EISCONN == err)) /* we are connected, awesome! */ diff --git a/lib/setup_once.h b/lib/setup_once.h index 08ead5eb274eb38d152172d53dcf63e5743e6d29..1622f0cc85c976370f4dfa4544570593d3514e8d 100644 --- a/lib/setup_once.h +++ b/lib/setup_once.h @@ -98,6 +98,13 @@ struct timeval { #endif +#if defined(__minix) +/* Minix doesn't support recv on TCP sockets */ +#define sread(x,y,z) (ssize_t)read((RECV_TYPE_ARG1)(x), \ + (RECV_TYPE_ARG2)(y), \ + (RECV_TYPE_ARG3)(z)) + +#elif defined(HAVE_RECV) /* * The definitions for the return type and arguments types * of functions recv() and send() belong and come from the @@ -120,7 +127,6 @@ struct timeval { * SEND_TYPE_RETV must also be defined. */ -#ifdef HAVE_RECV #if !defined(RECV_TYPE_ARG1) || \ !defined(RECV_TYPE_ARG2) || \ !defined(RECV_TYPE_ARG3) || \ @@ -143,7 +149,14 @@ struct timeval { #endif #endif /* HAVE_RECV */ -#ifdef HAVE_SEND + +#if defined(__minix) +/* Minix doesn't support send on TCP sockets */ +#define swrite(x,y,z) (ssize_t)write((SEND_TYPE_ARG1)(x), \ + (SEND_TYPE_ARG2)(y), \ + (SEND_TYPE_ARG3)(z)) + +#elif defined(HAVE_SEND) #if !defined(SEND_TYPE_ARG1) || \ !defined(SEND_QUAL_ARG2) || \ !defined(SEND_TYPE_ARG2) || \