commit 28555183e68eb95ba583458c53f8ce452f8fd00c
parent 881319d4ec275b9f216b6dbd0c626d614a6ab341
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date: Fri, 30 Oct 2026 17:33:21 +0100
Added MHD_FN_PAR_NONNULL_IF_NONZERO_ to public functions
Diffstat:
7 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/src/include/microhttpd2.h b/src/include/microhttpd2.h
@@ -3914,6 +3914,7 @@ MHD_connection_set_psk (
struct MHD_ServerCredentialsContext *mscc,
size_t psk_size,
const /*void? */ char *psk)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
#define MHD_connection_set_psk_unavailable(mscc) \
@@ -6455,7 +6456,8 @@ MHD_DCC_action_finish_with_footer (
struct MHD_DynamicContentCreatorContext *ctx,
size_t num_footers,
const struct MHD_NameValueCStr *MHD_RESTRICT footers)
-MHD_FN_PAR_NONNULL_ (1);
+MHD_FN_PAR_NONNULL_ (1)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2);
/**
@@ -6599,6 +6601,7 @@ MHD_response_from_buffer (
const char *buffer,
MHD_FreeCallback free_cb,
void *free_cb_cls)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
@@ -6653,6 +6656,7 @@ MHD_response_from_buffer_copy (
enum MHD_HTTP_StatusCode sc,
size_t buffer_size,
const char *buffer)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
@@ -6704,6 +6708,7 @@ MHD_response_from_iovec (
const struct MHD_IoVec *iov,
MHD_FreeCallback free_cb,
void *free_cb_cls)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
@@ -6926,7 +6931,8 @@ MHD_FN_PAR_NONNULL_ (1);
* @ingroup action
*/
typedef const struct MHD_UploadAction *
-(MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_INOUT_SIZE_ (4, 3)
+(MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_NONNULL_IF_NONZERO_ (4, 3)
+ MHD_FN_PAR_INOUT_SIZE_ (4, 3)
*MHD_UploadCallback)(void *upload_cls,
struct MHD_Request *request,
size_t content_data_size,
@@ -6974,7 +6980,8 @@ MHD_action_process_upload (
void *uc_full_cls,
MHD_UploadCallback uc_inc,
void *uc_inc_cls)
-MHD_FN_PAR_NONNULL_ (1);
+MHD_FN_PAR_NONNULL_ (1)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2);
/**
* Create an action that handles an upload as full upload data.
@@ -7399,6 +7406,7 @@ MHD_action_upgrade (struct MHD_Request *MHD_RESTRICT request,
size_t num_headers,
const struct MHD_NameValueCStr *MHD_RESTRICT headers)
MHD_FN_PAR_NONNULL_ (1) MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_CSTR_ (2)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (6, 5)
MHD_FN_PAR_IN_SIZE_ (6, 5);
@@ -7436,6 +7444,7 @@ MHD_upload_action_upgrade (
size_t num_headers,
const struct MHD_NameValueCStr *MHD_RESTRICT headers)
MHD_FN_PAR_NONNULL_ (1) MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_CSTR_ (2)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (6, 5)
MHD_FN_PAR_IN_SIZE_ (6, 5);
diff --git a/src/include/microhttpd2_main.h.in b/src/include/microhttpd2_main.h.in
@@ -1394,7 +1394,8 @@ MHD_DCC_action_finish_with_footer (
struct MHD_DynamicContentCreatorContext *ctx,
size_t num_footers,
const struct MHD_NameValueCStr *MHD_RESTRICT footers)
-MHD_FN_PAR_NONNULL_ (1);
+MHD_FN_PAR_NONNULL_ (1)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2);
/**
@@ -1538,6 +1539,7 @@ MHD_response_from_buffer (
const char *buffer,
MHD_FreeCallback free_cb,
void *free_cb_cls)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
@@ -1592,6 +1594,7 @@ MHD_response_from_buffer_copy (
enum MHD_HTTP_StatusCode sc,
size_t buffer_size,
const char *buffer)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
@@ -1643,6 +1646,7 @@ MHD_response_from_iovec (
const struct MHD_IoVec *iov,
MHD_FreeCallback free_cb,
void *free_cb_cls)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
@@ -1865,7 +1869,8 @@ MHD_FN_PAR_NONNULL_ (1);
* @ingroup action
*/
typedef const struct MHD_UploadAction *
-(MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_INOUT_SIZE_ (4, 3)
+(MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_NONNULL_IF_NONZERO_ (4, 3)
+ MHD_FN_PAR_INOUT_SIZE_ (4, 3)
*MHD_UploadCallback)(void *upload_cls,
struct MHD_Request *request,
size_t content_data_size,
@@ -1913,7 +1918,8 @@ MHD_action_process_upload (
void *uc_full_cls,
MHD_UploadCallback uc_inc,
void *uc_inc_cls)
-MHD_FN_PAR_NONNULL_ (1);
+MHD_FN_PAR_NONNULL_ (1)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2);
/**
* Create an action that handles an upload as full upload data.
@@ -2338,6 +2344,7 @@ MHD_action_upgrade (struct MHD_Request *MHD_RESTRICT request,
size_t num_headers,
const struct MHD_NameValueCStr *MHD_RESTRICT headers)
MHD_FN_PAR_NONNULL_ (1) MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_CSTR_ (2)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (6, 5)
MHD_FN_PAR_IN_SIZE_ (6, 5);
@@ -2375,6 +2382,7 @@ MHD_upload_action_upgrade (
size_t num_headers,
const struct MHD_NameValueCStr *MHD_RESTRICT headers)
MHD_FN_PAR_NONNULL_ (1) MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_CSTR_ (2)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (6, 5)
MHD_FN_PAR_IN_SIZE_ (6, 5);
diff --git a/src/include/microhttpd2_preamble.h.in b/src/include/microhttpd2_preamble.h.in
@@ -3914,6 +3914,7 @@ MHD_connection_set_psk (
struct MHD_ServerCredentialsContext *mscc,
size_t psk_size,
const /*void? */ char *psk)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2);
#define MHD_connection_set_psk_unavailable(mscc) \
diff --git a/src/mhd2/action.c b/src/mhd2/action.c
@@ -136,7 +136,8 @@ MHD_action_from_response (struct MHD_Request *MHD_RESTRICT request,
MHD_EXTERN_
-MHD_FN_PAR_NONNULL_ (1) const struct MHD_Action *
+MHD_FN_PAR_NONNULL_ (1)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2) const struct MHD_Action *
MHD_action_process_upload (struct MHD_Request *request,
size_t large_buffer_size,
MHD_UploadCallback uc_full,
@@ -222,6 +223,7 @@ MHD_action_parse_post (struct MHD_Request *request,
MHD_EXTERN_
MHD_FN_PAR_NONNULL_ (1)
MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_CSTR_ (2)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (6, 5)
MHD_FN_PAR_IN_SIZE_ (6, 5) const struct MHD_Action *
MHD_action_upgrade (struct MHD_Request *MHD_RESTRICT request,
const char *MHD_RESTRICT upgrade_hdr_value,
@@ -260,6 +262,7 @@ MHD_action_upgrade (struct MHD_Request *MHD_RESTRICT request,
MHD_EXTERN_
MHD_FN_PAR_NONNULL_ (1)
MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_CSTR_ (2)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (6, 5)
MHD_FN_PAR_IN_SIZE_ (6, 5) const struct MHD_UploadAction *
MHD_upload_action_upgrade (
struct MHD_Request *MHD_RESTRICT request,
diff --git a/src/mhd2/dcc_action.c b/src/mhd2/dcc_action.c
@@ -115,6 +115,7 @@ MHD_DCC_action_continue_zc (
MHD_EXTERN_
MHD_FN_PAR_NONNULL_ (1)
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
const struct MHD_DynamicContentCreatorAction *
MHD_DCC_action_finish_with_footer (
struct MHD_DynamicContentCreatorContext *ctx,
diff --git a/src/mhd2/mhd_action.h b/src/mhd2/mhd_action.h
@@ -115,7 +115,8 @@ enum mhd_ActionType
#ifndef MHD_UPLOADCALLBACK_DEFINED
typedef const struct MHD_UploadAction *
-(MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_INOUT_SIZE_ (4, 3)
+(MHD_FN_PAR_NONNULL_ (2) MHD_FN_PAR_NONNULL_IF_NONZERO_ (4, 3)
+ MHD_FN_PAR_INOUT_SIZE_ (4, 3)
*MHD_UploadCallback)(void *upload_cls,
struct MHD_Request *request,
size_t content_data_size,
diff --git a/src/mhd2/response_from.c b/src/mhd2/response_from.c
@@ -156,6 +156,7 @@ MHD_response_from_callback_2cls (enum MHD_HTTP_StatusCode sc,
static const unsigned char empty_buf[1] = { 0 };
MHD_EXTERN_
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2) struct MHD_Response *
MHD_response_from_buffer (
enum MHD_HTTP_StatusCode sc,
@@ -196,6 +197,7 @@ response_cntn_free_buf (void *ptr)
MHD_EXTERN_
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2) struct MHD_Response *
MHD_response_from_buffer_copy (
enum MHD_HTTP_StatusCode sc,
@@ -353,6 +355,7 @@ response_from_iovec_inner (
MHD_EXTERN_
+MHD_FN_PAR_NONNULL_IF_NONZERO_ (3, 2)
MHD_FN_PAR_IN_SIZE_ (3, 2) struct MHD_Response *
MHD_response_from_iovec (
enum MHD_HTTP_StatusCode sc,