Commit e9b33ed1 authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

On windows, ENOBUFS starts with WSA. #6296. Fix on 0.2.18-rc

parent d13389b3
Loading
Loading
Loading
Loading

changes/bug6296

0 → 100644
+4 −0
Original line number Diff line number Diff line
   o Minor bugfixes:

     - Instead of ENOBUFS on Windows, say WSAENOBUFS. Fixes
       compilation on Windows.  Fixes bug 6296; bugfix on 0.2.3.18-rc.
+3 −0
Original line number Diff line number Diff line
@@ -500,6 +500,8 @@ int network_init(void);
 * the actual errno after a socket operation fails.
 */
#if defined(_WIN32)
/** Expands to WSA<b>e</b> on Windows, and to <b>e</b> elsewhere. */
#define SOCK_ERRNO(e) WSA##e
/** Return true if e is EAGAIN or the local equivalent. */
#define ERRNO_IS_EAGAIN(e)           ((e) == EAGAIN || (e) == WSAEWOULDBLOCK)
/** Return true if e is EINPROGRESS or the local equivalent. */
@@ -520,6 +522,7 @@ int network_init(void);
int tor_socket_errno(tor_socket_t sock);
const char *tor_socket_strerror(int e);
#else
#define SOCK_ERRNO(e) e
#define ERRNO_IS_EAGAIN(e)           ((e) == EAGAIN)
#define ERRNO_IS_EINPROGRESS(e)      ((e) == EINPROGRESS)
#define ERRNO_IS_CONN_EINPROGRESS(e) ((e) == EINPROGRESS)
+2 −2
Original line number Diff line number Diff line
@@ -1336,7 +1336,7 @@ connection_connect(connection_t *conn, const char *address,

  if (get_n_open_sockets() >= get_options()->_ConnLimit-1) {
    warn_too_many_conns();
    *socket_error = ENOBUFS;
    *socket_error = SOCK_ERRNO(ENOBUFS);
    return -1;
  }

@@ -1431,7 +1431,7 @@ connection_connect(connection_t *conn, const char *address,
  conn->s = s;
  if (connection_add_connecting(conn) < 0) {
    /* no space, forget it */
    *socket_error = ENOBUFS;
    *socket_error = SOCK_ERRNO(ENOBUFS);
    return -1;
  }
  return inprogress ? 0 : 1;