2886 Commits
Author SHA1 Message Date
Christian Grothoff 154d0fd6a1 adjusting digest auth to previous regression fix, releasing 0.9.63 v0.9.63 2019-02-10 17:13:03 +01:00
Christian Grothoff f6ee589dc9 add test for &-URI parsing and URI logging 2019-02-09 13:51:53 +01:00
Christian Grothoff d640ad8212 preliminary patch for query string issue reported on the ML 2019-02-07 16:16:56 +01:00
Christian Grothoff 302d381133 fix memory leak with TLS if daemon startup fails as reported by Nicolas Mora on the list 2019-01-11 21:17:41 +01:00
silvioprog dad0746a10 Added minimal example for how to compress HTTP response. (#4914) 2019-01-08 03:00:17 -03:00
Christian Grothoff b7052c0415 Check should (indeed) be for GNUTLS_E_AGAIN.
Lasa Martxel wrote:
Hello,

I have found the following code in daemon.c file, lines 1449 to 1467:

      if (0 >= res)
        {
          if (GNUTLS_E_INTERRUPTED != res)
            {
              urh->app.celi &= ~MHD_EPOLL_STATE_WRITE_READY;

              if (GNUTLS_E_INTERRUPTED != res)

(GNUTLS_E_INTERRUPTED != res) is checked twice.

In the read part (a few lines above), GNUTLS_E_INTERRUPTED != res is checked first and then GNUTLS_E_AGAIN != res. It looks like something similar should be done here, but I’m not sure.

Thanks,

Martxel
2018-12-19 00:06:48 +01:00
Christian Grothoff 700f23d5d7 Fixes build issue of testcase for some configurations.
Lasa Martxel <mlasa@ikerlan.es> wrote:

I was getting an error when running make check, when building test_upgrade. I have followed the following steps to build the library (tried both on master an v0.9.62, same result):

git clone https://gnunet.org/git/libmicrohttpd.git
cd libmicrohttpd
./bootstrap
./configure --enable-curl
make
make check

The error message I was getting is the following one:

gcc -DHAVE_CONFIG_H -I. -I../..  -I../../src/include -I../../src/microhttpd   -fvisibility=hidden  -pthread  -g -O2 -fno-strict-aliasing -MT test_upgrade-test_upgrade.o -MD -MP -MF .deps/test_upgrade-test_upgrade.Tpo -c -o test_upgrade-test_upgrade.o `test -f 'test_upgrade.c' || echo './'`test_upgrade.c

mv -f .deps/test_upgrade-test_upgrade.Tpo .deps/test_upgrade-test_upgrade.Po

/bin/bash ../../libtool  --tag=CC   --mode=link gcc -fvisibility=hidden  -pthread  -g -O2 -fno-strict-aliasing   -o test_upgrade test_upgrade-test_upgrade.o ../../src/microhttpd/libmicrohttpd.la

libtool: link: gcc -fvisibility=hidden -pthread -g -O2 -fno-strict-aliasing -o .libs/test_upgrade test_upgrade-test_upgrade.o  ../../src/microhttpd/.libs/libmicrohttpd.so -pthread

/usr/bin/ld: test_upgrade-test_upgrade.o: undefined reference to symbol 'gnutls_handshake@@GNUTLS_3_4'

//usr/lib/x86_64-linux-gnu/libgnutls.so.30: error adding symbols: DSO missing from command line

collect2: error: ld returned 1 exit status

Makefile:1139: recipe for target 'test_upgrade' failed

I had to add $(MHD_TLS_LIB_LDFLAGS) and $(MHD_TLS_LIBDEPS) to test_upgrade_LDADD and test_upgrade_tls_LDADD to the Makefile.am:

diff --git a/src/microhttpd/Makefile.am b/src/microhttpd/Makefile.am

index 22b6100d..1f4ffca3 100644

--- a/src/microhttpd/Makefile.am

+++ b/src/microhttpd/Makefile.am

@@ -224,6 +224,7 @@ test_upgrade_LDFLAGS = \

   $(MHD_TLS_LIB_LDFLAGS)

test_upgrade_LDADD = \

   $(top_builddir)/src/microhttpd/libmicrohttpd.la \

+  $(MHD_TLS_LIB_LDFLAGS) $(MHD_TLS_LIBDEPS) \

   $(PTHREAD_LIBS)

 test_upgrade_tls_SOURCES = \

@@ -236,6 +237,7 @@ test_upgrade_tls_LDFLAGS = \

   $(MHD_TLS_LIB_LDFLAGS)

test_upgrade_tls_LDADD = \

   $(top_builddir)/src/microhttpd/libmicrohttpd.la \

+  $(MHD_TLS_LIB_LDFLAGS) $(MHD_TLS_LIBDEPS) \

   $(PTHREAD_LIBS)

 test_postprocessor_SOURCES = \

With that change, I’m able to correctly build, run and pass al the tests.

Regards,

Martxel

-> patched as suggested
2018-12-14 15:58:14 +01:00
Christian Grothoff 29cd7b735d update ignore file 2018-12-13 22:54:50 +01:00
Christian Grothoff 1619b9f051 reset timeout on response being queued, needed in thread-per-connection mode if the working thread takes very long 2018-12-13 22:51:05 +01:00
Christian Grothoff 8a9b198d4a add conn. close example 2018-12-12 17:50:06 +01:00
Christian Grothoff 5d75a87ef6 brutally simplify VLA macro for stupid compilers 2018-12-12 01:45:57 +01:00
Christian Grothoff 7ea8a3310e avoid c99-style comments in examples, fix missed VLA 2018-12-12 01:21:05 +01:00
Christian Grothoff 273a6df932 remove requirement for VLA in digestauth.c logic 2018-12-11 10:06:42 +01:00
Evgeny Grin (Karlson2k) e13c79ee3b Track socket CORK/NODELAY states to avoid extra syscalls 2018-12-10 22:14:59 +03:00
Evgeny Grin (Karlson2k) 4b5e8e0b45 connection.c: updated connection buffer control function to use
bool as return value. No change in processing logic.
2018-12-09 18:51:50 +03:00
Evgeny Grin (Karlson2k) 1616caa177 configure: fixed build for latest MinGW 2018-12-09 15:43:58 +03:00
Christian Grothoff 2add933d4f add JM 2018-12-08 23:18:48 +01:00
Christian Grothoff 18a607a518 use WSA_FLAG_OVERLAPPED in W32 sockets as per suggestion from Johnathan McDougall on the mailinglist 2018-12-08 23:18:08 +01:00
Christian Grothoff 0d9046effa pot update 2018-12-08 23:11:50 +01:00
Christian Grothoff 517c4a81c7 releasing libmicrohttpd 0.9.62 v0.9.62 2018-12-08 23:11:13 +01:00
Christian Grothoff 2897bd23e5 add test for RFC 7616 and document new API 2018-12-08 22:54:33 +01:00
Christian Grothoff bcba3f58c5 preliminary implementation for RFC 7616 support 2018-12-08 17:35:37 +01:00
Christian Grothoff 6bb3796f50 fix FTBFS 2018-12-07 19:11:59 +01:00
Christian Grothoff be32c05e0e add build option to compile MHD without threads 2018-12-07 12:42:49 +01:00
Christian Grothoff 0eefd20ba3 add build option to compile MHD without threads 2018-12-07 12:40:40 +01:00
silvioprog 22c08b5fd7 Renamed all occurrences from _model(s)_ to _mode(s)_. 2018-12-06 13:26:39 -03:00
silvioprog b220303691 Optimized the function MHD_create_response_from_callback() for Windows by increasing its internal buffer size and allowed to customize it via macro MHD_FD_BLOCK_SIZE. 2018-12-06 12:54:00 -03:00
silvioprog 53674dcdfb Referenced the gnutls_load_file() function in the HTTPs examples. 2018-12-06 02:13:37 -03:00
Christian Grothoff 79a8955bb6 fix #5496:
'
2018-12-05 18:20:00 +01:00
José Bollo 11eb7a4826 Improve parsing of HTTPS options
The argument of the HTTPS options is now always
extracted from the list of variable arguments.
This removes strange errors like:

  MHD HTTPS option 8 passed to MHD but MHD_USE_TLS not set
  Invalid option 6313728! (Did you terminate the list with MHD_OPTION_END?)

And allows to activate/deactivate HTTPS fairly by
only setting or not the flag MHD_USE_TLS.

Change-Id: I31acedbdefe9c930e94c7227d240a36d2a9000d5
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Signed-off-by: Christian Grothoff <christian@grothoff.org>
2018-12-05 18:06:59 +01:00
Christian Grothoff 7b92bb1cde releasing 0.9.61 2018-11-20 22:23:03 +01:00
Christian Grothoff 8466a08d35 import sha256 from GNU Nettle 2018-11-20 20:05:30 +01:00
Christian Grothoff 488615cea6 avoid sprintf 2018-11-18 12:21:02 +01:00
Christian Grothoff 49936d88d9 fix format string, prefer snprintf 2018-11-18 12:03:16 +01:00
Christian Grothoff af91748032 fix format string, prefer snprintf 2018-11-18 12:02:10 +01:00
Christian Grothoff 64e1480540 fix build issue with GnuTLS < 3.0 2018-11-14 14:01:49 +01:00
Christian Grothoff ff551c4671 From: Christian Hesse <mail@eworm.de>
Date: Thu, 8 Nov 2018 00:15:29 +0100
Subject: [PATCH 1/1] fix tests with curl

Starting with curl 7.62.0 some tests fail. The commit in question is
46e16406 [0] ("url: use the URL API internally as well").

Analyzing the changed behavior reveals that the url given to
curl_easy_setopt() with CURLOPT_URL is no longer encoded. Looking at the
documentation [1] this behavior is correct, the "parameter should be a
char * to a zero terminated string which must be URL-encoded [...]".

So let's just give a valid url...

[0] https://github.com/curl/curl/commit/46e164069d1a5230e4e64cbd2ff46c46cce056bb
[1] https://curl.haxx.se/libcurl/c/CURLOPT_URL.html

Signed-off-by: Christian Hesse <mail@eworm.de>
Signed-off: CG
2018-11-12 19:52:49 +01:00
Christian Grothoff e1f2253a38 fix ftbfs 2018-11-12 19:51:52 +01:00
Christian Grothoff 2962b6e48d add MHD_create_response_from_buffer_with_free_callback 2018-11-08 14:53:46 +01:00
Christian Grothoff 10bdf39505 add MHD_create_response_from_buffer_with_free_callback 2018-11-08 14:53:19 +01:00
Christian Grothoff acd39ed23d releasing libmicrohttpd 0.9.60 v0.9.60 2018-11-06 19:55:27 +01:00
Christian Grothoff 3fc686e335 initialize epoll_fd even if we have no listen fd, patch by Jose Bollo 2018-11-01 16:31:03 +01:00
Christian Grothoff 777d5e048d force setting MHD_USE_ITC if using thread-per-connection and notify_completed for timely notifications 2018-10-29 20:37:21 +01:00
Christian Grothoff 533124d379 fix possibly bad clearing of client_aware flag 2018-10-29 20:27:54 +01:00
Christian Grothoff 4728124102 notify main thread about thread termination for instant clean up 2018-10-20 12:45:21 +02:00
Christian Grothoff b55cd46bfd add --enable-experiemental option to not compile src/lib/ unless explicitly requested 2018-10-18 17:34:53 +02:00
Christian Grothoff 41ac932526 From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
Date: Thu, 18 Oct 2018 16:21:55 +0200
Subject: [PATCH] Fix build issue when parent dir is an automake project dir

Building fails if the parent directory is an automake project dir:

$ ./bootstrap
libtoolize: putting auxiliary files in '..'.
libtoolize: copying file '../ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:61: installing '../compile'
configure.ac:67: error: required file '../config.rpath' not found
configure.ac:26: installing '../missing'
doc/examples/Makefile.am: installing '../depcomp'
autoreconf: automake failed with exit status: 1

The fix is to specify AC_CONFIG_AUX_DIR before AM_INIT_AUTOMAKE.
---
2018-10-18 17:16:49 +02:00
Christian Grothoff 9199e5aa3a From: Gauthier Haderer <ghaderer@wyplay.com>
Date: Mon, 15 Oct 2018 14:11:39 +0200
Subject: [PATCH] Add response flag to force version to 1.0 and maintain
 connection management.

The existing MHD_RF_HTTP_VERSION_1_0_ONLY flag already changes MHD's
behavior to apply HTTP 1.0 rules for connection management. When
enabled, MHD sends a response using the same version as used in the
request (is this normal?).

What I want is MHD responding as a HTTP 1.0 server with support for
connection management headers would do. This is what the
MHD_RF_HTTP_VERSION_1_0_RESPONSE response flag is for.

You can even combine it with MHD_RF_HTTP_VERSION_1_0_ONLY to change the
response's HTTP version while maintaining strict compliance with HTTP
1.0 regarding connection management.

This solution is not perfect as this flag is set on the response which
is created after header processing. So MHD will behave as a HTTP 1.1
server until the response is queued. It means that an invalid HTTP 1.1
request will fail even if the response is sent with HTTP 1.0 and the
request would be valid if interpreted with this version. For example,
this request will fail in strict mode:

GET /dummy HTTP/1.1

as the Host header is missing and is mandatory in HTTP 1.1, but it
should succeed when interpreted with HTTP 1.0.

I don't think this is a big issue in practice. Besides, being able to
change the HTTP version on a response basis is really convenient when
using MHD in a test framework where we need to validate a client against
HTTP 1.1 AND HTTP 1.0.
2018-10-16 20:44:39 +02:00
silvioprog f7ab8b59a3 improve comments, cosmetic 2018-10-09 01:58:33 -03:00
silvioprog 30477aab57 Style fixes. 2018-10-09 01:44:50 -03:00