microhttpd2.h: converted connection options

This commit is contained in:
Evgeny Grin (Karlson2k)
2024-04-08 01:53:18 +02:00
parent 831b49287b
commit e590af4204
+53 -22
View File
@@ -6627,6 +6627,16 @@ enum MHD_FIXED_ENUM_APP_SET_ MHD_ConnectionOption
* Setting this option resets connection timeout timer.
*/
MHD_C_O_TIMEOUT = 1
,
/* * Sentinel * */
/**
* The sentinel value.
* This value enforces specific underlying integer type for the enum.
* Do not use.
*/
MHD_C_O_SENTINEL = 65535
};
struct MHD_ReservedStruct
@@ -6635,15 +6645,25 @@ struct MHD_ReservedStruct
void *reserved2;
};
/**
* Parameters for MHD connection options
*/
union MHD_ConnectionOptionValue
{
unsigned int v_uint;
/**
* Value for #MHD_C_O_TIMEOUT
*/
unsigned int v_timeout;
/**
* Reserved member. Do not use.
*/
struct MHD_ReservedStruct reserved;
};
/**
* Combination of MHD connection option with parameters values
*/
struct MHD_ConnectionOptionAndValue
{
/**
@@ -6657,40 +6677,53 @@ struct MHD_ConnectionOptionAndValue
};
#if defined(MHD_USE_COMPOUND_LITERALS) && defined(MHD_USE_DESIG_NEST_INIT)
/* Do not use directly */ // TODO: convert to explicict
# define MHD_C_OPTION_UINT_SET_(option,uint_val) \
MHD_NOWARN_COMPOUND_LITERALS_ \
(const struct MHD_ConnectionOptionAndValue) \
{ \
.opt = (option), \
.val.v_uint = (uint_val) \
} \
/**
* Set custom timeout for the given connection.
* Specified as the number of seconds. Use zero for no timeout.
* Setting this option resets connection timeout timer.
* @param timeout the in seconds, zero for no timeout
* @return the object of struct MHD_ConnectionOptionAndValue with the requested
* values
*/
# define MHD_C_OPTION_TIMEOUT(timeout) \
MHD_NOWARN_COMPOUND_LITERALS_ \
(const struct MHD_ConnectionOptionAndValue) \
{ \
.opt = (option), \
.val.v_timeout = (timeout) \
} \
MHD_RESTORE_WARN_COMPOUND_LITERALS_
/**
* Terminate the list of the options
* @return the terminating object of struct MHD_DaemonOptionAndValue
* @return the terminating object of struct MHD_ConnectionOptionAndValue
*/
# define MHD_C_OPTION_TERMINATE() \
MHD_NOWARN_COMPOUND_LITERALS_ \
(const struct MHD_DaemonOptionAndValue) \
{ \
.opt = (MHD_C_O_END) \
} \
# define MHD_C_OPTION_TERMINATE() \
MHD_NOWARN_COMPOUND_LITERALS_ \
(const struct MHD_ConnectionOptionAndValue) \
{ \
.opt = (MHD_C_O_END) \
} \
MHD_RESTORE_WARN_COMPOUND_LITERALS_
#else /* !MHD_USE_COMPOUND_LITERALS || !MHD_USE_DESIG_NEST_INIT */
MHD_NOWARN_UNUSED_FUNC_
/* Do not use directly */
/**
* Set custom timeout for the given connection.
* Specified as the number of seconds. Use zero for no timeout.
* Setting this option resets connection timeout timer.
* @param timeout the in seconds, zero for no timeout
* @return the object of struct MHD_ConnectionOptionAndValue with the requested
* values
*/
static MHD_INLINE struct MHD_ConnectionOptionAndValue
MHD_C_OPTION_UINT_SET_ (enum MHD_ConnectionOption option,
unsigned int uint_val)
MHD_C_OPTION_TIMEOUT (unsigned int timeout)
{
struct MHD_ConnectionOptionAndValue opt_val;
opt_val.opt = option;
opt_val.val.v_uint = uint_val;
opt_val.val.v_timeout = timeout;
return opt_val;
}
@@ -6714,8 +6747,6 @@ MHD_C_OPTION_TERMINATE (void)
MHD_RESTORE_WARN_UNUSED_FUNC_
#endif /* !MHD_USE_COMPOUND_LITERALS || !MHD_USE_DESIG_NEST_INIT */
#define MHD_C_OPTION_TIMEOUT(v_uint) \
MHD_C_OPTION_UINT_SET_(MHD_C_O_TIMEOUT,v_uint)
/**
* Set the requested options for the connection.
*