aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-06-21 13:39:37 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-06-21 13:39:37 +0300
commitaec976ee2f2a8105caa8040e55c5d3bf8ed434a1 (patch)
tree6636a3ee8871a66808f7ba2adfd95c4519c762e5
parent4cce973ea2ff3e4466ded5f66ecce2cfefec8b40 (diff)
downloadlibmicrohttpd-aec976ee2f2a8105caa8040e55c5d3bf8ed434a1.tar.gz
libmicrohttpd-aec976ee2f2a8105caa8040e55c5d3bf8ed434a1.zip
Added attributes for enums
-rw-r--r--src/include/microhttpd.h51
-rw-r--r--src/microhttpd/daemon.c2
-rw-r--r--src/microhttpd/internal.h16
3 files changed, 44 insertions, 25 deletions
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h
index b9ea600d..6e266751 100644
--- a/src/include/microhttpd.h
+++ b/src/include/microhttpd.h
@@ -132,6 +132,25 @@ typedef intptr_t ssize_t;
132 */ 132 */
133#define MHD_VERSION 0x00097302 133#define MHD_VERSION 0x00097302
134 134
135
136#ifdef __has_attribute
137#if __has_attribute (flag_enum)
138#define _MHD_FLAGS_ENUM __attribute__((flag_enum))
139#endif /* flag_enum */
140#if __has_attribute (enum_extensibility)
141#define _MHD_FIXED_ENUM __attribute__((enum_extensibility(closed)))
142#endif /* enum_extensibility */
143#endif /* __has_attribute */
144
145#ifndef _MHD_FLAGS_ENUM
146#define _MHD_FLAGS_ENUM
147#endif /* _MHD_FLAGS_ENUM */
148#ifndef _MHD_FIXED_ENUM
149#define _MHD_FIXED_ENUM
150#endif /* _MHD_FIXED_ENUM */
151
152#define _MHD_FIXED_FLAGS_ENUM _MHD_FIXED_ENUM _MHD_FLAGS_ENUM
153
135/** 154/**
136 * Operational results from MHD calls. 155 * Operational results from MHD calls.
137 */ 156 */
@@ -147,7 +166,7 @@ enum MHD_Result
147 */ 166 */
148 MHD_YES = 1 167 MHD_YES = 1
149 168
150}; 169} _MHD_FIXED_ENUM;
151 170
152 171
153/** 172/**
@@ -1748,7 +1767,7 @@ enum MHD_OPTION
1748 * @note Available since #MHD_VERSION 0x00097207 1767 * @note Available since #MHD_VERSION 0x00097207
1749 */ 1768 */
1750 MHD_OPTION_TLS_NO_ALPN = 34 1769 MHD_OPTION_TLS_NO_ALPN = 34
1751}; 1770} _MHD_FIXED_ENUM;
1752 1771
1753 1772
1754/** 1773/**
@@ -1762,7 +1781,7 @@ enum MHD_DisableSanityCheck
1762 */ 1781 */
1763 MHD_DSC_SANE = 0 1782 MHD_DSC_SANE = 0
1764 1783
1765}; 1784} _MHD_FIXED_FLAGS_ENUM;
1766 1785
1767 1786
1768/** 1787/**
@@ -1839,7 +1858,7 @@ enum MHD_ValueKind
1839 * HTTP footer (only for HTTP 1.1 chunked encodings). 1858 * HTTP footer (only for HTTP 1.1 chunked encodings).
1840 */ 1859 */
1841 MHD_FOOTER_KIND = 16 1860 MHD_FOOTER_KIND = 16
1842}; 1861} _MHD_FIXED_ENUM;
1843 1862
1844 1863
1845/** 1864/**
@@ -1897,7 +1916,7 @@ enum MHD_RequestTerminationCode
1897 */ 1916 */
1898 MHD_REQUEST_TERMINATED_CLIENT_ABORT = 5 1917 MHD_REQUEST_TERMINATED_CLIENT_ABORT = 5
1899 1918
1900}; 1919} _MHD_FIXED_ENUM;
1901 1920
1902 1921
1903/** 1922/**
@@ -1920,7 +1939,7 @@ enum MHD_ConnectionNotificationCode
1920 */ 1939 */
1921 MHD_CONNECTION_NOTIFY_CLOSED = 1 1940 MHD_CONNECTION_NOTIFY_CLOSED = 1
1922 1941
1923}; 1942} _MHD_FIXED_ENUM;
1924 1943
1925 1944
1926/** 1945/**
@@ -2093,7 +2112,7 @@ enum MHD_ConnectionInfoType
2093 * @ingroup request 2112 * @ingroup request
2094 */ 2113 */
2095 MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE 2114 MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE
2096}; 2115} _MHD_FIXED_ENUM;
2097 2116
2098 2117
2099/** 2118/**
@@ -2156,7 +2175,7 @@ enum MHD_DaemonInfoType
2156 * value will be real port number. 2175 * value will be real port number.
2157 */ 2176 */
2158 MHD_DAEMON_INFO_BIND_PORT 2177 MHD_DAEMON_INFO_BIND_PORT
2159}; 2178} _MHD_FIXED_ENUM;
2160 2179
2161 2180
2162/** 2181/**
@@ -3096,7 +3115,7 @@ enum MHD_ResponseFlags
3096 MHD_RF_INSANITY_HEADER_CONTENT_LENGTH = 4 3115 MHD_RF_INSANITY_HEADER_CONTENT_LENGTH = 4
3097 3116
3098 3117
3099}; 3118} _MHD_FIXED_FLAGS_ENUM;
3100 3119
3101 3120
3102/** 3121/**
@@ -3108,7 +3127,7 @@ enum MHD_ResponseOptions
3108 * End of the list of options. 3127 * End of the list of options.
3109 */ 3128 */
3110 MHD_RO_END = 0 3129 MHD_RO_END = 0
3111}; 3130} _MHD_FIXED_ENUM;
3112 3131
3113 3132
3114/** 3133/**
@@ -3204,7 +3223,7 @@ enum MHD_ResponseMemoryMode
3204 */ 3223 */
3205 MHD_RESPMEM_MUST_COPY 3224 MHD_RESPMEM_MUST_COPY
3206 3225
3207}; 3226} _MHD_FIXED_ENUM;
3208 3227
3209 3228
3210/** 3229/**
@@ -3476,7 +3495,7 @@ enum MHD_UpgradeAction
3476 */ 3495 */
3477 MHD_UPGRADE_ACTION_CORK_OFF = 2 3496 MHD_UPGRADE_ACTION_CORK_OFF = 2
3478 3497
3479}; 3498} _MHD_FIXED_ENUM;
3480 3499
3481 3500
3482/** 3501/**
@@ -3830,7 +3849,7 @@ enum MHD_DigestAuthAlgorithm
3830 */ 3849 */
3831 MHD_DIGEST_ALG_SHA256 3850 MHD_DIGEST_ALG_SHA256
3832 3851
3833}; 3852} _MHD_FIXED_ENUM;
3834 3853
3835 3854
3836/** 3855/**
@@ -4054,7 +4073,7 @@ enum MHD_CONNECTION_OPTION
4054 */ 4073 */
4055 MHD_CONNECTION_OPTION_TIMEOUT 4074 MHD_CONNECTION_OPTION_TIMEOUT
4056 4075
4057}; 4076} _MHD_FIXED_ENUM;
4058 4077
4059 4078
4060/** 4079/**
@@ -4317,7 +4336,7 @@ enum MHD_FEATURE
4317 * supported. 4336 * supported.
4318 */ 4337 */
4319 MHD_FEATURE_HTTPS_CERT_CALLBACK2 = 23 4338 MHD_FEATURE_HTTPS_CERT_CALLBACK2 = 23
4320}; 4339} _MHD_FIXED_ENUM;
4321 4340
4322 4341
4323/** 4342/**
@@ -4335,10 +4354,10 @@ _MHD_EXTERN enum MHD_Result
4335MHD_is_feature_supported (enum MHD_FEATURE feature); 4354MHD_is_feature_supported (enum MHD_FEATURE feature);
4336 4355
4337 4356
4357#ifdef __cplusplus
4338#if 0 /* keep Emacsens' auto-indent happy */ 4358#if 0 /* keep Emacsens' auto-indent happy */
4339{ 4359{
4340#endif 4360#endif
4341#ifdef __cplusplus
4342} 4361}
4343#endif 4362#endif
4344 4363
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index d6042356..26940bf9 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -6455,7 +6455,7 @@ MHD_start_daemon_va (unsigned int flags,
6455 *pflags |= MHD_USE_INTERNAL_POLLING_THREAD; 6455 *pflags |= MHD_USE_INTERNAL_POLLING_THREAD;
6456 } 6456 }
6457 if (0 == (*pflags & MHD_USE_INTERNAL_POLLING_THREAD)) 6457 if (0 == (*pflags & MHD_USE_INTERNAL_POLLING_THREAD))
6458 *pflags &= ~MHD_USE_ITC; /* useless if we are using 'external' select */ 6458 *pflags = (*pflags & ~MHD_USE_ITC); /* useless if we are using 'external' select */
6459 else 6459 else
6460 { 6460 {
6461#ifdef HAVE_LISTEN_SHUTDOWN 6461#ifdef HAVE_LISTEN_SHUTDOWN
diff --git a/src/microhttpd/internal.h b/src/microhttpd/internal.h
index 2338c0ee..5821011b 100644
--- a/src/microhttpd/internal.h
+++ b/src/microhttpd/internal.h
@@ -177,7 +177,7 @@ enum MHD_tristate
177 _MHD_NO = false, /**< State is "off" / "disabled" */ 177 _MHD_NO = false, /**< State is "off" / "disabled" */
178 _MHD_ON = true, /**< State is "on" / "enabled" */ 178 _MHD_ON = true, /**< State is "on" / "enabled" */
179 _MHD_YES = true /**< State is "on" / "enabled" */ 179 _MHD_YES = true /**< State is "on" / "enabled" */
180}; 180} _MHD_FIXED_ENUM;
181 181
182 182
183/** 183/**
@@ -223,7 +223,7 @@ enum MHD_EpollState
223 * Is this connection in some error state? 223 * Is this connection in some error state?
224 */ 224 */
225 MHD_EPOLL_STATE_ERROR = 128 225 MHD_EPOLL_STATE_ERROR = 128
226}; 226} _MHD_FIXED_FLAGS_ENUM;
227 227
228 228
229/** 229/**
@@ -250,7 +250,7 @@ enum MHD_ConnectionEventLoopInfo
250 * We are finished and are awaiting cleanup. 250 * We are finished and are awaiting cleanup.
251 */ 251 */
252 MHD_EVENT_LOOP_INFO_CLEANUP = 3 252 MHD_EVENT_LOOP_INFO_CLEANUP = 3
253}; 253} _MHD_FIXED_ENUM;
254 254
255 255
256/** 256/**
@@ -657,7 +657,7 @@ enum MHD_CONNECTION_STATE
657 MHD_CONNECTION_UPGRADE 657 MHD_CONNECTION_UPGRADE
658#endif /* UPGRADE_SUPPORT */ 658#endif /* UPGRADE_SUPPORT */
659 659
660}; 660} _MHD_FIXED_ENUM;
661 661
662 662
663/** 663/**
@@ -675,7 +675,7 @@ enum MHD_TLS_CONN_STATE
675 MHD_TLS_CONN_TLS_CLOSED, /**< TLS session is terminated. */ 675 MHD_TLS_CONN_TLS_CLOSED, /**< TLS session is terminated. */
676 MHD_TLS_CONN_TLS_FAILED, /**< TLS session failed. */ 676 MHD_TLS_CONN_TLS_FAILED, /**< TLS session failed. */
677 MHD_TLS_CONN_INVALID_STATE/**< Sentinel. Not a valid value. */ 677 MHD_TLS_CONN_INVALID_STATE/**< Sentinel. Not a valid value. */
678}; 678} _MHD_FIXED_ENUM;
679 679
680/** 680/**
681 * Should all state transitions be printed to stderr? 681 * Should all state transitions be printed to stderr?
@@ -738,7 +738,7 @@ enum MHD_ConnKeepAlive
738 * Connection can be used for serving next request 738 * Connection can be used for serving next request
739 */ 739 */
740 MHD_CONN_USE_KEEPALIVE = 1 740 MHD_CONN_USE_KEEPALIVE = 1
741}; 741} _MHD_FIXED_ENUM;
742 742
743enum MHD_HTTP_Version 743enum MHD_HTTP_Version
744{ 744{
@@ -776,7 +776,7 @@ enum MHD_HTTP_Version
776 * HTTP future version. Unsupported. 776 * HTTP future version. Unsupported.
777 */ 777 */
778 MHD_HTTP_VER_FUTURE = 100 778 MHD_HTTP_VER_FUTURE = 100
779}; 779} _MHD_FIXED_ENUM;
780 780
781/** 781/**
782 * Returns boolean 'true' if HTTP version is supported by MHD 782 * Returns boolean 'true' if HTTP version is supported by MHD
@@ -840,7 +840,7 @@ enum MHD_HTTP_Method
840 * Other HTTP method. Check the string value. 840 * Other HTTP method. Check the string value.
841 */ 841 */
842 MHD_HTTP_MTHD_OTHER = 1000 842 MHD_HTTP_MTHD_OTHER = 1000
843}; 843} _MHD_FIXED_ENUM;
844 844
845/** 845/**
846 * State kept for each HTTP request. 846 * State kept for each HTTP request.