[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [libmicrohttpd] 102/154: for tests
From: |
gnunet |
Subject: |
[GNUnet-SVN] [libmicrohttpd] 102/154: for tests |
Date: |
Mon, 19 Aug 2019 10:16:54 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository libmicrohttpd.
commit 2c1b1f146c4e54b3c6686742c5dd0b136e4c4fe8
Author: ng0 <address@hidden>
AuthorDate: Fri Jul 26 20:43:14 2019 +0000
for tests
---
src/microhttpd/mhd_send.c | 53 ++++++++++++++++++++++++++------------------
src/microhttpd/mhd_sockets.c | 4 ++++
2 files changed, 35 insertions(+), 22 deletions(-)
diff --git a/src/microhttpd/mhd_send.c b/src/microhttpd/mhd_send.c
index 5a8d9283..0946d96e 100644
--- a/src/microhttpd/mhd_send.c
+++ b/src/microhttpd/mhd_send.c
@@ -46,11 +46,12 @@ static void
post_cork_setsockopt (struct MHD_Connection *connection,
bool want_cork)
{
+#ifndef MSG_MORE
int ret;
- // const MHD_SCKT_OPT_BOOL_ state_val = val ? 1 : 0;
const MHD_SCKT_OPT_BOOL_ off_val = 0;
const MHD_SCKT_OPT_BOOL_ on_val = 1;
+ /* If sk_cork_on is already what we pass in, return. */
if (connection->sk_cork_on == want_cork)
{
/* nothing to do, success! */
@@ -78,6 +79,7 @@ post_cork_setsockopt (struct MHD_Connection *connection,
connection->sk_cork_on = want_cork;
}
return;
+#endif /* HAVE_MORE */
}
/**
@@ -90,11 +92,12 @@ static void
pre_cork_setsockopt (struct MHD_Connection *connection,
bool want_cork)
{
+#ifndef MSG_MORE
int ret;
const MHD_SCKT_OPT_BOOL_ off_val = 0;
const MHD_SCKT_OPT_BOOL_ on_val = 1;
- /* if sk_tcp_nodelay_on is already what we pass in, return. */
+ /* If sk_cork_on is already what we pass in, return. */
if (connection->sk_cork_on == want_cork)
{
/* nothing to do, success! */
@@ -128,6 +131,7 @@ pre_cork_setsockopt (struct MHD_Connection *connection,
connection->sk_cork_on = want_cork;
}
return;
+#endif /* MSG_MORE */
}
/**
@@ -162,6 +166,8 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
const MHD_SCKT_OPT_BOOL_ off_val = 0;
const MHD_SCKT_OPT_BOOL_ on_val = 1;
+ connection->sk_cork_on = true;
+
/* error handling from send_param_adapter() */
if ((MHD_INVALID_SOCKET == s) || (MHD_CONNECTION_CLOSED ==
connection->state))
{
@@ -190,13 +196,8 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
}
/* ! could be avoided by redefining the variable. */
- bool have_cork = ! connection->sk_tcp_nodelay_on;
-
-#ifdef MSG_MORE
- have_more = true;
-#else
- have_more = false;
-#endif
+ // bool have_cork = ! connection->sk_tcp_nodelay_on;
+ bool have_cork = ! connection->sk_cork_on;
#ifdef HTTPS_SUPPORT
using_tls = (0 != (connection->daemon->options & MHD_USE_TLS));
@@ -209,7 +210,6 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
{
gnutls_record_cork (connection->tls_session);
connection->sk_cork_on = false;
- // connection->sk_tcp_nodelay_on = false;
}
if (buffer_size > SSIZE_MAX)
buffer_size = SSIZE_MAX;
@@ -241,15 +241,13 @@ MHD_send_on_connection_ (struct MHD_Connection
*connection,
{
(void) gnutls_record_uncork (connection->tls_session, 0);
connection->sk_cork_on = true;
- // connection->sk_tcp_nodelay_on = true;
}
}
else
#endif
{
/* plaintext transmission */
- if (! have_more)
- pre_cork_setsockopt (connection, want_cork);
+ pre_cork_setsockopt (connection, want_cork);
#if MSG_MORE
ret = send (s,
buffer,
@@ -282,8 +280,8 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
else if (buffer_size > (size_t) ret)
connection->epoll_state &= ~MHD_EPOLL_STATE_WRITE_READY;
#endif /* EPOLL_SUPPORT */
- if (! have_more)
- post_cork_setsockopt (connection, want_cork);
+
+ post_cork_setsockopt (connection, want_cork);
}
return ret;
@@ -317,13 +315,15 @@ MHD_send_on_connection2_ (struct MHD_Connection
*connection,
#if defined(HAVE_SENDMSG) || defined(HAVE_WRITEV)
MHD_socket s = connection->socket_fd;
bool have_cork;
- bool have_more;
int iovcnt;
int eno;
const MHD_SCKT_OPT_BOOL_ off_val = 0;
struct iovec vector[2];
- have_cork = ! connection->sk_tcp_nodelay_on;
+ connection->sk_cork_on = true;
+
+ have_cork = ! connection->sk_cork_on;
+ /*
#if TCP_NODELAY
use_corknopush = false;
#elif TCP_CORK
@@ -331,13 +331,17 @@ MHD_send_on_connection2_ (struct MHD_Connection
*connection,
#elif TCP_NOPUSH
use_corknopush = true;
#endif
+ */
+ pre_cork_setsockopt (connection, want_cork);
+ /*
#if TCP_NODELAY
- if ((! use_corknopush) && (! have_cork && want_cork))
- {
- MHD_setsockopt_ (connection, TCP_NODELAY, false, false);
- }
+ if ((! use_corknopush) && (! have_cork && want_cork))
+ {
+ MHD_setsockopt_ (connection, TCP_NODELAY, false, false);
+ }
#endif
+ */
vector[0].iov_base = header;
vector[0].iov_len = strlen (header);
@@ -354,6 +358,9 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection,
ret = writev (s, vector, iovcnt);
#endif
+ post_cork_setsockopt (connection, want_cork);
+
+ /*
#if TCP_CORK
if (use_corknopush)
{
@@ -376,13 +383,15 @@ MHD_send_on_connection2_ (struct MHD_Connection
*connection,
eno = errno;
if (ret == header_len + buffer_len)
{
- /* Response complete, set NOPUSH to off */
+ // Response complete, set NOPUSH to off
MHD_setsockopt_ (connection, TCP_NOPUSH, false, false);
}
errno = eno;
}
return ret;
#endif
+ */
+ return ret;
#else
return MHD_send_on_connection_ (connection,
diff --git a/src/microhttpd/mhd_sockets.c b/src/microhttpd/mhd_sockets.c
index 04405945..bc924651 100644
--- a/src/microhttpd/mhd_sockets.c
+++ b/src/microhttpd/mhd_sockets.c
@@ -474,20 +474,24 @@ MHD_socket_buffering_reset_ (MHD_socket sock)
#if defined(TCP_NODELAY) || defined(MHD_TCP_CORK_NOPUSH)
const MHD_SCKT_OPT_BOOL_ off_val = 0;
#if defined(MHD_TCP_CORK_NOPUSH)
+#if OLD_SOCKOPT
/* Disable extra buffering */
res = (0 == setsockopt (sock,
IPPROTO_TCP,
MHD_TCP_CORK_NOPUSH,
(const void *) &off_val,
sizeof (off_val))) && res;
+#endif
#endif /* MHD_TCP_CORK_NOPUSH */
#if defined(TCP_NODELAY)
+#if OLD_SOCKOPT
/* Enable Nagle's algorithm for normal buffering */
res = (0 == setsockopt (sock,
IPPROTO_TCP,
TCP_NODELAY,
(const void *) &off_val,
sizeof (off_val))) && res;
+#endif
#endif /* TCP_NODELAY */
#else /* !TCP_NODELAY && !MHD_TCP_CORK_NOPUSH */
(void) sock;
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [GNUnet-SVN] [libmicrohttpd] 71/154: lisp sneeks in., (continued)
- [GNUnet-SVN] [libmicrohttpd] 71/154: lisp sneeks in., gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 75/154: switch functions., gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 95/154: simplify, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 68/154: Add MHD_send_socket_state_cork_nodelay_ and use it., gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 65/154: remove old function name., gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 94/154: simplify, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 89/154: attempt fix, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 97/154: simplify, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 108/154: have_cork->want_cork, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 91/154: show not tell, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 102/154: for tests,
gnunet <=
- [GNUnet-SVN] [libmicrohttpd] 86/154: initial move code sendfile., gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 100/154: incomplete, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 111/154: synt, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 105/154: remove commented code, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 99/154: remove dead code, comment new code., gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 109/154: declare ret, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 120/154: configure, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 119/154: attempt configure fix, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 116/154: ack other authors, gnunet, 2019/08/19
- [GNUnet-SVN] [libmicrohttpd] 98/154: simplify, gnunet, 2019/08/19