Skip to content

Commit

Permalink
Remove Windows-specific pull/push/errno functions for GnuTLS
Browse files Browse the repository at this point in the history
GnuTLS does all this for itself on Windows; we don't need to provide them.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
David Woodhouse authored and David Woodhouse committed Feb 11, 2014
1 parent 5dfbffb commit 65f8c5d
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 89 deletions.
71 changes: 0 additions & 71 deletions compat.c
Expand Up @@ -209,77 +209,6 @@ void openconnect__win32_sock_init()
}
}

#ifdef OPENCONNECT_GNUTLS
int openconnect__win32_neterrno()
{
switch (WSAGetLastError()) {
case WSAEINTR: return EINTR;
case WSAEWOULDBLOCK: return EAGAIN;
case WSAEINPROGRESS: return EINPROGRESS;
case WSAEALREADY: return EALREADY;
case WSAENOTSOCK: return ENOTSOCK;
case WSAEDESTADDRREQ: return EDESTADDRREQ;
case WSAEMSGSIZE: return EMSGSIZE;
case WSAEPROTOTYPE: return EPROTOTYPE;
case WSAENOPROTOOPT: return ENOPROTOOPT;
case WSAEPROTONOSUPPORT:return EPROTONOSUPPORT;
case WSAEOPNOTSUPP: return EOPNOTSUPP;
case WSAEPFNOSUPPORT: return EAFNOSUPPORT;
case WSAEAFNOSUPPORT: return EAFNOSUPPORT;
case WSAEADDRINUSE: return EADDRINUSE;
case WSAEADDRNOTAVAIL: return EADDRNOTAVAIL;
case WSAENETDOWN: return ENETDOWN;
case WSAENETUNREACH: return ENETUNREACH;
case WSAENETRESET: return ENETRESET;
case WSAECONNABORTED: return ECONNABORTED;
case WSAECONNRESET: return ECONNRESET;
case WSAENOBUFS: return ENOBUFS;
case WSAEISCONN: return EISCONN;
case WSAENOTCONN: return ENOTCONN;
case WSAETIMEDOUT: return ETIMEDOUT;
case WSAECONNREFUSED: return ECONNREFUSED;
case WSAELOOP: return ELOOP;
case WSAENAMETOOLONG: return ENAMETOOLONG;
case WSAEHOSTUNREACH: return EHOSTUNREACH;
case WSAENOTEMPTY: return ENOTEMPTY;
case WSAEINVAL: return EINVAL;
case WSAEFAULT: return EFAULT;
case 0: return 0;
default: return EIO;
}
}

int openconnect__win32_sock_poll(gnutls_transport_ptr_t ptr, unsigned int ms)
{
fd_set rfds;
struct timeval tv;
int fd = (int)(long)ptr;

FD_ZERO(&rfds);
FD_SET(fd, &rfds);

tv.tv_sec = 0;
tv.tv_usec = ms * 1000;

while(tv.tv_usec >= 1000000) {
tv.tv_usec -= 1000000;
tv.tv_sec++;
}

return select(fd+1, &rfds, NULL, NULL, &tv);
}

ssize_t openconnect__win32_sock_read(gnutls_transport_ptr_t ptr, void *data, size_t size)
{
return recv((long)ptr, data, size, 0);
}

ssize_t openconnect__win32_sock_write(gnutls_transport_ptr_t ptr, const void *data, size_t size)
{
return send((long)ptr, data, size, 0);
}
#endif /* OPENCONNECT_GNUTLS */


/* https://github.com/ncm/selectable-socketpair
Expand Down
6 changes: 0 additions & 6 deletions dtls.c
Expand Up @@ -371,12 +371,6 @@ static int start_dtls_handshake(struct openconnect_info *vpninfo, int dtls_fd)

gnutls_transport_set_ptr(dtls_ssl,
(gnutls_transport_ptr_t)(long) dtls_fd);
#ifdef _WIN32
gnutls_transport_set_pull_timeout_function(dtls_ssl, openconnect__win32_sock_poll);
gnutls_transport_set_pull_function(dtls_ssl, openconnect__win32_sock_read);
gnutls_transport_set_push_function(dtls_ssl, openconnect__win32_sock_write);
gnutls_transport_set_errno_function(dtls_ssl, openconnect__win32_neterrno);
#endif

gnutls_record_disable_padding(dtls_ssl);
master_secret.data = vpninfo->dtls_secret;
Expand Down
6 changes: 0 additions & 6 deletions gnutls.c
Expand Up @@ -1937,12 +1937,6 @@ int openconnect_open_https(struct openconnect_info *vpninfo)
gnutls_record_disable_padding(vpninfo->https_sess);
gnutls_credentials_set(vpninfo->https_sess, GNUTLS_CRD_CERTIFICATE, vpninfo->https_cred);
gnutls_transport_set_ptr(vpninfo->https_sess, /* really? */(gnutls_transport_ptr_t)(long) ssl_sock);
#ifdef _WIN32
gnutls_transport_set_pull_timeout_function(vpninfo->https_sess, openconnect__win32_sock_poll);
gnutls_transport_set_pull_function(vpninfo->https_sess, openconnect__win32_sock_read);
gnutls_transport_set_push_function(vpninfo->https_sess, openconnect__win32_sock_write);
gnutls_transport_set_errno_function(vpninfo->https_sess, openconnect__win32_neterrno);
#endif

vpn_progress(vpninfo, PRG_INFO, _("SSL negotiation with %s\n"),
vpninfo->hostname);
Expand Down
6 changes: 0 additions & 6 deletions openconnect-internal.h
Expand Up @@ -387,12 +387,6 @@ static inline int set_fd_cloexec(int fd)
#ifdef _WIN32
#define pipe(fds) _pipe(fds, 4096, O_BINARY)
void openconnect__win32_sock_init();
#ifdef OPENCONNECT_GNUTLS
int openconnect__win32_neterrno();
int openconnect__win32_sock_poll(gnutls_transport_ptr_t ptr, unsigned int ms);
ssize_t openconnect__win32_sock_read(gnutls_transport_ptr_t ptr, void *data, size_t size);
ssize_t openconnect__win32_sock_write(gnutls_transport_ptr_t ptr, const void *data, size_t size);
#endif
int dumb_socketpair(int socks[2], int make_overlapped);
#else
#define closesocket close
Expand Down

0 comments on commit 65f8c5d

Please sign in to comment.