Blame gnulib/w32sock.h

Packit Service 392537
/* w32sock.h --- internal auxiliary functions for Windows socket functions
Packit Service 392537
Packit Service 392537
   Copyright (C) 2008-2016 Free Software Foundation, Inc.
Packit Service 392537
Packit Service 392537
   This program is free software: you can redistribute it and/or modify
Packit Service 392537
   it under the terms of the GNU General Public License as published by
Packit Service 392537
   the Free Software Foundation; either version 3 of the License, or
Packit Service 392537
   (at your option) any later version.
Packit Service 392537
Packit Service 392537
   This program is distributed in the hope that it will be useful,
Packit Service 392537
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 392537
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 392537
   GNU General Public License for more details.
Packit Service 392537
Packit Service 392537
   You should have received a copy of the GNU General Public License
Packit Service 392537
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit Service 392537
Packit Service 392537
/* Written by Paolo Bonzini */
Packit Service 392537
Packit Service 392537
#include <errno.h>
Packit Service 392537
Packit Service 392537
/* Get O_RDWR and O_BINARY.  */
Packit Service 392537
#include <fcntl.h>
Packit Service 392537
Packit Service 392537
/* Get _open_osfhandle().  */
Packit Service 392537
#include <io.h>
Packit Service 392537
Packit Service 392537
/* Get _get_osfhandle().  */
Packit Service 392537
#include "msvc-nothrow.h"
Packit Service 392537
Packit Service 392537
#define FD_TO_SOCKET(fd)   ((SOCKET) _get_osfhandle ((fd)))
Packit Service 392537
#define SOCKET_TO_FD(fh)   (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY))
Packit Service 392537
Packit Service 392537
static inline void
Packit Service 392537
set_winsock_errno (void)
Packit Service 392537
{
Packit Service 392537
  int err = WSAGetLastError ();
Packit Service 392537
Packit Service 392537
  /* Map some WSAE* errors to the runtime library's error codes.  */
Packit Service 392537
  switch (err)
Packit Service 392537
    {
Packit Service 392537
    case WSA_INVALID_HANDLE:
Packit Service 392537
      errno = EBADF;
Packit Service 392537
      break;
Packit Service 392537
    case WSA_NOT_ENOUGH_MEMORY:
Packit Service 392537
      errno = ENOMEM;
Packit Service 392537
      break;
Packit Service 392537
    case WSA_INVALID_PARAMETER:
Packit Service 392537
      errno = EINVAL;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENAMETOOLONG:
Packit Service 392537
      errno = ENAMETOOLONG;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENOTEMPTY:
Packit Service 392537
      errno = ENOTEMPTY;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEWOULDBLOCK:
Packit Service 392537
      errno = EWOULDBLOCK;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEINPROGRESS:
Packit Service 392537
      errno = EINPROGRESS;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEALREADY:
Packit Service 392537
      errno = EALREADY;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENOTSOCK:
Packit Service 392537
      errno = ENOTSOCK;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEDESTADDRREQ:
Packit Service 392537
      errno = EDESTADDRREQ;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEMSGSIZE:
Packit Service 392537
      errno = EMSGSIZE;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEPROTOTYPE:
Packit Service 392537
      errno = EPROTOTYPE;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENOPROTOOPT:
Packit Service 392537
      errno = ENOPROTOOPT;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEPROTONOSUPPORT:
Packit Service 392537
      errno = EPROTONOSUPPORT;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEOPNOTSUPP:
Packit Service 392537
      errno = EOPNOTSUPP;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEAFNOSUPPORT:
Packit Service 392537
      errno = EAFNOSUPPORT;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEADDRINUSE:
Packit Service 392537
      errno = EADDRINUSE;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEADDRNOTAVAIL:
Packit Service 392537
      errno = EADDRNOTAVAIL;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENETDOWN:
Packit Service 392537
      errno = ENETDOWN;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENETUNREACH:
Packit Service 392537
      errno = ENETUNREACH;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENETRESET:
Packit Service 392537
      errno = ENETRESET;
Packit Service 392537
      break;
Packit Service 392537
    case WSAECONNABORTED:
Packit Service 392537
      errno = ECONNABORTED;
Packit Service 392537
      break;
Packit Service 392537
    case WSAECONNRESET:
Packit Service 392537
      errno = ECONNRESET;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENOBUFS:
Packit Service 392537
      errno = ENOBUFS;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEISCONN:
Packit Service 392537
      errno = EISCONN;
Packit Service 392537
      break;
Packit Service 392537
    case WSAENOTCONN:
Packit Service 392537
      errno = ENOTCONN;
Packit Service 392537
      break;
Packit Service 392537
    case WSAETIMEDOUT:
Packit Service 392537
      errno = ETIMEDOUT;
Packit Service 392537
      break;
Packit Service 392537
    case WSAECONNREFUSED:
Packit Service 392537
      errno = ECONNREFUSED;
Packit Service 392537
      break;
Packit Service 392537
    case WSAELOOP:
Packit Service 392537
      errno = ELOOP;
Packit Service 392537
      break;
Packit Service 392537
    case WSAEHOSTUNREACH:
Packit Service 392537
      errno = EHOSTUNREACH;
Packit Service 392537
      break;
Packit Service 392537
    default:
Packit Service 392537
      errno = (err > 10000 && err < 10025) ? err - 10000 : err;
Packit Service 392537
      break;
Packit Service 392537
    }
Packit Service 392537
}