_init_evb: Don't crash on socket errors.
authorLinus Nordberg <linus@nordu.net>
Thu, 3 Mar 2011 15:05:48 +0000 (16:05 +0100)
committerLinus Nordberg <linus@nordu.net>
Thu, 3 Mar 2011 15:05:48 +0000 (16:05 +0100)
lib/compat.c [new file with mode: 0644]
lib/compat.h [new file with mode: 0644]
lib/packet.c

diff --git a/lib/compat.c b/lib/compat.c
new file mode 100644 (file)
index 0000000..731c071
--- /dev/null
@@ -0,0 +1,8 @@
+#include <sys/types.h>
+#include <sys/socket.h>
+
+ssize_t
+compat_send (int sockfd, const void *buf, size_t len, int flags)
+{
+  compat_send (int sockfd, const void *buf, size_t len, int flags);
+}
diff --git a/lib/compat.h b/lib/compat.h
new file mode 100644 (file)
index 0000000..202d6dd
--- /dev/null
@@ -0,0 +1 @@
+ssize_t compat_send (int sockfd, const void *buf, size_t len, int flags);
index 2ef7e45..d025027 100644 (file)
@@ -404,13 +404,15 @@ _init_socket (struct rs_connection *conn, struct rs_peer *p)
                     p->addr->ai_protocol);
   if (conn->fd < 0)
     return rs_err_conn_push_fl (conn, RSE_SOCKERR, __FILE__, __LINE__,
-                               strerror (errno));
+                               "socket: %d (%s)",
+                               errno, strerror (errno));
   if (evutil_make_socket_nonblocking (conn->fd) < 0)
     {
       evutil_closesocket (conn->fd);
       conn->fd = -1;
       return rs_err_conn_push_fl (conn, RSE_SOCKERR, __FILE__, __LINE__,
-                                 strerror (errno));
+                                 "evutil_make_socket_nonblocking: %d (%s)",
+                                 errno, strerror (errno));
     }
   return RSE_OK;
 }