diff options
Diffstat (limited to 'lib/system/fastopen.c')
-rw-r--r-- | lib/system/fastopen.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/lib/system/fastopen.c b/lib/system/fastopen.c index bf1ee0929f..55ab292127 100644 --- a/lib/system/fastopen.c +++ b/lib/system/fastopen.c @@ -55,7 +55,7 @@ #ifdef _WIN32 static ssize_t -tfo_send(gnutls_transport_ptr_t ptr, const void *buf, size_t len) +tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt) { tfo_st *p = ptr; int fd = p->fd; @@ -63,7 +63,8 @@ tfo_send(gnutls_transport_ptr_t ptr, const void *buf, size_t len) if (unlikely(p->connect_addrlen != 0)) { int ret; - ret = connect(fd, (struct sockaddr*)&p->connect_addr, p->connect_addrlen); + ret = connect(fd, (struct sockaddr*)&p->connect_addr, + p->connect_addrlen); if (ret == -1 && (errno == EINPROGRESS)) { gnutls_assert(); errno = EAGAIN; @@ -77,7 +78,7 @@ tfo_send(gnutls_transport_ptr_t ptr, const void *buf, size_t len) return ret; } - return send(fd, buf, len, 0); + return system_writev(GNUTLS_INT_TO_POINTER(fd), iovec, iovec_cnt); } #else /* sendmsg */ static ssize_t @@ -239,11 +240,6 @@ gnutls_transport_set_fastopen(gnutls_session_t session, session->internals.tfo.flags |= MSG_NOSIGNAL; #endif -#ifdef _WIN32 - gnutls_transport_set_vec_push_function(session, NULL); - gnutls_transport_set_push_function(session, tfo_send); -#else gnutls_transport_set_vec_push_function(session, tfo_writev); -#endif } |