]> granicus.if.org Git - curl/commitdiff
Minix doesn't support getsockopt on UDP sockets or send/recv on TCP
authorDan Fandrich <dan@coneharvesters.com>
Wed, 5 Sep 2007 22:01:57 +0000 (22:01 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Wed, 5 Sep 2007 22:01:57 +0000 (22:01 +0000)
sockets.

lib/connect.c
lib/setup_once.h

index cfdf5680ad6e16c99063c90577d8c1a63c0403af..c8c82a1b74697ad8c6ed3692156d82d790721c85 100644 (file)
@@ -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! */
index 08ead5eb274eb38d152172d53dcf63e5743e6d29..1622f0cc85c976370f4dfa4544570593d3514e8d 100644 (file)
@@ -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) || \