gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [libmicrohttpd] branch master updated (650d4685 -> 100b8f2f


From: gnunet
Subject: [GNUnet-SVN] [libmicrohttpd] branch master updated (650d4685 -> 100b8f2f)
Date: Fri, 03 May 2019 19:08:53 +0200

This is an automated email from the git hooks/post-receive script.

karlson2k pushed a change to branch master
in repository libmicrohttpd.

    from 650d4685 Added MHD_get_connection_values_n() function to get keys and 
values with size. Can get keys and values with binary zero.
     new d270741b MHD_get_connection_values_n(): avoid ambiguous 'else'
     new 100b8f2f Use new MHD_lookup_connection_value_n() function

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/microhttpd/basicauth.c     |  9 ++++--
 src/microhttpd/connection.c    | 62 ++++++++++++++++++++++++++----------------
 src/microhttpd/digestauth.c    | 20 ++++++++------
 src/microhttpd/postprocessor.c | 10 ++++---
 src/testcurl/test_get.c        | 11 ++++++--
 5 files changed, 71 insertions(+), 41 deletions(-)

diff --git a/src/microhttpd/basicauth.c b/src/microhttpd/basicauth.c
index 4cb671e4..1d0c53ad 100644
--- a/src/microhttpd/basicauth.c
+++ b/src/microhttpd/basicauth.c
@@ -52,9 +52,12 @@ MHD_basic_auth_get_username_password (struct MHD_Connection 
*connection,
   const char *separator;
   char *user;
 
-  if ( (NULL == (header = MHD_lookup_connection_value (connection,
-                                                      MHD_HEADER_KIND,
-                                                      
MHD_HTTP_HEADER_AUTHORIZATION))) ||
+  if ( (MHD_NO == MHD_lookup_connection_value_n (connection,
+                                                 MHD_HEADER_KIND,
+                                                 MHD_HTTP_HEADER_AUTHORIZATION,
+                                                 MHD_STATICSTR_LEN_ 
(MHD_HTTP_HEADER_AUTHORIZATION),
+                                                 &header,
+                                                 NULL)) ||
        (0 != strncmp (header,
                       _BASIC_BASE,
                       MHD_STATICSTR_LEN_ (_BASIC_BASE))) )
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 9e136b9d..d3f47d4d 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -741,8 +741,10 @@ MHD_get_connection_values_n (struct MHD_Connection 
*connection,
 
   if (NULL == iterator)
     for (pos = connection->headers_received; NULL != pos; pos = pos->next)
-      if (kind == pos->kind)
-        ret++;
+      {
+        if (kind == pos->kind)
+          ret++;
+      }
   else
     for (pos = connection->headers_received; NULL != pos; pos = pos->next)
       if (kind == pos->kind)
@@ -1068,9 +1070,12 @@ need_100_continue (struct MHD_Connection *connection)
           (NULL != connection->version) &&
        (MHD_str_equal_caseless_(connection->version,
                             MHD_HTTP_VERSION_1_1)) &&
-          (NULL != (expect = MHD_lookup_connection_value (connection,
-                                                          MHD_HEADER_KIND,
-                                                          
MHD_HTTP_HEADER_EXPECT))) &&
+           (MHD_NO != MHD_lookup_connection_value_n (connection,
+                                                     MHD_HEADER_KIND,
+                                                     MHD_HTTP_HEADER_EXPECT,
+                                                     
MHD_STATICSTR_LEN_(MHD_HTTP_HEADER_EXPECT),
+                                                     &expect,
+                                                     NULL)) &&
           (MHD_str_equal_caseless_(expect,
                                     "100-continue")) &&
           (connection->continue_message_write_offset <
@@ -2304,6 +2309,7 @@ static int
 parse_cookie_header (struct MHD_Connection *connection)
 {
   const char *hdr;
+  size_t hdr_len;
   char *cpy;
   char *pos;
   char *sce;
@@ -2314,13 +2320,15 @@ parse_cookie_header (struct MHD_Connection *connection)
   char old;
   int quotes;
 
-  hdr = MHD_lookup_connection_value (connection,
-                                    MHD_HEADER_KIND,
-                                    MHD_HTTP_HEADER_COOKIE);
-  if (NULL == hdr)
+  if (MHD_NO == MHD_lookup_connection_value_n (connection,
+                                               MHD_HEADER_KIND,
+                                               MHD_HTTP_HEADER_COOKIE,
+                                               
MHD_STATICSTR_LEN_(MHD_HTTP_HEADER_COOKIE),
+                                               &hdr,
+                                               &hdr_len))
     return MHD_YES;
   cpy = MHD_pool_allocate (connection->pool,
-                           strlen (hdr) + 1,
+                           hdr_len + 1,
                            MHD_YES);
   if (NULL == cpy)
     {
@@ -2335,7 +2343,8 @@ parse_cookie_header (struct MHD_Connection *connection)
     }
   memcpy (cpy,
           hdr,
-          strlen (hdr) + 1);
+          hdr_len);
+  cpy[hdr_len] = '\0';
   pos = cpy;
   while (NULL != pos)
     {
@@ -2980,10 +2989,13 @@ parse_connection_headers (struct MHD_Connection 
*connection)
        (NULL != connection->version) &&
        (MHD_str_equal_caseless_(MHD_HTTP_VERSION_1_1,
                                 connection->version)) &&
-       (NULL ==
-        MHD_lookup_connection_value (connection,
-                                     MHD_HEADER_KIND,
-                                     MHD_HTTP_HEADER_HOST)) )
+       (MHD_NO ==
+        MHD_lookup_connection_value_n (connection,
+                                       MHD_HEADER_KIND,
+                                       MHD_HTTP_HEADER_HOST,
+                                       
MHD_STATICSTR_LEN_(MHD_HTTP_HEADER_HOST),
+                                       NULL,
+                                       NULL)) )
     {
       int iret;
 
@@ -3020,10 +3032,12 @@ parse_connection_headers (struct MHD_Connection 
*connection)
     }
 
   connection->remaining_upload_size = 0;
-  enc = MHD_lookup_connection_value (connection,
-                                    MHD_HEADER_KIND,
-                                    MHD_HTTP_HEADER_TRANSFER_ENCODING);
-  if (NULL != enc)
+  if (MHD_NO != MHD_lookup_connection_value_n (connection,
+                                               MHD_HEADER_KIND,
+                                               
MHD_HTTP_HEADER_TRANSFER_ENCODING,
+                                               
MHD_STATICSTR_LEN_(MHD_HTTP_HEADER_TRANSFER_ENCODING),
+                                               &enc,
+                                               NULL))
     {
       connection->remaining_upload_size = MHD_SIZE_UNKNOWN;
       if (MHD_str_equal_caseless_(enc,
@@ -3032,10 +3046,12 @@ parse_connection_headers (struct MHD_Connection 
*connection)
     }
   else
     {
-      clen = MHD_lookup_connection_value (connection,
-                                         MHD_HEADER_KIND,
-                                         MHD_HTTP_HEADER_CONTENT_LENGTH);
-      if (NULL != clen)
+      if (MHD_NO != MHD_lookup_connection_value_n (connection,
+                                                   MHD_HEADER_KIND,
+                                                   
MHD_HTTP_HEADER_CONTENT_LENGTH,
+                                                   
MHD_STATICSTR_LEN_(MHD_HTTP_HEADER_CONTENT_LENGTH),
+                                                   &clen,
+                                                   NULL))
         {
           end = clen + MHD_str_to_uint64_ (clen,
                                            &connection->remaining_upload_size);
diff --git a/src/microhttpd/digestauth.c b/src/microhttpd/digestauth.c
index 8eade195..8564e02a 100644
--- a/src/microhttpd/digestauth.c
+++ b/src/microhttpd/digestauth.c
@@ -629,10 +629,12 @@ MHD_digest_auth_get_username(struct MHD_Connection 
*connection)
   char user[MAX_USERNAME_LENGTH];
   const char *header;
 
-  if (NULL == (header =
-               MHD_lookup_connection_value (connection,
-                                            MHD_HEADER_KIND,
-                                            MHD_HTTP_HEADER_AUTHORIZATION)))
+  if (MHD_NO == MHD_lookup_connection_value_n (connection,
+                                               MHD_HEADER_KIND,
+                                               MHD_HTTP_HEADER_AUTHORIZATION,
+                                               MHD_STATICSTR_LEN_ 
(MHD_HTTP_HEADER_AUTHORIZATION),
+                                               &header,
+                                               NULL))
     return NULL;
   if (0 != strncmp (header,
                     _BASE,
@@ -875,10 +877,12 @@ digest_auth_check_all (struct MHD_Connection *connection,
   char *qmark;
 
   VLA_CHECK_LEN_DIGEST(da->digest_size);
-  header = MHD_lookup_connection_value (connection,
-                                       MHD_HEADER_KIND,
-                                       MHD_HTTP_HEADER_AUTHORIZATION);
-  if (NULL == header)
+  if (MHD_NO == MHD_lookup_connection_value_n (connection,
+                                               MHD_HEADER_KIND,
+                                               MHD_HTTP_HEADER_AUTHORIZATION,
+                                               MHD_STATICSTR_LEN_ 
(MHD_HTTP_HEADER_AUTHORIZATION),
+                                               &header,
+                                               NULL))
     return MHD_NO;
   if (0 != strncmp (header,
                     _BASE,
diff --git a/src/microhttpd/postprocessor.c b/src/microhttpd/postprocessor.c
index 8b710ea1..ad0b2adf 100644
--- a/src/microhttpd/postprocessor.c
+++ b/src/microhttpd/postprocessor.c
@@ -288,10 +288,12 @@ MHD_create_post_processor (struct MHD_Connection 
*connection,
                __FILE__,
                __LINE__,
                NULL);
-  encoding = MHD_lookup_connection_value (connection,
-                                          MHD_HEADER_KIND,
-                                          MHD_HTTP_HEADER_CONTENT_TYPE);
-  if (NULL == encoding)
+  if (MHD_NO == MHD_lookup_connection_value_n (connection,
+                                               MHD_HEADER_KIND,
+                                               MHD_HTTP_HEADER_CONTENT_TYPE,
+                                               
MHD_STATICSTR_LEN_(MHD_HTTP_HEADER_CONTENT_TYPE),
+                                               &encoding,
+                                               NULL))
     return NULL;
   boundary = NULL;
   if (! MHD_str_equal_caseless_n_ (MHD_HTTP_POST_ENCODING_FORM_URLENCODED,
diff --git a/src/testcurl/test_get.c b/src/testcurl/test_get.c
index 7e4fd4c6..2a22432d 100644
--- a/src/testcurl/test_get.c
+++ b/src/testcurl/test_get.c
@@ -130,9 +130,14 @@ ahc_echo (void *cls,
        (0 != strcmp ("&",
                      v)) )
     abort ();
-  v = MHD_lookup_connection_value (connection,
-                                   MHD_GET_ARGUMENT_KIND,
-                                   "b");
+  v = NULL;
+  if (MHD_YES != MHD_lookup_connection_value_n (connection,
+                                                MHD_GET_ARGUMENT_KIND,
+                                                "b",
+                                                1,
+                                                &v,
+                                                NULL))
+    abort ();
   if ( (NULL == v) ||
        (0 != strcmp ("c",
                      v)) )

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]