summaryrefslogtreecommitdiff
path: root/lib/system/fastopen.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/system/fastopen.c')
-rw-r--r--lib/system/fastopen.c12
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
}