libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 883c72f9a69ac3ccf591742327c3e425e47a8ea0
parent b474adda0898c01194ed47c5d90b5caed99f7bf6
Author: ng0 <ng0@n0.is>
Date:   Mon, 17 Jun 2019 17:20:21 +0000

mhd_send: Move return_bytes related code into the right place.

Diffstat:
Msrc/microhttpd/mhd_send.c | 53++++++++++++++++++++++++++---------------------------
1 file changed, 26 insertions(+), 27 deletions(-)

diff --git a/src/microhttpd/mhd_send.c b/src/microhttpd/mhd_send.c @@ -260,7 +260,7 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection, size_t buffer_size, enum MHD_SendSocketOptions) { - int errno = 0; + int errno = 0; MHD_socket s = connection->socket_fd; // -- <pseudo> // set socket := connect->MHD_socket @@ -286,40 +286,39 @@ MHD_send_on_connection2_ (struct MHD_Connection *connection, // return -1 // return numBytes // -- </pseudo> -#ifdef WRITEV - int iovcnt; - struct iovec vector[2]; - vector[0].iov_base = header; - vector[0].iov_len = strlen (header); - vector[1].iov_base = buffer; - vector[1].iov_len = strlen (buffer); - iovcnt = sizeof (vector) / sizeof (struct iovec); - int i = writev (s, vector, iovcnt); - fprintf (stdout, "i=%d, errno=%d\n", i, errno); -#else - // not available, send a combination of header + buffer. - size_t concatsize = header_size + buffer_size; - const char *concatbuffer; - concatbuffer = header + buffer; -#ifdef MSG_MORE - num_bytes = send (s, concatbuffer, concatsize, MSG_MORE); -#else - num_bytes = send (s, concatbuffer, concatsize); -#endif -#endif struct tcp_info *tcp_; size_t opt1, opt2, length; switch (MHD_SendSocketOptions) { case MHD_SSO_NO_CORK: - /* No corking */ + /* No corking */ case MHD_SSO_MAY_CORK: case MHD_SSO_HDR_CORK: } -if (MHD_SendSocketOptions == 1) -{ - // bla -} + if (MHD_SendSocketOptions == 1) + { +#ifdef WRITEV + int iovcnt; + struct iovec vector[2]; + vector[0].iov_base = header; + vector[0].iov_len = strlen (header); + vector[1].iov_base = buffer; + vector[1].iov_len = strlen (buffer); + iovcnt = sizeof (vector) / sizeof (struct iovec); + int i = writev (s, vector, iovcnt); + fprintf (stdout, "i=%d, errno=%d\n", i, errno); +#else + // not available, send a combination of header + buffer. + //size_t concatsize = header_size + buffer_size; + //const char *concatbuffer; + //concatbuffer = header + buffer; +#ifdef MSG_MORE + num_bytes = send (s, header, header_size, MSG_MORE); +#else + num_bytes = send (s, header, header_size); +#endif +#endif + } if (0 != errno) return -1; if (0 == errno)