handle 204 status code
authorChristian Grothoff <christian@grothoff.org>
Fri, 24 Apr 2020 18:36:28 +0000 (20:36 +0200)
committerChristian Grothoff <christian@grothoff.org>
Fri, 24 Apr 2020 18:36:28 +0000 (20:36 +0200)
src/Makefile.am
src/curl/Makefile.am
src/curl/curl.c

index e1d73ab01999b56707e3872f53e32a5dcd209807..16df77fb4a5883082dbfb2108d9e6b713364ba1c 100644 (file)
@@ -28,6 +28,7 @@ if HAVE_MHD
   JSON_DIR = json
 endif
 endif
+if HAVE_MHD
 if HAVE_LIBGNURL
   CURL_DIR = curl
 else
@@ -35,6 +36,7 @@ if HAVE_LIBCURL
   CURL_DIR = curl
 endif
 endif
+endif
 
 if BUILD_PULSE_HELPERS
 CONVERSATION_DIR = conversation
index ed5819deeffa539916fafaaf7a4bcde8e2bf53b0..c6b350bc764e5efe8424884c3321d8cdf21da1cc 100644 (file)
@@ -32,7 +32,7 @@ libgnunetcurl_la_LIBADD = \
   $(LIB_GNURL) \
   $(XLIB)
 libgnunetcurl_la_CPPFLAGS = \
- $(CPP_GNURL) $(AM_CPPFLAGS)
+ $(CPP_GNURL) $(AM_CPPFLAGS) $(MHD_CFLAGS)
 
 #check_PROGRAMS = \
 #  test_curl
index 72bb177895a5a53476c549fdca37d70062af6eb2..b7452330fd1ae9ebc038025ec3b6a4445bc4f434 100644 (file)
@@ -25,6 +25,7 @@
  */
 #include "platform.h"
 #include <jansson.h>
+#include <microhttpd.h>
 #include "gnunet_curl_lib.h"
 
 #if ENABLE_BENCHMARK
@@ -181,7 +182,8 @@ struct GNUNET_CURL_Context
  * @return library context
  */
 struct GNUNET_CURL_Context *
-GNUNET_CURL_init (GNUNET_CURL_RescheduleCallback cb, void *cb_cls)
+GNUNET_CURL_init (GNUNET_CURL_RescheduleCallback cb,
+                  void *cb_cls)
 {
   struct GNUNET_CURL_Context *ctx;
   CURLM *multi;
@@ -263,7 +265,10 @@ GNUNET_CURL_is_valid_scope_id (const char *scope_id)
  * @return number of bytes processed from @a bufptr
  */
 static size_t
-download_cb (char *bufptr, size_t size, size_t nitems, void *cls)
+download_cb (char *bufptr,
+             size_t size,
+             size_t nitems,
+             void *cls)
 {
   struct GNUNET_CURL_DownloadBuffer *db = cls;
   size_t msize;
@@ -376,7 +381,9 @@ setup_job (CURL *eh,
   }
   job->easy_handle = eh;
   job->ctx = ctx;
-  GNUNET_CONTAINER_DLL_insert (ctx->jobs_head, ctx->jobs_tail, job);
+  GNUNET_CONTAINER_DLL_insert (ctx->jobs_head,
+                               ctx->jobs_tail,
+                               job);
   return job;
 }
 
@@ -497,7 +504,11 @@ GNUNET_CURL_job_add (struct GNUNET_CURL_Context *ctx,
                  curl_slist_append (NULL, "Content-Type: application/json")));
   }
 
-  job = GNUNET_CURL_job_add2 (ctx, eh, job_headers, jcc, jcc_cls);
+  job = GNUNET_CURL_job_add2 (ctx,
+                              eh,
+                              job_headers,
+                              jcc,
+                              jcc_cls);
   curl_slist_free_all (job_headers);
   return job;
 }
@@ -616,6 +627,8 @@ GNUNET_CURL_download_get_result_ (struct GNUNET_CURL_DownloadBuffer *db,
                   (const char *) db->buf);
     return NULL;
   }
+  if (MHD_HTTP_NO_CONTENT == *response_code)
+    return NULL;
   json = NULL;
   if (0 == db->eno)
   {