gnunet-svn
[Top][All Lists]
Advanced

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

[libmicrohttpd] 93/335: microhttpd2.h: edits


From: gnunet
Subject: [libmicrohttpd] 93/335: microhttpd2.h: edits
Date: Sat, 27 Jul 2024 21:59:49 +0200

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

grothoff pushed a commit to tag stf-m2
in repository libmicrohttpd.

commit 0c38cecdc81780a0605eff5c8cffa1b36a37e5cb
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Thu Mar 21 00:48:11 2024 +0100

    microhttpd2.h: edits
---
 src/include/microhttpd2.h | 775 ++++++++++++++++++++++++++++------------------
 1 file changed, 466 insertions(+), 309 deletions(-)

diff --git a/src/include/microhttpd2.h b/src/include/microhttpd2.h
index 12ad33bf..fa3bb7ed 100644
--- a/src/include/microhttpd2.h
+++ b/src/include/microhttpd2.h
@@ -261,23 +261,25 @@ enum MHD_Bool
 
 /**
  * String with length data.
+ * This type should always have valid @a cstr pointer.
  */
 struct MHD_String
 {
   /**
    * Number of characters in @e str, not counting 0-termination.
-   * If @a cstr is NULL, it must be zero.
    */
   size_t len;
 
   /**
    * 0-terminated C-string.
+   * Must not be NULL.
    */
   const char *cstr;
 };
 
 /**
- * String with length data. // TODO: use it
+ * String with length data.
+ * This type of data may have NULL as the @a cstr pointer.
  */
 struct MHD_StringNullable
 {
@@ -331,13 +333,15 @@ struct MHD_StringNullable
 
 
 #ifndef MHD_EXTERN_
-#  if defined(_WIN32) && defined(MHD_W32LIB)
-#    define MHD_EXTERN_ extern
-#  elif defined(_WIN32) && defined(MHD_W32DLL)
-/* Define MHD_W32DLL when using MHD as W32 .DLL to speed up linker a little */
-#    define MHD_EXTERN_ extern __declspec(dllimport)
-#  else
+#  if !defined(_WIN32)
 #    define MHD_EXTERN_ extern
+#  else /* defined(_WIN32) */
+#    if !defined(MHD_W32LIB)
+#      define MHD_EXTERN_ extern
+#    else /* defined(_WIN32) && efined(MHD_W32LIB) */
+  /* Define MHD_W32DLL when using MHD as W32 .DLL to speed up linker a little 
*/
+#      define MHD_EXTERN_ extern __declspec(dllimport)
+#    endif
 #  endif
 #endif
 
@@ -345,17 +349,17 @@ struct MHD_StringNullable
 /**
  * MHD_socket is type for socket FDs
  */
-#if ! defined(_WIN32) || defined(_SYS_TYPES_FD_SET)
-#define MHD_POSIX_SOCKETS 1
-typedef int MHD_socket;
-#define MHD_INVALID_SOCKET (-1)
-#else /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
-#define MHD_WINSOCK_SOCKETS 1
-#include <winsock2.h>
-typedef SOCKET MHD_socket;
-#define MHD_INVALID_SOCKET (INVALID_SOCKET)
-#endif /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
-#define MHD_SOCKET_DEFINED 1
+#  if ! defined(_WIN32) || defined(_SYS_TYPES_FD_SET)
+#    define MHD_POSIX_SOCKETS 1
+     typedef int MHD_socket;
+#    define MHD_INVALID_SOCKET (-1)
+#  else /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
+#    define MHD_WINSOCK_SOCKETS 1
+#    include <winsock2.h>
+     typedef SOCKET MHD_socket;
+#    define MHD_INVALID_SOCKET (INVALID_SOCKET)
+#  endif /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
+#  define MHD_SOCKET_DEFINED 1
 #endif /* MHD_SOCKET_DEFINED */
 
 
@@ -436,10 +440,8 @@ typedef SOCKET MHD_socket;
 #      define MHD_NO_COMPOUND_LITERALS    1
 #    endif
 #  endif /* !MHD_USE_COMPOUND_LITERALS */
-#else  /* MHD_NO_COMPOUND_LITERALS */
-#  ifdef MHD_USE_COMPOUND_LITERALS
+#elif defined(MHD_USE_COMPOUND_LITERALS)
 #error MHD_USE_COMPOUND_LITERALS and MHD_NO_COMPOUND_LITERALS are both defined
-#  endif /* MHD_USE_COMPOUND_LITERALS */
 #endif /* MHD_NO_COMPOUND_LITERALS */
 
 /* Use compound literals array as function parameter? */
@@ -447,8 +449,10 @@ typedef SOCKET MHD_socket;
 #  if !defined(MHD_NO_COMP_LIT_FUNC_PARAMS)
 #    if !defined(MHD_USE_COMP_LIT_FUNC_PARAMS)
 #      if !defined(__cplusplus)
+         /* Compound literals are lvalues and their addresses can be taken */
 #        define MHD_USE_COMP_LIT_FUNC_PARAMS    1
 #      elif defined(__llvm__)
+         /* clang and LLVM-based compilers treat compound literals as lvalue */
 #        define MHD_USE_COMP_LIT_FUNC_PARAMS    1
 #      else
          /* Compound literals array cannot be used as function parameter */
@@ -456,8 +460,8 @@ typedef SOCKET MHD_socket;
 #      endif
 #    endif
 #  elif defined(MHD_USE_COMP_LIT_FUNC_PARAMS)
-#error MHD_USE_COMP_LIT_FUNC_PARAMS and MHD_USE_COMP_LIT_FUNC_PARAMS are \
- both defined
+#error MHD_USE_COMP_LIT_FUNC_PARAMS and MHD_USE_COMP_LIT_FUNC_PARAMS are both \
+  defined
 #  endif
 #else  /* ! MHD_USE_COMPOUND_LITERALS */
 #  ifndef MHD_NO_COMP_LIT_FUNC_PARAMS
@@ -492,10 +496,8 @@ typedef SOCKET MHD_socket;
 #      define MHD_NO_DESIGNATED_INIT    1
 #    endif
 #  endif /* !MHD_USE_DESIGNATED_INIT */
-#else  /* MHD_NO_DESIGNATED_INIT */
-#  ifdef MHD_USE_DESIGNATED_INIT
+#elif defined(MHD_USE_DESIGNATED_INIT)
 #error MHD_USE_DESIGNATED_INIT and MHD_NO_DESIGNATED_INIT are both defined
-#  endif /* MHD_USE_DESIGNATED_INIT */
 #endif /* MHD_NO_DESIGNATED_INIT */
 
 /* Use nested designated initializers? */
@@ -550,10 +552,8 @@ typedef SOCKET MHD_socket;
 #      define MHD_NO_VARARG_MACROS    1
 #    endif
 #  endif /* !MHD_USE_VARARG_MACROS */
-#else  /* MHD_NO_VARARG_MACROS */
-#  ifdef MHD_USE_VARARG_MACROS
+#elif defined(MHD_USE_VARARG_MACROS)
 #error MHD_USE_VARARG_MACROS and MHD_NO_VARARG_MACROS are both defined
-#  endif /* MHD_USE_VARARG_MACROS */
 #endif /* MHD_NO_VARARG_MACROS */
 
 
@@ -790,12 +790,28 @@ typedef SOCKET MHD_socket;
 #if ! defined(MHD_NO_FUNC_ATTRIBUTES)
 #  if defined(__has_attribute)
 
-/* Override detected value of MHD_FUNC_CONST_ by defining it before including
+ /* Override detected value of MHD_FN_PURE_ by defining it before including
+  * the header */
+#    if __has_attribute (pure) && ! defined(MHD_FN_PURE_)
+/**
+ * MHD_FN_PURE_ functions always return the same value for this same input
+ * if volatile memory content is not changed.
+ * In general, such functions must must not access any global variables that
+ * can be changed over the time.
+ * Typical examples:
+ *   size_t strlen(const char *str);
+ *   int memcmpconst void *ptr1, const void *ptr2, size_t _Size);
+ */
+#      define MHD_FN_PURE_ __attribute__ ((pure))
+#    endif /* pure && !MHD_FN_PURE_ */
+
+/* Override detected value of MHD_FN_CONST_ by defining it before including
  * the header */
  */
-#    if __has_attribute (const) && ! defined(MHD_FUNC_CONST_)
+#    if ! defined(MHD_FN_CONST_)
+#      if __has_attribute (const)
 /**
- * MHD_FUNC_CONST_ functions always return the same value for this same
+ * MHD_FN_CONST_ functions always return the same value for this same
  * input value, even if any memory pointed by parameter is changed or
  * any global value changed. The functions do not change any global values.
  * In general, such functions must not dereference any pointers provided
@@ -805,144 +821,169 @@ typedef SOCKET MHD_socket;
  *   int square(int x);
  *   int sum(int a, int b);
  */
-#      define MHD_FUNC_CONST_ __attribute__ ((const))
-#    endif /* const && !MHD_FUNC_CONST_ */
-
- /* Override detected value of MHD_FUNC_PURE_ by defining it before including
-  * the header */
-#    if __has_attribute (pure) && ! defined(MHD_FUNC_PURE_)
-/**
- * MHD_FUNC_PURE_ functions always return the same value for this same input
- * if volatile memory content is not changed.
- * In general, such functions must must not access any global variables that
- * can be changed over the time.
- * Typical examples:
- *   size_t strlen(const char *str);
- *   int memcmpconst void *ptr1, const void *ptr2, size_t _Size);
- */
-#      define MHD_FUNC_PURE_ __attribute__ ((pure))
-#    endif /* pure && !MHD_FUNC_PURE_ */
+#        define MHD_FN_CONST_ __attribute__ ((const))
+#      elif defined(MHD_FN_PURE_) /* && ! __has_attribute (const) */
+#        define MHD_FN_CONST_ MHD_FN_PURE_
+#      endif
+#    endif /* const && !MHD_FN_CONST_ */
 
- /* Override detected value of MHD_FUNC_MUST_CHECK_RESULT_ by defining it 
before
+ /* Override detected value of MHD_FN_MUST_CHECK_RESULT_ by defining it before
   * including the header */
 #    if __has_attribute (warn_unused_result) && \
-  ! defined(MHD_FUNC_MUST_CHECK_RESULT_)
+  ! defined(MHD_FN_MUST_CHECK_RESULT_)
 /**
- * MHD_FUNC_MUST_CHECK_RESULT_ indicates that caller must check the value
+ * MHD_FN_MUST_CHECK_RESULT_ indicates that caller must check the value
  * returned by the function.
  */
-#      define MHD_FUNC_MUST_CHECK_RESULT_ __attribute__ ((warn_unused_result))
-#    endif /* warn_unused_result && !MHD_FUNC_MUST_CHECK_RESULT_ */
+#      define MHD_FN_MUST_CHECK_RESULT_ __attribute__ ((warn_unused_result))
+#    endif /* warn_unused_result && !MHD_FN_MUST_CHECK_RESULT_ */
 
- /* Override detected value of MHD_FUNC_PARAM_NONNULL_ by defining it before
+ /* Override detected value of MHD_FN_PARAM_NONNULL_ by defining it before
   * including the header */
 #    if __has_attribute (nonnull) && \
-  ! defined(MHD_FUNC_PARAM_NONNULL_)
+  ! defined(MHD_FN_PARAM_NONNULL_)
 /**
- * MHD_FUNC_PARAM_NONNULL_ indicates function parameter number @a param_num
+ * MHD_FN_PARAM_NONNULL_ indicates function parameter number @a param_num
  * must never be NULL.
  */
-#      define MHD_FUNC_PARAM_NONNULL_(param_num) \
+#      define MHD_FN_PARAM_NONNULL_(param_num) \
   __attribute__ ((nonnull (param_num)))
-#    endif /* nonnull && !MHD_FUNC_PARAM_NONNULL_ */
+#    endif /* nonnull && !MHD_FN_PARAM_NONNULL_ */
 
- /* Override detected value of MHD_FUNC_PARAM_NONNULL_ALL_ by defining it 
before
+ /* Override detected value of MHD_FN_PARAM_NONNULL_ALL_ by defining it before
   * including the header */
 #    if __has_attribute (nonnull) && \
-  ! defined(MHD_FUNC_PARAM_NONNULL_ALL_)
+  ! defined(MHD_FN_PARAM_NONNULL_ALL_)
 /**
- * MHD_FUNC_PARAM_NONNULL_ALL_ indicates all function parameters must
+ * MHD_FN_PARAM_NONNULL_ALL_ indicates all function parameters must
  * never be NULL.
  */
-#      define MHD_FUNC_PARAM_NONNULL_ALL_ __attribute__ ((nonnull))
-#    endif /* nonnull && !MHD_FUNC_PARAM_NONNULL_ALL_ */
+#      define MHD_FN_PARAM_NONNULL_ALL_ __attribute__ ((nonnull))
+#    endif /* nonnull && !MHD_FN_PARAM_NONNULL_ALL_ */
 
 #    if __has_attribute (access)
 
- /* Override detected value of MHD_FUNC_PARAM_IN_ by defining it before
+ /* Override detected value of MHD_FN_PARAM_IN_ by defining it before
   * including the header */
-#      if ! defined(MHD_FUNC_PARAM_IN_)
+#      if ! defined(MHD_FN_PARAM_IN_)
 /**
- * MHD_FUNC_PARAM_IN_ indicates function parameter points to data
+ * MHD_FN_PARAM_IN_ indicates function parameter points to data
  * that must not be modified by the function
  */
-#        define MHD_FUNC_PARAM_IN_(param_num) \
+#        define MHD_FN_PARAM_IN_(param_num) \
   __attribute__ ((access (read_only,pram_num)))
-#      endif /* !MHD_FUNC_PARAM_IN_ */
+#      endif /* !MHD_FN_PARAM_IN_ */
 
- /* Override detected value of MHD_FUNC_PARAM_IN_SIZE_ by defining it before
+ /* Override detected value of MHD_FN_PARAM_IN_SIZE_ by defining it before
   * including the header */
-#      if ! defined(MHD_FUNC_PARAM_IN_SIZE_)
+#      if ! defined(MHD_FN_PARAM_IN_SIZE_)
 /**
- * MHD_FUNC_PARAM_IN_SIZE_ indicates function parameter points to data
+ * MHD_FN_PARAM_IN_SIZE_ indicates function parameter points to data
  * which size is specified by @a size_num parameter and that must not be
  * modified by the function
  */
-#        define MHD_FUNC_PARAM_IN_SIZE_(param_num,size_num) \
+#        define MHD_FN_PARAM_IN_SIZE_(param_num,size_num) \
   __attribute__ ((access (read_only,pram_num,size_num)))
-#      endif /* !MHD_FUNC_PARAM_IN_SIZE_ */
+#      endif /* !MHD_FN_PARAM_IN_SIZE_ */
 
-#      if ! defined(MHD_FUNC_PARAM_OUT_)
+ /* Override detected value of MHD_FN_PARAM_OUT_ by defining it before
+  * including the header */
+#      if ! defined(MHD_FN_PARAM_OUT_)
 /**
- * MHD_FUNC_PARAM_OUT_ indicates function parameter points to data
+ * MHD_FN_PARAM_OUT_ indicates function parameter points to data
  * that could be written by the function, but not read.
  */
-#        define MHD_FUNC_PARAM_OUT_(param_num) \
+#        define MHD_FN_PARAM_OUT_(param_num) \
   __attribute__ ((access (write_only,pram_num)))
-#      endif /* !MHD_FUNC_PARAM_OUT_ */
+#      endif /* !MHD_FN_PARAM_OUT_ */
 
-#      if ! defined(MHD_FUNC_PARAM_OUT_SIZE_)
+ /* Override detected value of MHD_FN_PARAM_OUT_SIZE_ by defining it before
+  * including the header */
+#      if ! defined(MHD_FN_PARAM_OUT_SIZE_)
 /**
- * MHD_FUNC_PARAM_OUT_SIZE_ indicates function parameter points to data
+ * MHD_FN_PARAM_OUT_SIZE_ indicates function parameter points to data
  * which size is specified by @a size_num parameter and that could be
  * written by the function, but not read.
  */
-#        define MHD_FUNC_PARAM_OUT_SIZE_(param_num,size_num) \
+#        define MHD_FN_PARAM_OUT_SIZE_(param_num,size_num) \
   __attribute__ ((access (write_only,pram_num,size_num)))
-#      endif /* !MHD_FUNC_PARAM_OUT_SIZE_ */
+#      endif /* !MHD_FN_PARAM_OUT_SIZE_ */
 
-#      if ! defined(MHD_FUNC_PARAM_INOUT_)
+ /* Override detected value of MHD_FN_PARAM_INOUT_ by defining it before
+  * including the header */
+#      if ! defined(MHD_FN_PARAM_INOUT_)
 /**
- * MHD_FUNC_PARAM_INOUT_ indicates function parameter points to data
+ * MHD_FN_PARAM_INOUT_ indicates function parameter points to data
  * that could be both read and written by the function.
  */
-#        define MHD_FUNC_PARAM_INOUT_(param_num) \
+#        define MHD_FN_PARAM_INOUT_(param_num) \
   __attribute__ ((access (read_write,pram_num)))
-#      endif /* !MHD_FUNC_PARAM_INOUT_ */
+#      endif /* !MHD_FN_PARAM_INOUT_ */
 
-#      if ! defined(MHD_FUNC_PARAM_INOUT_SIZE_)
+ /* Override detected value of MHD_FN_PARAM_INOUT_SIZE_ by defining it before
+  * including the header */
+#      if ! defined(MHD_FN_PARAM_INOUT_SIZE_)
 /**
- * MHD_FUNC_PARAM_INOUT_SIZE_ indicates function parameter points to data
+ * MHD_FN_PARAM_INOUT_SIZE_ indicates function parameter points to data
  * which size is specified by @a size_num parameter and that could be
  * both read and written by the function.
  */
-#        define MHD_FUNC_PARAM_INOUT_SIZE_(param_num,size_num) \
+#        define MHD_FN_PARAM_INOUT_SIZE_(param_num,size_num) \
   __attribute__ ((access (read_write,pram_num,size_num)))
-#      endif /* !MHD_FUNC_PARAM_INOUT_SIZE_ */
+#      endif /* !MHD_FN_PARAM_INOUT_SIZE_ */
 
 #    endif /* access */
 
+ /* Override detected value of MHD_FN_PAR_FD_READ_ by defining it before
+  * including the header */
+#    if __has_attribute (fd_arg_read) && \
+  ! defined(MHD_FN_PAR_FD_READ_)
+/**
+ * MHD_FN_PARAM_IN_ indicates function parameter is file descriptor that
+ * must be in open state and available for reading
+ */
+#      define MHD_FN_PAR_FD_READ_(param_num) \
+  __attribute__ ((fd_arg_read (param_num)))
+#    endif /* fd_arg_read && !MHD_FN_PAR_FD_READ_ */
+
+ /* Override detected value of MHD_FN_PAR_CSTR_ by defining it before
+  * including the header */
+#    if __has_attribute (null_terminated_string_arg) && \
+  ! defined(MHD_FN_PAR_CSTR_)
+/**
+ * MHD_FN_PARAM_IN_ indicates function parameter is file descriptor that
+ * must be in open state and available for reading
+ */
+#      define MHD_FN_PAR_CSTR_(param_num) \
+  __attribute__ ((null_terminated_string_arg (param_num)))
+#    endif /* null_terminated_string_arg && !MHD_FN_PAR_CSTR_ */
+
+ /* Override detected value of MHD_FN_RETURNS_NONNULL_ by defining it before
+  * including the header */
 #    if __has_attribute (returns_nonnull) && \
-  ! defined(MHD_FUNC_RETURNS_NONNULL_)
+  ! defined(MHD_FN_RETURNS_NONNULL_)
 /**
- * MHD_FUNC_RETURNS_NONNULL_ indicates that function never returns NULL.
+ * MHD_FN_RETURNS_NONNULL_ indicates that function never returns NULL.
  */
-#      define MHD_FUNC_RETURNS_NONNULL_ __attribute__ ((returns_nonnull))
-#    endif /* returns_nonnull && !MHD_FUNC_RETURNS_NONNULL_ */
+#      define MHD_FN_RETURNS_NONNULL_ __attribute__ ((returns_nonnull))
+#    endif /* returns_nonnull && !MHD_FN_RETURNS_NONNULL_ */
 
-#    if __has_attribute (access) && \
-  ! defined(MHD_FUNC_PARAM_IN_)
+ /* Override detected value of MHD_FN_WARN_UNUSED_RESULT_ by defining it before
+  * including the header */
+#    if __has_attribute (warn_unused_result) && \
+  ! defined(MHD_FN_WARN_UNUSED_RESULT_)
 /**
- * MHD_FUNC_PARAM_IN_ indicates function parameter points to data
- * that must not be modified by the function
+ * MHD_FN_WARN_UNUSED_RESULT_ that function return value should not be ignored
  */
-#      define MHD_FUNC_PARAM_IN_(param_num) \
-  __attribute__ ((access (read_only,pram_num)))
-#    endif /* returns_nonnull && !MHD_FUNC_RETURNS_NONNULL_ */
+#      define MHD_FN_WARN_UNUSED_RESULT_ \
+  __attribute__ ((warn_unused_result))
+#    endif /* warn_unused_result && !MHD_FN_WARN_UNUSED_RESULT_ */
 
 #  endif /* __has_attribute */
 #endif /* ! MHD_NO_FUNC_ATTRIBUTES */
 
+ /* Override detected value of MHD_FN_PARAM_DYN_ARR_SIZE_() by defining it
+  * before including the header */
 #ifndef MHD_FN_PARAM_DYN_ARR_SIZE_
 #  if MHD_C_MINV_99
 #    if MHD_USE_VLA
@@ -955,6 +996,8 @@ typedef SOCKET MHD_socket;
 #  endif /* ! MHD_C_MINV_99 */
 #endif /* MHD_FN_PARAM_DYN_ARR_SIZE_ */
 
+ /* Override detected value of MHD_FN_PARAM_FIX_ARR_SIZE_() by defining it
+  * before including the header */
 #ifndef MHD_FN_PARAM_FIX_ARR_SIZE_
 #  if MHD_C_MINV_99
      /* The size must be constant expression */
@@ -966,42 +1009,51 @@ typedef SOCKET MHD_socket;
 #endif /* MHD_FN_PARAM_FIX_ARR_SIZE_ */
 
 
-#ifndef MHD_FUNC_CONST_
-#  define MHD_FUNC_CONST_ /* empty */
-#endif /* ! MHD_FUNC_CONST_ */
-#ifndef MHD_FUNC_PURE_
-#  define MHD_FUNC_PURE_ /* empty */
-#endif /* ! MHD_FUNC_PURE_ */
-#ifndef MHD_FUNC_MUST_CHECK_RESULT_
-#  define MHD_FUNC_MUST_CHECK_RESULT_ /* empty */
-#endif /* ! MHD_FUNC_MUST_CHECK_RESULT_ */
-#ifndef MHD_FUNC_PARAM_NONNULL_
-#  define MHD_FUNC_PARAM_NONNULL_(ignored) /* empty */
-#endif /* ! MHD_FUNC_PARAM_NONNULL_ */
-#ifndef MHD_FUNC_PARAM_NONNULL_ALL_
-#  define MHD_FUNC_PARAM_NONNULL_ALL_ /* empty */
-#endif /* ! MHD_FUNC_PARAM_NONNULL_ALL_ */
-#if ! defined(MHD_FUNC_PARAM_IN_)
-#  define MHD_FUNC_PARAM_IN_(param_num) /* empty */
-#endif /* !MHD_FUNC_PARAM_IN_ */
-#if ! defined(MHD_FUNC_PARAM_IN_SIZE_)
-#  define MHD_FUNC_PARAM_IN_SIZE_(param_num,size_num) /* empty */
-#endif /* !MHD_FUNC_PARAM_IN_SIZE_ */
-#if ! defined(MHD_FUNC_PARAM_OUT_)
-#  define MHD_FUNC_PARAM_OUT_(param_num) /* empty */
-#endif /* !MHD_FUNC_PARAM_OUT_ */
-#if ! defined(MHD_FUNC_PARAM_OUT_SIZE_)
-#  define MHD_FUNC_PARAM_OUT_SIZE_(param_num,size_num) /* empty */
-#endif /* !MHD_FUNC_PARAM_OUT_SIZE_ */
-#if ! defined(MHD_FUNC_PARAM_INOUT_)
-#  define MHD_FUNC_PARAM_INOUT_(param_num) /* empty */
-#endif /* !MHD_FUNC_PARAM_INOUT_ */
-#if ! defined(MHD_FUNC_PARAM_INOUT_SIZE_)
-#  define MHD_FUNC_PARAM_INOUT_SIZE_(param_num,size_num) /* empty */
-#endif /* !MHD_FUNC_PARAM_INOUT_SIZE_ */
-#ifndef MHD_FUNC_RETURNS_NONNULL_
-#  define MHD_FUNC_RETURNS_NONNULL_ /* empty */
-#endif /* ! MHD_FUNC_RETURNS_NONNULL_ */
+#ifndef MHD_FN_CONST_
+#  define MHD_FN_CONST_       /* empty */
+#endif /* ! MHD_FN_CONST_ */
+#ifndef MHD_FN_PURE_
+#  define MHD_FN_PURE_        /* empty */
+#endif /* ! MHD_FN_PURE_ */
+#ifndef MHD_FN_MUST_CHECK_RESULT_
+#  define MHD_FN_MUST_CHECK_RESULT_   /* empty */
+#endif /* ! MHD_FN_MUST_CHECK_RESULT_ */
+#ifndef MHD_FN_PARAM_NONNULL_
+#  define MHD_FN_PARAM_NONNULL_(param_num)    /* empty */
+#endif /* ! MHD_FN_PARAM_NONNULL_ */
+#ifndef MHD_FN_PARAM_NONNULL_ALL_
+#  define MHD_FN_PARAM_NONNULL_ALL_   /* empty */
+#endif /* ! MHD_FN_PARAM_NONNULL_ALL_ */
+#ifndef MHD_FN_PARAM_IN_
+#  define MHD_FN_PARAM_IN_(param_num) /* empty */
+#endif /* !MHD_FN_PARAM_IN_ */
+#ifndef MHD_FN_PARAM_IN_SIZE_
+#  define MHD_FN_PARAM_IN_SIZE_(param_num,size_num)   /* empty */
+#endif /* !MHD_FN_PARAM_IN_SIZE_ */
+#ifndef MHD_FN_PARAM_OUT_
+#  define MHD_FN_PARAM_OUT_(param_num)        /* empty */
+#endif /* !MHD_FN_PARAM_OUT_ */
+#ifndef MHD_FN_PARAM_OUT_SIZE_
+#  define MHD_FN_PARAM_OUT_SIZE_(param_num,size_num)  /* empty */
+#endif /* !MHD_FN_PARAM_OUT_SIZE_ */
+#ifndef MHD_FN_PARAM_INOUT_
+#  define MHD_FN_PARAM_INOUT_(param_num)      /* empty */
+#endif /* !MHD_FN_PARAM_INOUT_ */
+#ifndef MHD_FN_PARAM_INOUT_SIZE_
+#  define MHD_FN_PARAM_INOUT_SIZE_(param_num,size_num)        /* empty */
+#endif /* !MHD_FN_PARAM_INOUT_SIZE_ */
+#ifndef MHD_FN_PAR_FD_READ_
+#  define MHD_FN_PAR_FD_READ_(param_num)        /* empty */
+#endif /* !MHD_FN_PAR_FD_READ_ */
+#ifndef MHD_FN_PAR_CSTR_
+#  define MHD_FN_PAR_CSTR_(param_num)   /* empty */
+#endif /* ! MHD_FN_PAR_CSTR_ */
+#ifndef MHD_FN_RETURNS_NONNULL_
+#  define MHD_FN_RETURNS_NONNULL_       /* empty */
+#endif /* ! MHD_FN_RETURNS_NONNULL_ */
+#ifndef MHD_FN_WARN_UNUSED_RESULT_
+#  define MHD_FN_WARN_UNUSED_RESULT_    /* empty */
+#endif /* ! MHD_FN_WARN_UNUSED_RESULT_ */
 
 /* ********** (a) Core HTTP Processing ************ */
 
@@ -1044,9 +1096,9 @@ struct MHD_Stream;
  * stream.  However, MHD will only show one request per data
  * stream to the client at any given time.
  *
- * Replaces `struct MHD_Connection`, renamed to better reflect
- * what this object truly represents to the application using
- * MHD.
+ * Replaces `struct MHD_Connection` in the API prior to version 2.0.0,
+ * renamed to better reflect what this object truly represents to
+ * the application using MHD.
  *
  * @ingroup request
  */
@@ -1653,14 +1705,16 @@ enum MHD_StatusCode
 };
 
 /**
- * Get text description for the error code.
- * @param code the code to get description for
+ * Get text description for the MHD error code.
+ *
+ * This function works for @b MHD error codes, not for @b HTTP status codes.
+ * @param code the MHD code to get description for
  * @return the pointer to the text description,
- *         NULL if status code in not known. // TODO: the same for similar
+ *         NULL if MHD code in not known.
  */
 MHD_EXTERN_ const struct MHD_String *
 MHD_status_code_to_string (enum MHD_StatusCode code)
