mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-27 04:09:31 +03:00
mhd_send.c: fix compiler error about MSG_MORE when MSG_MORE is undefined.
This commit is contained in:
+55
-14
@@ -150,8 +150,17 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
|
||||
if (have_cork && ! want_cork)
|
||||
{
|
||||
optval = 1;
|
||||
setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_CORK, &optval, sizeof (&optval)) ||
|
||||
(setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof (&optval)) && (connection->sk_tcp_nodelay = true));
|
||||
setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_CORK,
|
||||
&optval,
|
||||
sizeof (&optval)) ||
|
||||
(setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_NODELAY,
|
||||
&optval,
|
||||
sizeof (&optval)) &&
|
||||
(connection->sk_tcp_nodelay = true));
|
||||
//setsockopt (cork-on); // or nodelay on // + update connection->sk_tcp_nodelay_on
|
||||
// When we have CORK, we can have NODELAY on the same system,
|
||||
// at least since Linux 2.2 and both can be combined since
|
||||
@@ -169,7 +178,11 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
|
||||
if (have_cork && ! want_cork)
|
||||
{
|
||||
optval = 1;
|
||||
setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_NOPUSH, &optval, sizeof (&optval));
|
||||
setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_NOPUSH,
|
||||
&optval,
|
||||
sizeof (&optval));
|
||||
// TODO: set corknopush to true here?
|
||||
// connection->sk_tcp_cork_nopush_on = true;
|
||||
}
|
||||
@@ -182,16 +195,27 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
|
||||
{
|
||||
optval = 0;
|
||||
// setsockopt (nodelay-off);
|
||||
setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof (&optval));
|
||||
setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_NODELAY,
|
||||
&optval,
|
||||
sizeof (&optval));
|
||||
connection->sk_tcp_nodelay_on = false;
|
||||
}
|
||||
// ...
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
ret = send (connection->socket_fd, buffer, buffer_size, want_cork ? MSG_MORE : 0);
|
||||
#if MSG_MORE
|
||||
ret = send (connection->socket_fd,
|
||||
buffer,
|
||||
buffer_size,
|
||||
(want_cork ? MSG_MORE : 0));
|
||||
#else
|
||||
ret = send (connection->socket_fd, buffer, buffer_size, 0);
|
||||
#endif
|
||||
eno = errno;
|
||||
|
||||
#if TCP_CORK
|
||||
if (use_corknopush)
|
||||
{
|
||||
@@ -199,8 +223,17 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
|
||||
{
|
||||
optval = 0;
|
||||
//setsockopt (cork-off); // or nodelay off // + update connection->sk_tcp_nodelay_on
|
||||
setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_CORK, &optval, sizeof (&optval)) ||
|
||||
(setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof (&optval)) && (connection->sk_tcp_nodelay_on = false));
|
||||
setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_CORK,
|
||||
&optval,
|
||||
sizeof (&optval)) ||
|
||||
(setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_NODELAY,
|
||||
&optval,
|
||||
sizeof (&optval)) &&
|
||||
(connection->sk_tcp_nodelay_on = false));
|
||||
}
|
||||
}
|
||||
#elif TCP_NOPUSH
|
||||
@@ -222,7 +255,8 @@ MHD_send_on_connection_ (struct MHD_Connection *connection,
|
||||
IPPROTO_TCP,
|
||||
TCP_NODELAY,
|
||||
&optval,
|
||||
sizeof (&optval)) && (connection->sk_tcp_nodelay_on = true);
|
||||
sizeof (&optval)) &&
|
||||
(connection->sk_tcp_nodelay_on = true);
|
||||
}
|
||||
// ...
|
||||
}
|
||||
@@ -269,7 +303,12 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection,
|
||||
{
|
||||
optval = 0;
|
||||
// setsockopt (nodelay-off);
|
||||
setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof (&optval)) && (connection->sk_tcp_nodelay = false);
|
||||
setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_NODELAY,
|
||||
&optval,
|
||||
sizeof (&optval)) &&
|
||||
(connection->sk_tcp_nodelay = false);
|
||||
}
|
||||
// ...
|
||||
}
|
||||
@@ -288,11 +327,13 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection,
|
||||
eno = errno;
|
||||
if ((ret == header_len + buffer_len) && have_cork)
|
||||
{
|
||||
optval = 0;
|
||||
// response complete, definitely uncork!
|
||||
// setsockopt (cork-off);
|
||||
setsockopt (connection->socket_fd, IPPROTO_TCP, TCP_CORK, &optval, sizeof (&optval));
|
||||
// connection->sk_tcp_cork_nopush_on = true;
|
||||
optval = 0;
|
||||
setsockopt (connection->socket_fd,
|
||||
IPPROTO_TCP,
|
||||
TCP_CORK,
|
||||
&optval,
|
||||
sizeof (&optval));
|
||||
}
|
||||
errno = eno;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user