-MHD_FUNC_CONST_ MHD_FUNC_RETURNS_NONNULL_;
+MHD_FN_CONST_;
 
 /**
  * HTTP methods explicitly supported by MHD.  Note that for
@@ -1753,8 +1807,8 @@ enum MHD_HTTP_Method
  *         or not known.
  */
 MHD_EXTERN_ const struct MHD_String *
-MHD_get_http_method_string (enum MHD_HTTP_Method method)
-MHD_FUNC_CONST_ MHD_FUNC_RETURNS_NONNULL_;
+MHD_http_method_to_string (enum MHD_HTTP_Method method)
+MHD_FN_CONST_;
 
 /**
  * @defgroup methods HTTP methods
@@ -2445,7 +2499,7 @@ enum MHD_HTTP_PostEncoding
  *         socket closure).
  */
 typedef const struct MHD_Action *
-(MHD_FUNC_PARAM_NONNULL_ (2) MHD_FUNC_PARAM_NONNULL_ (3)
+(MHD_FN_PARAM_NONNULL_ (2) MHD_FN_PARAM_NONNULL_ (3)
  *MHD_RequestCallback)(void *cls,
                        struct MHD_Request *request,
                        const struct MHD_String *path,
@@ -2460,15 +2514,15 @@ typedef const struct MHD_Action *
  *
  * @param req_cb the function to be called for incoming requests
  * @param req_cb_cls the closure for @a cb
- * @return NULL on error
+ * @return the pointer to the new object on success,
+ *         NULL on error (like out-of-memory)
  */
 MHD_EXTERN_ struct MHD_Daemon *
 MHD_daemon_create (MHD_RequestCallback req_cb,
                    void *req_cb_cls)
-MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_IN_(1);
+MHD_FN_PARAM_NONNULL_ (1) MHD_FN_PARAM_IN_(1);
 
 
-// FIXME: Updated doxy
 /**
  * Start a webserver.
  * This function:
@@ -2484,7 +2538,7 @@ MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_IN_(1);
  */
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_start (struct MHD_Daemon *daemon)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -2496,11 +2550,6 @@ MHD_FUNC_PARAM_NONNULL_ (1);
  * #MHD_stop_daemon has been called (as it is theoretically possible
  * that an existing thread is still using it).
  *
- * Note that some thread modes require the caller to have passed
- * #MHD_USE_ITC when using this API.  If this daemon is
- * in one of those modes and this option was not given to
- * #MHD_start_daemon, this function will return #MHD_INVALID_SOCKET.
- *
  * @param[in,out] daemon the daemon to stop accepting new connections for
  * @return the old listen socket on success, #MHD_INVALID_SOCKET if
  *         the daemon was already not listening anymore, or
@@ -2509,7 +2558,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
  */
 MHD_EXTERN_ MHD_socket
 MHD_daemon_quiesce (struct MHD_Daemon *daemon)
-MHD_FUNC_PARAM_NONNULL_ALL_ MHD_FUNC_PARAM_INOUT_(1);
+MHD_FN_PARAM_NONNULL_ALL_ MHD_FN_PARAM_INOUT_(1);
 
 
 /**
@@ -2518,9 +2567,9 @@ MHD_FUNC_PARAM_NONNULL_ALL_ MHD_FUNC_PARAM_INOUT_(1);
  * @param[in] daemon daemon to stop
  * @ingroup event
  */
-MHD_EXTERN_ void
+MHD_EXTERN_ void // FIXME: enum MHD_StatusCode ?
 MHD_daemon_destroy (struct MHD_Daemon *daemon)
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 
 /* ********************* daemon options ************** */
@@ -2535,30 +2584,35 @@ MHD_FUNC_PARAM_NONNULL_ALL_;
  * @ingroup logging
  */
 typedef void
-(*MHD_LoggingCallback)(void *cls,
+(MHD_FN_PARAM_NONNULL_(3)
+ MHD_FN_PAR_CSTR_(3)
+ *MHD_LoggingCallback)(void *cls,
                        enum MHD_StatusCode sc,
                        const char *fm,
                        va_list ap);
 
 /**
  * Set logging method.  Specify NULL to disable logging entirely.  By
- * default (if this option is not given), we log error messages to
+ * default (if this option is not given), MHD writes log messages to
  * stderr.
  *
+ * In case of special builds for embedded projects:
  * Logging will not work if MHD was compiled with "--disable-logging".
  * (The function will still be exported, but the @a logger will never
  * be invoked.)
  *
  * @param[in,out] daemon which instance to setup logging for
- * @param logger function to invoke
+ * @param logger function to invoke,
+ *               NULL to disable logging,
  * @param logger_cls closure for @a logger
- * @return #MHD_SC_FEATURE_DISABLED
+ * @return #MHD_SC_OK on success,
+ *         #MHD_SC_FEATURE_DISABLED if logging is disabled for this MHD build
  */
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_logger (struct MHD_Daemon *daemon,
                        MHD_LoggingCallback logger,
                        void *logger_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -2568,7 +2622,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
  */
 #define MHD_daemon_disable_logging(daemon) \
   MHD_daemon_set_logger ((daemon), \
-                         NULL,   \
+                         MHD_STATIC_CAST_(MHD_LoggingCallback,NULL),   \
                          NULL)
 
 
@@ -2733,7 +2787,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_option_tcp_fastopen (struct MHD_Daemon *daemon,
                                     enum MHD_FastOpenOption option,
                                     unsigned int queue_length)
-MHD_FUNC_PARAM_NONNULL_ALL_ MHD_FUNC_MUST_CHECK_RESULT_;
+MHD_FN_PARAM_NONNULL_ALL_ MHD_FN_MUST_CHECK_RESULT_;
 
 
 /**
@@ -2792,7 +2846,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_bind_port (struct MHD_Daemon *daemon,
                       enum MHD_AddressFamily af,
                       uint16_t port)
-MHD_FUNC_PARAM_NONNULL_ALL_ MHD_FUNC_MUST_CHECK_RESULT_;
+MHD_FN_PARAM_NONNULL_ALL_ MHD_FN_MUST_CHECK_RESULT_;
 
 
 /**
@@ -2813,7 +2867,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_bind_socket_address (struct MHD_Daemon *daemon,
                                 const struct sockaddr *sa,
                                 size_t sa_len)
-MHD_FUNC_PARAM_NONNULL_ALL_ MHD_FUNC_MUST_CHECK_RESULT_;
+MHD_FN_PARAM_NONNULL_ALL_ MHD_FN_MUST_CHECK_RESULT_;
 
 // TODO: Sort values and assign numbers
 enum MHD_DeamonOptionUInt
@@ -2872,7 +2926,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_option_uint (struct MHD_Daemon *daemon,
                             enum MHD_DeamonOptionUInt option,
                             unsigned int value)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 // FIXME: Alternative or additional implementation.
 
@@ -2909,7 +2963,7 @@ MHD_daemon_set_option_uint (
   struct MHD_Daemon *daemon,
   size_t num_entries,
   struct MHD_DaemonOptioniUIntEntry opt_val[MHD_C99_ (static num_entries)])
-MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_NONNULL_ (3);
+MHD_FN_PARAM_NONNULL_ (1) MHD_FN_PARAM_NONNULL_ (3);
 #endif
 // TODO: combine all types of options into single list with union
 /**
@@ -2932,7 +2986,7 @@ MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_NONNULL_ (3);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_listen_socket (struct MHD_Daemon *daemon,
                           MHD_socket listen_socket)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 /**
  * Event loop internal syscalls supported by MHD.
@@ -2976,7 +3030,7 @@ enum MHD_EventLoopSyscall
 MHD_EXTERN_ enum MHD_StatusCode // FIXME - corrected
 MHD_daemon_event_loop (struct MHD_Daemon *daemon,
                        enum MHD_EventLoopSyscall els)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -3102,7 +3156,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_protocol_strict_level (struct MHD_Daemon *daemon,
                                   enum MHD_ProtocolStrictLevel sl,
                                   enum MHD_UseStictLevel how)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 // FIXME: do we want to keep it as generic API?
 // FIXME: other TLS backends will not support it.
@@ -3116,7 +3170,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_option_string (struct MHD_Daemon *daemon,
                               enum foo,
                               const char *value)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 // TODO: three options
 /**
@@ -3136,8 +3190,8 @@ MHD_daemon_tls_key_and_cert_from_memory (struct 
MHD_Daemon *daemon,
                                          const char *mem_key,
                                          const char *mem_cert,
                                          const char *pass)
-MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_NONNULL_ (2)
-MHD_FUNC_PARAM_NONNULL_ (3);
+MHD_FN_PARAM_NONNULL_ (1) MHD_FN_PARAM_NONNULL_ (2)
+MHD_FN_PARAM_NONNULL_ (3);
 
 
 /**
@@ -3151,7 +3205,7 @@ MHD_FUNC_PARAM_NONNULL_ (3);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_tls_mem_dhparams (struct MHD_Daemon *daemon,
                              const char *dh)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 /**
  * Memory pointer for the certificate (ca.pem) to be used by the
@@ -3164,7 +3218,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_tls_mem_trust (struct MHD_Daemon *daemon,
                           const char *mem_trust)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /* ********************** (d) TLS support ********************** */
@@ -3206,7 +3260,7 @@ enum MHD_TlsBackend
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_tls_backend (struct MHD_Daemon *daemon,
                             enum MHD_TlsBackend backend)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -3261,7 +3315,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_tls_psk_callback (struct MHD_Daemon *daemon,
                                  MHD_PskServerCredentialsCallback psk_cb,
                                  void *psk_cb_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -3278,7 +3332,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_gnutls_credentials (struct MHD_Daemon *daemon,
                                int gnutls_credentials)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -3305,7 +3359,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_gnutls_key_and_cert_from_callback (struct MHD_Daemon *daemon,
                                               void *cb)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 // Callback invoked between full initialization of MHD
 // during MHD_daemon_start() and actual event loop
@@ -3320,7 +3374,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_daemon_ready_callback (struct MHD_Daemon *daemon,
                                       MHD_DaemonReadyCallback cb,
                                       void *cb)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -3351,7 +3405,7 @@ MHD_EXTERN_ void
 MHD_daemon_accept_policy (struct MHD_Daemon *daemon,
                           MHD_AcceptPolicyCallback apc,
                           void *apc_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -3367,7 +3421,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
  * @param uri the full URI from the HTTP request including parameters (after 
'?')
  */
 typedef void
-(MHD_FUNC_PARAM_NONNULL_ (2) MHD_FUNC_PARAM_NONNULL_ (3)
+(MHD_FN_PARAM_NONNULL_ (2) MHD_FN_PARAM_NONNULL_ (3)
  *MHD_EarlyUriLogCallback)(void *cls,
                            struct MHD_Request *request,
                            const struct MHD_String *full_uri);
@@ -3386,7 +3440,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_early_uri_logger (struct MHD_Daemon *daemon,
                                  MHD_EarlyUriLogCallback cb,
                                  void *cb_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -3411,22 +3465,52 @@ enum MHD_ConnectionNotificationCode
 
 };
 
+/**
+ * Extra details for connection notifications.
+ * Currently not used
+ */
+union MHD_ConnectionNotificationDetails
+{
+  /**
+   * Unused
+   */
+  int reserved1;
+};
+
+
+/**
+ * The connection notification data structure
+ */
+struct MHD_ConnectionNotificationData
+{
+  /**
+   * The connection handle
+   */
+  struct MHD_Connection *connection;
+  /**
+   * The code of the event
+   */
+  enum MHD_ConnectionNotificationCode code;
+  /**
+   * Event details
+   */
+  union MHD_ConnectionNotificationDetails details;
+};
+
 
 /**
  * Signature of the callback used by MHD to notify the
  * application about started/stopped network connections
  *
  * @param cls client-defined closure
- * @param connection connection handle
- * @param toe reason for connection notification
+ * @param data the details about the event
  * @see #MHD_daemon_set_notify_connection()
  * @ingroup request
  */
 typedef void
-(MHD_FUNC_PARAM_NONNULL_ (2)
+(MHD_FN_PARAM_NONNULL_ (2)
  *MHD_NotifyConnectionCallback)(void *cls,
-                                struct MHD_Connection *connection,
-                                enum MHD_ConnectionNotificationCode toe);
+                                struct MHD_ConnectionNotificationData *data);
 
 
 /**
@@ -3441,13 +3525,11 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_notify_connection (struct MHD_Daemon *daemon,
                                   MHD_NotifyConnectionCallback ncc,
                                   void *ncc_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
- * The `enum MHD_ConnectionNotificationCode` specifies types
- * of connection notifications.
- * TODO: document possible extensibility
+ * The type of stream notifications.
  * @ingroup request
  */
 enum MHD_StreamNotificationCode
@@ -3466,17 +3548,48 @@ enum MHD_StreamNotificationCode
 
 };
 
-// TODO: finish
-struct MHD_StreamNotificationParam
+/**
+ * Additional information about stream started event
+ */
+struct MHD_StreamNotificationDetailStarted
+{
+  /**
+   * Set to #MHD_YES of the stream was started by client
+   */
+  enum MHD_Bool by_client;
+};
+
+/**
+ * Additional information about stream events
+ */
+union MHD_StreamNotificationDetail
 {
-  struct MHD_Stream *stream; // const? NO, may prevent introspection calls
+  /**
+   * Information for event #MHD_STREAM_NOTIFY_STARTED
+   */
+  struct MHD_StreamNotificationDetailStarted started;
+};
+
+/**
+ * Stream notification data structure
+ */
+struct MHD_StreamNotificationData
+{
+  /**
+   * The handle of the stream
+   */
+  struct MHD_Stream *stream;
+  /**
+   * The code of the event
+   */
   enum MHD_StreamNotificationCode code;
-  union
-  {
-    int reserved1;
-  } details; // TODO: complete, add to other notification
+  /**
+   * Detailed information about notification event
+   */
+  union MHD_StreamNotificationDetail details;
 };
 
+
 /**
  * Signature of the callback used by MHD to notify the
  * application about started/stopped data stream
@@ -3484,16 +3597,15 @@ struct MHD_StreamNotificationParam
  * with 1:1 match.
  *
  * @param cls client-defined closure
- * @param stream the stream handle
- * @param toe reason for connection notification
+ * @param data the details about the event
  * @see #MHD_OPTION_NOTIFY_CONNECTION
  * @ingroup request
  */
 typedef void
-(MHD_FUNC_PARAM_NONNULL_ (2)
+(MHD_FN_PARAM_NONNULL_ (2)
  *MHD_NotifyStreamCallback)(
    void *cls,
-   const struct MHD_StreamNotificationParam *notification);
+   const struct MHD_StreamNotificationData *data);
 
 
 /**
@@ -3508,7 +3620,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_notify_stream (struct MHD_Daemon *daemon,
                               MHD_NotifyStreamCallback nsc,
                               void *nsc_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 // TODO: Sort and assign values
 enum MHD_DaemonOptionSizet
@@ -3547,7 +3659,7 @@ MHD_EXTERN_ void
 MHD_daemon_option_set_sizet (struct MHD_Daemon *daemon,
                              enum MHD_DaemonOptionSizet option,
                              size_t value)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 // FIXME: end of transform everything to option
 
 union MHD_DaemonOptionValue
@@ -3712,7 +3824,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_options_set(struct MHD_Daemon *daemon,
                        const struct MHD_DaemonOptionAndValue *options,
                        size_t options_max_num)
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 
 /**
@@ -3865,10 +3977,9 @@ enum MHD_ThreadingPollingMode
   // TODO: update doxy
   /**
    * MHD should create its own thread for listening and furthermore create
-   * another thread per request. Threads may be re-used on the same
-   * connection.  Use this if handling requests is CPU-intensive or blocking,
-   * your application is thread-safe and you have plenty of memory (per
-   * connection).
+   * additional threads per every connection.  Use this if handling requests
+   * is CPU-intensive or blocking, your application is thread-safe and you
+   * have plenty of memory (per connection).
    */
   MHD_TM_THREAD_PER_CONNECTION = 17
 
@@ -3888,7 +3999,7 @@ enum MHD_ThreadingPollingMode
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_set_threading_mode (struct MHD_Daemon *daemon,
                                enum MHD_ThreadingMode tm)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 // thread safety?
@@ -4283,7 +4394,7 @@ MHD_daemon_process_ext_events(
   MHD_SocketsPollCallbackSimple poll_simple,
   MHD_SocketsPollCallbackFull poll_full,
   void *poll_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -4368,9 +4479,9 @@ MHD_get_watched_fds (
   unsigned int num_elements,
   struct MHD_WatchedFD wfds[MHD_FN_PARAM_DYN_ARR_SIZE_(num_elements)],
   uint_fast64_t *max_wait)
-MHD_FUNC_PARAM_NONNULL_ (1)
-MHD_FUNC_PARAM_OUT_(3) MHD_FUNC_PARAM_NONNULL_(3)
-MHD_FUNC_PARAM_OUT_(4) MHD_FUNC_PARAM_NONNULL_(4);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_OUT_(3) MHD_FN_PARAM_NONNULL_(3)
+MHD_FN_PARAM_OUT_(4) MHD_FN_PARAM_NONNULL_(4);
 
 
 enum MHD_WatchedFdAction
@@ -4437,9 +4548,9 @@ MHD_get_watched_fds_update (
   unsigned int num_elements,
   struct MHD_WatchedFdUpdate wfdus[MHD_FN_PARAM_DYN_ARR_SIZE_(num_elements)],
   uint_fast64_t *max_wait)
-MHD_FUNC_PARAM_NONNULL_ (1)
-MHD_FUNC_PARAM_OUT_(3) MHD_FUNC_PARAM_NONNULL_(3)
-MHD_FUNC_PARAM_OUT_(4) MHD_FUNC_PARAM_NONNULL_(4);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_OUT_(3) MHD_FN_PARAM_NONNULL_(3)
+MHD_FN_PARAM_OUT_(4) MHD_FN_PARAM_NONNULL_(4);
 ;
 
 
@@ -4459,8 +4570,8 @@ MHD_process_watched_fds (
   struct MHD_Daemon *daemon,
   unsigned int num_elements,
   const struct MHD_WatchedFD fds[MHD_FN_PARAM_DYN_ARR_SIZE_ (num_elements)])
-MHD_FUNC_PARAM_NONNULL_ (1)
-MHD_FUNC_PARAM_IN_(3) MHD_FUNC_PARAM_NONNULL_(3);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_IN_(3) MHD_FN_PARAM_NONNULL_(3);
 
 
 // FIXME: convert introspecition
@@ -4488,8 +4599,8 @@ MHD_FUNC_PARAM_IN_(3) MHD_FUNC_PARAM_NONNULL_(3);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_ext_polling_get_max_wait (struct MHD_Daemon *daemon,
                                      uint_fast64_t *timeout)
-MHD_FUNC_PARAM_NONNULL_ (1)
-MHD_FUNC_PARAM_NONNULL_ (2) MHD_FUNC_PARAM_OUT_(2);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_NONNULL_ (2) MHD_FN_PARAM_OUT_(2);
 
 #ifdef alterantive
 // FIXME: how to return error? For example, unsupported mode
@@ -4537,7 +4648,7 @@ MHD_daemon_external_event_loop_get_max_wait (struct 
MHD_Daemon *d);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_process_blocking (struct MHD_Daemon *daemon,
                              uint_fast64_t microsec)
-MHD_FUNC_PARAM_NONNULL_(1)
+MHD_FN_PARAM_NONNULL_(1)
 
 // TODO: convert to macro, introscpection
 /**
@@ -4566,8 +4677,8 @@ MHD_FUNC_PARAM_NONNULL_(1)
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_process_nonblocking (struct MHD_Daemon *daemon,
                                 uint_fast64_t *next_max_wait)
-MHD_FUNC_PARAM_NONNULL_(1)
-MHD_FUNC_PARAM_OUT_(2);
+MHD_FN_PARAM_NONNULL_(1)
+MHD_FN_PARAM_OUT_(2);
 // FIXME: two different calls. Having both "microsec" for maximum blocking
 // time and the next timeout for external processing is too confusing
 
@@ -4604,8 +4715,8 @@ MHD_daemon_add_connection (struct MHD_Daemon *daemon,
                            size_t addrlen,
                            const struct sockaddr *addr,
                            void *connection_cls)
-MHD_FUNC_PARAM_NONNULL_ (1)
-MHD_FUNC_PARAM_IN_SIZE_(4,3);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_IN_SIZE_(4,3);
 
 
 /* ********************* connection options ************** */
@@ -4732,7 +4843,7 @@ MHD_connection_options_set(
   struct MHD_Connection *connection,
   const struct MHD_ConnectionOptionAndValue *options,
   size_t options_max_num)
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 
 /**
@@ -4881,7 +4992,7 @@ struct MHD_NameAndValue
 /**
  * Name, value and kind (type) of data
  */
-struct MHD_NameValueType // TODO: MHD_NameValueKind
+struct MHD_NameValueKind
 {
   /**
    * The name and the value of the field
@@ -4910,9 +5021,9 @@ struct MHD_NameValueType // TODO: MHD_NameValueKind
  * @ingroup request
  */
 typedef enum MHD_Bool
-(MHD_FUNC_PARAM_NONNULL_ (2)
+(MHD_FN_PARAM_NONNULL_ (2)
  *MHD_NameValueIterator)(void *cls,
-                         const struct MHD_NameValueType *nvt);
+                         const struct MHD_NameValueKind *nvt);
 
 
 /**
@@ -4931,7 +5042,7 @@ MHD_request_get_values_cb (struct MHD_Request *request,
                            enum MHD_ValueKind kind,
                            MHD_NameValueIterator iterator,
                            void *iterator_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -4956,9 +5067,9 @@ MHD_request_get_values_list (
   struct MHD_Request *request,
   enum MHD_ValueKind kind,
   size_t num_elements,
-  struct MHD_NameValueType elements[MHD_FN_PARAM_DYN_ARR_SIZE_ (num_elements)])
-MHD_FUNC_PARAM_NONNULL_ (1)
-MHD_FUNC_PARAM_NONNULL_ (4) MHD_FUNC_PARAM_OUT_(4);
+  struct MHD_NameValueKind elements[MHD_FN_PARAM_DYN_ARR_SIZE_ (num_elements)])
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_NONNULL_ (4) MHD_FN_PARAM_OUT_(4);
 
 
 /**
@@ -4978,7 +5089,8 @@ MHD_EXTERN_ const struct MHD_String *
 MHD_request_get_value (struct MHD_Request *request,
                        enum MHD_ValueKind kind,
                        const char *key)
-MHD_FUNC_PARAM_NONNULL_ (1); // TODO: add proper marks
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_NONNULL_ (3) MHD_FN_PAR_CSTR_(3);
 
 
 // FIXME: gana? table for RFC 7541...
@@ -4987,7 +5099,7 @@ enum MHD_PredefinedHeader;
 
 // FIXME: Updated
 /**
- * Get last occurence of a particular header value under
+ * Get last occurrence of a particular header value under
  * the given @a skt.
  *
  * The pointer to the string in @a value is valid until the response
@@ -5006,8 +5118,8 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_request_lookup_value_by_static_header (struct MHD_Request *request,
                                            enum MHD_ValueKind kind,
                                            enum MHD_PredefinedHeader skt,
-                                           struct MHD_String *value)
-MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_NONNULL_ (4); // TODO: convert like 
previous
+                                           struct MHD_StringNullable *value)
+MHD_FN_PARAM_NONNULL_ (1) MHD_FN_PARAM_NONNULL_ (4); // TODO: convert like 
previous
 
 
 /**
@@ -5102,10 +5214,14 @@ enum MHD_HTTP_StatusCode
 /**
  * Returns the string status for a response code.
  *
- * If we don't have a string for a status code return NULL. // FIXME: return 
empty string? Safer, easy to detect,
+ * This function works for @b HTTP status code, not for @b MHD error codes/
+ * @param code the HTTP code to get text representation for
+ * @return the pointer to the text representation,
+ *         NULL if HTTP status code in not known.
  */
-MHD_EXTERN_ const char *
-MHD_status_code_to_string (enum MHD_HTTP_StatusCode code);
+MHD_EXTERN_ const struct MHD_String *
+MHD_HTTP_status_code_to_string (enum MHD_HTTP_StatusCode code)
+MHD_FN_CONST_;
 
 /** @} */ /* end of group httpcode */
 
@@ -5131,20 +5247,36 @@ enum MHD_HTTP_ProtocolVersion
 /**
  * Return the string representation of the requested HTTP version.
  * Note: this is suitable mainly for logging and similar proposes as
- * HTTP/2 (and later) is not used inside the protocol.
+ * HTTP/2 (and later) is not used inside the HTTP protocol.
  * @param pv the protocol version
  * @return the string representation of the protocol version,
- *         empty string for invalid values // FIXME: return NULL?
+ *         NULL for invalid values
  */
-MHD_EXTERN_ const char *
-MHD_protocol_version_to_string (enum MHD_HTTP_ProtocolVersion pv);
+MHD_EXTERN_ const struct MHD_String *
+MHD_protocol_version_to_string (enum MHD_HTTP_ProtocolVersion pv)
+MHD_FN_CONST_;
 
 // FIXME: remove completely, usable only for HTTP/1.x, no practical use with 
the new API
 // Reminder:
-// #define MHD_HTTP_VERSION_1_0 "HTTP/1.0"
-// #define MHD_HTTP_VERSION_1_1 "HTTP/1.1"
-// #define MHD_HTTP_VERSION_2 "HTTP/2" // FIXME: Used only for non-TLS 
handshake
-// #define MHD_HTTP_VERSION_3 "HTTP/3" // FIXME: not defined anywhere
+/**
+ * HTTP/1.0 identification string
+ */
+#define MHD_HTTP_VERSION_1_0 "HTTP/1.0"
+/**
+ * HTTP/1.1 identification string
+ */
+#define MHD_HTTP_VERSION_1_1 "HTTP/1.1"
+/**
+ * HTTP/2 identification string.
+ * Not used by the HTTP protocol (except non-TLS handshake), useful for logs 
and
+ * similar proposes.
+ */
+#define MHD_HTTP_VERSION_2 "HTTP/2"
+/**
+ * HTTP/3 identification string.
+ * Not used by the HTTP protocol, useful for logs and similar proposes.
+ */
+#define MHD_HTTP_VERSION_3 "HTTP/3" // FIXME: not defined anywhere
 
 /** @} */ /* end of group versions */
 
@@ -5171,7 +5303,7 @@ MHD_protocol_version_to_string (enum 
MHD_HTTP_ProtocolVersion pv);
  */
 MHD_EXTERN_ void
 MHD_request_resume (struct MHD_Request *request)
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 
 /* ************** Action and Response manipulation functions **************** 
*/
@@ -5228,7 +5360,7 @@ struct MHD_Response;
 MHD_EXTERN_ const struct MHD_Action *
 MHD_action_suspend (struct MHD_Request *request,
                     uint_fast64_t suspend_microsec)
-MHD_FUNC_RETURNS_NONNULL_ MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_RETURNS_NONNULL_ MHD_FN_PARAM_NONNULL_ALL_;
 
 /**
  * Converts a @a response to an action.  If @a MHD_RESP_OPT_BOOL_REUSABLE
@@ -5349,7 +5481,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_response_set_option_bool (struct MHD_Response *response,
                               enum MHD_ResponseOption ro,
                               enum MHD_Bool value)
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 // FIXME: the suggested approach
 
@@ -5378,7 +5510,7 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_response_set_options_bool (struct MHD_Response *response,
                                struct MHD_ResponseOptionBoolSet *options_array,
                                size_t max_num_options) // FIXME: another 
sequence, as intended
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 
 
@@ -5475,7 +5607,7 @@ MHD_response_set_option_termination_callback (
   struct MHD_Response *response,
   MHD_RequestTerminationCallback termination_cb,
   void *termination_cb_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 // FIXME: remove?
 enum MHD_DynContCreatorActionType
@@ -5581,9 +5713,10 @@ MHD_DCC_action_continue_zc (
   size_t data_size,
   const struct MHD_DynContentZCIoVec *iov_data,
   const char *chunk_ext)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PAR_CSTR_(4);
 
-#define MHD_DCC_action_continue (ctx,data_size,chunk_ext) \
+#define MHD_DCC_action_continue(ctx,data_size,chunk_ext) \
     MHD_DCC_action_continue_zc (ctx, data_size, NULL, chunk_ext)
 
 /**
@@ -5606,7 +5739,7 @@ MHD_DCC_action_finished_with_footer (
   struct MHD_DynamicContentCreatorContext *ctx,
   size_t num_footers,
   const struct MHD_NameValueCStr *footers)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 #define MHD_DCC_action_finished(action) \
@@ -5623,7 +5756,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
  */
 MHD_EXTERN_ const struct MHD_DynamicContentCreatorAction *
 MHD_DCC_action_suspend (struct MHD_DynamicContentCreatorContext *ctx)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 /**
  * Set action to "stop with error".
@@ -5658,7 +5791,7 @@ MHD_FUNC_PARAM_NONNULL_ (1);
  *         NULL in case of any error (the response will be aborted)
  */
 typedef const struct MHD_DynamicContentCreatorAction *
-(MHD_FUNC_PARAM_NONNULL_ (2) MHD_FUNC_PARAM_NONNULL_ (4)
+(MHD_FN_PARAM_NONNULL_ (2) MHD_FN_PARAM_NONNULL_ (4)
  *MHD_DynamicContentCreator)(void *dyn_cont_cls,
                              struct MHD_DynamicContentCreatorContext *ctx,
                              uint64_t pos,
@@ -5709,7 +5842,18 @@ MHD_response_from_buffer (
   const char buffer[MHD_FN_PARAM_DYN_ARR_SIZE_(buffer_size)],
   MHD_FreeCallback free_cb,
   void *free_cb_cls)
-MHD_FUNC_PARAM_IN_SIZE_(3,2);
+MHD_FN_PARAM_IN_SIZE_(3,2);
+
+
+/**
+ * Create a response object with empty (zero size) body.
+ *
+ * The response object can be extended with header information and then be used
+ * any number of times.
+ * @param sc status code to use for the response
+ */
+#define MHD_response_from_empty(sc) \
+  MHD_response_from_buffer (sc, 0, NULL, NULL, NULL)
 
 
 /**
@@ -5730,18 +5874,7 @@ MHD_response_from_buffer_copy (
   enum MHD_HTTP_StatusCode sc,
   size_t buffer_size,
   const char buffer[MHD_FN_PARAM_DYN_ARR_SIZE_(buffer_size)])
-MHD_FUNC_PARAM_IN_SIZE_(3,2);
-
-
-/**
- * Create a response object with empty (zero size) body.
- *
- * The response object can be extended with header information and then be used
- * any number of times.
- * @param sc status code to use for the response
- */
-#define MHD_response_from_empty(sc) \
-  MHD_response_from_buffer (sc, 0, NULL, NULL, NULL)
+MHD_FN_PARAM_IN_SIZE_(3,2);
 
 
 /**
@@ -5794,7 +5927,8 @@ MHD_EXTERN_ struct MHD_Response *
 MHD_response_from_fd (enum MHD_HTTP_StatusCode sc,
                       int fd,
                       uint_fast64_t offset,
-                      uint_fast64_t size);
+                      uint_fast64_t size)
+MHD_FN_PAR_FD_READ_(2);
 
 /**
  * Create a response object with the response body created by reading
@@ -5831,7 +5965,7 @@ MHD_response_from_pipe (enum MHD_HTTP_StatusCode sc,
  */
 MHD_EXTERN_ void
 MHD_response_destroy (struct MHD_Response *response)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -5850,8 +5984,9 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_response_add_header (struct MHD_Response *response,
                          const char *name,
                          const char *value)
-MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_NONNULL_ (2)
-MHD_FUNC_PARAM_NONNULL_ (3);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_NONNULL_ (2) MHD_FN_PAR_CSTR_(2)
+MHD_FN_PARAM_NONNULL_ (3) MHD_FN_PAR_CSTR_(3);
 
 
 /**
@@ -5869,7 +6004,8 @@ MHD_EXTERN_ enum MHD_StatusCode
 MHD_response_add_predef_header (struct MHD_Response *response,
                                 enum MHD_PredefinedHeader stk,
                                 const char *content)
-MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_NONNULL_ (3);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_NONNULL_ (3) MHD_FN_PAR_CSTR_(3);
 
 
 /* ************ (b) Upload and PostProcessor functions ********************** 
*/
@@ -5916,7 +6052,7 @@ MHD_action_continue (struct MHD_Request *req);
  *         to discard the rest of the upload and return the data given
  */
 typedef const struct MHD_Action *
-(MHD_FUNC_PARAM_NONNULL_ (2) MHD_FUNC_PARAM_NONNULL_ (3)
+(MHD_FN_PARAM_NONNULL_ (2) MHD_FN_PARAM_NONNULL_ (3)
  *MHD_UploadCallback)(void *upload_cls,
                       struct MHD_Request *request,
                       size_t content_data_size,
@@ -5956,7 +6092,7 @@ MHD_action_process_upload (
   void *uc_full_cls,
   MHD_UploadCallback uc_inc,
   void *uc_inc_cls)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 /**
  * Create an action that handles an upload as full upload data.
@@ -6058,7 +6194,7 @@ MHD_action_post_processor (struct MHD_Request *req,
                            void *iter_cls,
                            MHD_PostDataFinished done_cb,
                            void *done_cb_cls)
-MHD_FUNC_PARAM_NONNULL_ (2);
+MHD_FN_PARAM_NONNULL_ (2);
 
 
 /**
@@ -6075,18 +6211,26 @@ struct MHD_PostData
   struct MHD_String name;
   /**
    * The filename if provided (only for "multipart/form-data")
+   * If not set or defined then to C string is NULL.
+   * If set to empty string then pointer to C string not NULL,
    */
   struct MHD_StringNullable filename;
   /**
    * The Content-Type if provided (only for "multipart/form-data")
+   * If not set or defined then to C string is NULL.
+   * If set to empty string then pointer to C string not NULL,
    */
   struct MHD_StringNullable content_type;
   /**
    * The Transfer-Encoding if provided (only for "multipart/form-data")
+   * If not set or defined then to C string is NULL.
+   * If set to empty string then pointer to C string not NULL,
    */
   struct MHD_StringNullable transfer_encoding;
   /**
    * The field data
+   * If not set or defined then to C string is NULL.
+   * If set to empty string then pointer to C string not NULL,
    */
   struct MHD_StringNullable value;
 };
@@ -6107,8 +6251,8 @@ MHD_request_get_post_processor_values (
   struct MHD_Request *request,
   size_t num_elements,
   struct MHD_PostData elements[MHD_FN_PARAM_DYN_ARR_SIZE_ (num_elements)])
-MHD_FUNC_PARAM_NONNULL_ (1)
-MHD_FUNC_PARAM_NONNULL_ (3) MHD_FUNC_PARAM_OUT_(3);
+MHD_FN_PARAM_NONNULL_ (1)
+MHD_FN_PARAM_NONNULL_ (3) MHD_FN_PARAM_OUT_(3);
 
 
 
@@ -6157,7 +6301,7 @@ struct MHD_UpgradeHandle;
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_upgrade_operation (struct MHD_UpgradeHandle *urh,
                        enum MHD_UpgradeOperation operation)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**
@@ -6251,7 +6395,7 @@ MHD_EXTERN_ struct MHD_Action *
 MHD_action_upgrade (struct MHD_Request *request, // TODO: fix the name
                     MHD_UpgradeHandler upgrade_handler,
                     void *upgrade_handler_cls)
-MHD_FUNC_PARAM_NONNULL_ (1) MHD_FUNC_PARAM_NONNULL_ (2);
+MHD_FN_PARAM_NONNULL_ (1) MHD_FN_PARAM_NONNULL_ (2);
 
 
 /* ********************** (e) Client auth ********************** */
@@ -6392,7 +6536,7 @@ enum MHD_DigestAuthAlgo
  */
 MHD_EXTERN_ size_t
 MHD_digest_get_hash_size (enum MHD_DigestAuthAlgo algo)
-MHD_FUNC_CONST_;
+MHD_FN_CONST_;
 
 /**
  * Digest algorithm identification, allow multiple selection.
@@ -6562,9 +6706,10 @@ MHD_digest_auth_calc_userhash (enum MHD_DigestAuthAlgo 
algo,
                                const char *realm,
                                size_t bin_buf_size,
                                void *userhash_bin)
-MHD_FUNC_PURE_
-MHD_FUNC_PARAM_NONNULL_ALL_
-MHD_FUNC_PARAM_OUT_SIZE_(4,3);
+MHD_FN_PURE_
+MHD_FN_PARAM_NONNULL_ALL_
+MHD_FN_PAR_CSTR_(2) MHD_FN_PAR_CSTR_(3)
+MHD_FN_PARAM_OUT_SIZE_(4,3);
 
 
 /**
@@ -6614,9 +6759,10 @@ MHD_digest_auth_calc_userhash_hex (
   const char *realm,
   size_t hex_buf_size,
   char userhash_hex[MHD_FN_PARAM_DYN_ARR_SIZE_(hex_buf_size)])
-MHD_FUNC_PURE_
-MHD_FUNC_PARAM_NONNULL_ALL_
-MHD_FUNC_PARAM_OUT_SIZE_(4,3);
+MHD_FN_PURE_
+MHD_FN_PARAM_NONNULL_ALL_
+MHD_FN_PAR_CSTR_(2) MHD_FN_PAR_CSTR_(3)
+MHD_FN_PARAM_OUT_SIZE_(4,3);
 ;
 
 
@@ -6882,7 +7028,7 @@ struct MHD_DigestAuthInfo
  */
 MHD_EXTERN_ struct MHD_DigestAuthInfo *
 MHD_digest_auth_get_request_info (struct MHD_Request *request)
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 
 /**
@@ -6969,7 +7115,7 @@ struct MHD_DigestAuthUsernameInfo
  */
 MHD_EXTERN_ struct MHD_DigestAuthUsernameInfo *
 MHD_digest_auth_get_username (struct MHD_Connection *connection)
-MHD_FUNC_PARAM_NONNULL_ALL_;
+MHD_FN_PARAM_NONNULL_ALL_;
 
 
 /**
@@ -7099,9 +7245,13 @@ MHD_digest_auth_check (struct MHD_Request *request,
                        const char *username,
                        const char *password,
                        unsigned int nonce_timeout,
-                       uint32_t max_nc,
+                       uint_fast32_t max_nc,
                        enum MHD_DigestAuthMultiQOP mqop,
-                       enum MHD_DigestAuthMultiAlgo malgo);
+                       enum MHD_DigestAuthMultiAlgo malgo)
+MHD_FN_PARAM_NONNULL_(1)
+MHD_FN_PARAM_NONNULL_(2) MHD_FN_PAR_CSTR_(2)
+MHD_FN_PARAM_NONNULL_(3) MHD_FN_PAR_CSTR_(3)
+MHD_FN_PARAM_NONNULL_(4) MHD_FN_PAR_CSTR_(4);
 
 
 /**
@@ -7141,8 +7291,11 @@ MHD_digest_auth_calc_userdigest (enum MHD_DigestAuthAlgo 
algo,
                                  const char *password,
                                  size_t bin_buf_size,
                                  void *userdigest_bin)
-MHD_FUNC_PURE_ MHD_FUNC_PARAM_NONNULL_ALL_
-MHD_FUNC_PARAM_OUT_SIZE_(6,5);
+MHD_FN_PURE_ MHD_FN_PARAM_NONNULL_ALL_
+MHD_FN_PAR_CSTR_(2)
+MHD_FN_PAR_CSTR_(3)
+MHD_FN_PAR_CSTR_(4)
+MHD_FN_PARAM_OUT_SIZE_(6,5);
 
 
 /**
@@ -7195,7 +7348,11 @@ MHD_digest_auth_check_digest (struct MHD_Request 
*request,
                                unsigned int nonce_timeout,
                                uint32_t max_nc,
                                enum MHD_DigestAuthMultiQOP mqop,
-                               enum MHD_DigestAuthMultiAlgo malgo);
+                               enum MHD_DigestAuthMultiAlgo malgo)
+MHD_FN_PARAM_NONNULL_ALL_
+MHD_FN_PAR_CSTR_(2)
+MHD_FN_PAR_CSTR_(3)
+MHD_FN_PAR_CSTR_(4);
 
 
 /**
@@ -7402,7 +7559,7 @@ MHD_EXTERN_ void
 MHD_daemon_digest_auth_random (struct MHD_Daemon *daemon,
                                size_t buf_size,
                                const void *buf)
-MHD_FUNC_PARAM_NONNULL_ (1,3);
+MHD_FN_PARAM_NONNULL_ (1,3);
 
 
 // TODO: recheck
@@ -7416,7 +7573,7 @@ MHD_FUNC_PARAM_NONNULL_ (1,3);
 MHD_EXTERN_ enum MHD_StatusCode
 MHD_daemon_digest_auth_nc_length (struct MHD_Daemon *daemon,
                                   size_t nc_length)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /* ********************** (f) Introspection ********************** */
@@ -7588,7 +7745,7 @@ MHD_connection_get_information_sz (struct MHD_Connection 
*connection,
                                    union MHD_ConnectionInformation 
*return_value
                                    ,
                                    size_t return_value_size)
-MHD_FUNC_PARAM_NONNULL_ (1,3);
+MHD_FN_PARAM_NONNULL_ (1,3);
 
 
 /**
@@ -7702,7 +7859,7 @@ MHD_request_get_information_sz (struct MHD_Request 
*request,
                                 enum MHD_RequestInformationType info_type,
                                 union MHD_RequestInformation *return_value,
                                 size_t return_value_size)
-MHD_FUNC_PARAM_NONNULL_ (1,3);
+MHD_FN_PARAM_NONNULL_ (1,3);
 
 
 /**
@@ -7810,7 +7967,7 @@ MHD_daemon_get_information_sz (struct MHD_Daemon *daemon,
                                enum MHD_DaemonInformationType info_type,
                                union MHD_DaemonInformation *return_value,
                                size_t return_value_size)
-MHD_FUNC_PARAM_NONNULL_ (1,3);
+MHD_FN_PARAM_NONNULL_ (1,3);
 
 /**
  * Obtain information about the given daemon.
@@ -7879,7 +8036,7 @@ MHD_set_panic_func (MHD_PanicCallback cb,
  */
 MHD_EXTERN_ size_t
 MHD_http_unescape (char *val)
-MHD_FUNC_PARAM_NONNULL_ (1);
+MHD_FN_PARAM_NONNULL_ (1);
 
 
 /**

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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