diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-10-07 08:23:36 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-10-07 08:23:36 +0200 |
commit | 181ac3c59fffd599cd6b351940bffd5c6c930fd7 (patch) | |
tree | 83ee968642d4d79eec0f89bebe91cdf32f273daf /src/include/microhttpd2.h | |
parent | 934bc1a71f76c7535a4405a6118ce11c608b666a (diff) | |
download | libmicrohttpd-181ac3c59fffd599cd6b351940bffd5c6c930fd7.tar.gz libmicrohttpd-181ac3c59fffd599cd6b351940bffd5c6c930fd7.zip |
include full method list
Diffstat (limited to 'src/include/microhttpd2.h')
-rw-r--r-- | src/include/microhttpd2.h | 232 |
1 files changed, 214 insertions, 18 deletions
diff --git a/src/include/microhttpd2.h b/src/include/microhttpd2.h index 8255e8e1..d4330c32 100644 --- a/src/include/microhttpd2.h +++ b/src/include/microhttpd2.h | |||
@@ -161,6 +161,12 @@ struct MHD_Action; | |||
161 | * non-canonical methods, MHD will return #MHD_METHOD_UNKNOWN | 161 | * non-canonical methods, MHD will return #MHD_METHOD_UNKNOWN |
162 | * and you can use #MHD_REQUEST_INFORMATION_HTTP_METHOD to get | 162 | * and you can use #MHD_REQUEST_INFORMATION_HTTP_METHOD to get |
163 | * the original string. | 163 | * the original string. |
164 | * | ||
165 | * However, applications must check for "#MHD_METHOD_UNKNOWN" *or* any | ||
166 | * enum-value above those in this list, as future versions of MHD may | ||
167 | * add additional methods (as per IANA registry), thus even if the API | ||
168 | * returns "unknown" today, it may return a method-specific header in | ||
169 | * the future! | ||
164 | */ | 170 | */ |
165 | enum MHD_Method | 171 | enum MHD_Method |
166 | { | 172 | { |
@@ -171,19 +177,19 @@ enum MHD_Method | |||
171 | MHD_METHOD_UNKNOWN = 0, | 177 | MHD_METHOD_UNKNOWN = 0, |
172 | 178 | ||
173 | /** | 179 | /** |
174 | * "GET" method. | 180 | * "OPTIONS" method. |
175 | */ | 181 | */ |
176 | MHD_METHOD_GET = 1, | 182 | MHD_METHOD_OPTIONS = 1, |
177 | 183 | ||
178 | /** | 184 | /** |
179 | * "HEAD" method. | 185 | * "GET" method. |
180 | */ | 186 | */ |
181 | MHD_METHOD_HEAD = 2, | 187 | MHD_METHOD_GET = 2, |
182 | 188 | ||
183 | /** | 189 | /** |
184 | * "PUT" method. | 190 | * "HEAD" method. |
185 | */ | 191 | */ |
186 | MHD_METHOD_PUT = 3, | 192 | MHD_METHOD_HEAD = 3, |
187 | 193 | ||
188 | /** | 194 | /** |
189 | * "POST" method. | 195 | * "POST" method. |
@@ -191,16 +197,177 @@ enum MHD_Method | |||
191 | MHD_METHOD_POST = 4, | 197 | MHD_METHOD_POST = 4, |
192 | 198 | ||
193 | /** | 199 | /** |
194 | * "OPTIONS" method. | 200 | * "PUT" method. |
201 | */ | ||
202 | MHD_METHOD_PUT = 5, | ||
203 | |||
204 | /** | ||
205 | * "DELETE" method. | ||
195 | */ | 206 | */ |
196 | MHD_METHOD_OPTIONS = 5, | 207 | MHD_METHOD_DELETE = 6, |
197 | 208 | ||
198 | /** | 209 | /** |
199 | * "TRACE" method. | 210 | * "TRACE" method. |
200 | */ | 211 | */ |
201 | MHD_METHOD_TRACE = 6, | 212 | MHD_METHOD_TRACE = 7, |
202 | 213 | ||
203 | // more? | 214 | /** |
215 | * "CONNECT" method. | ||
216 | */ | ||
217 | MHD_METHOD_CONNECT = 8, | ||
218 | |||
219 | /** | ||
220 | * "ACL" method. | ||
221 | */ | ||
222 | MHD_METHOD_ACL = 9, | ||
223 | |||
224 | /** | ||
225 | * "BASELINE-CONTROL" method. | ||
226 | */ | ||
227 | MHD_METHOD_BASELINE_CONTROL = 10, | ||
228 | |||
229 | /** | ||
230 | * "BIND" method. | ||
231 | */ | ||
232 | MHD_METHOD_BIND = 11, | ||
233 | |||
234 | /** | ||
235 | * "CHECKIN" method. | ||
236 | */ | ||
237 | MHD_METHOD_CHECKIN = 12, | ||
238 | |||
239 | /** | ||
240 | * "CHECKOUT" method. | ||
241 | */ | ||
242 | MHD_METHOD_CHECKOUT = 13, | ||
243 | |||
244 | /** | ||
245 | * "COPY" method. | ||
246 | */ | ||
247 | MHD_METHOD_COPY = 14, | ||
248 | |||
249 | /** | ||
250 | * "LABEL" method. | ||
251 | */ | ||
252 | MHD_METHOD_LABEL = 15, | ||
253 | |||
254 | /** | ||
255 | * "LINK" method. | ||
256 | */ | ||
257 | MHD_METHOD_LINK = 16, | ||
258 | |||
259 | /** | ||
260 | * "LOCK" method. | ||
261 | */ | ||
262 | MHD_METHOD_LOCK = 17, | ||
263 | |||
264 | /** | ||
265 | * "MERGE" method. | ||
266 | */ | ||
267 | MHD_METHOD_MERGE = 18, | ||
268 | |||
269 | /** | ||
270 | * "MKACTIVITY" method. | ||
271 | */ | ||
272 | MHD_METHOD_MKACTIVITY = 19, | ||
273 | |||
274 | /** | ||
275 | * "MKCOL" method. | ||
276 | */ | ||
277 | MHD_METHOD_MKCOL = 20, | ||
278 | |||
279 | /** | ||
280 | * "MKREDIRECTREF" method. | ||
281 | */ | ||
282 | MHD_METHOD_MKREDIRECTREF = 21, | ||
283 | |||
284 | /** | ||
285 | * "MKWORKSPACE" method. | ||
286 | */ | ||
287 | MHD_METHOD_MKWORKSPACE = 22, | ||
288 | |||
289 | /** | ||
290 | * "MOVE" method. | ||
291 | */ | ||
292 | MHD_METHOD_MOVE = 23, | ||
293 | |||
294 | /** | ||
295 | * "ORDERPATCH" method. | ||
296 | */ | ||
297 | MHD_METHOD_ORDERPATCH = 24, | ||
298 | |||
299 | /** | ||
300 | * "PATCH" method. | ||
301 | */ | ||
302 | MHD_METHOD_PATH = 25, | ||
303 | |||
304 | /** | ||
305 | * "PRI" method. | ||
306 | */ | ||
307 | MHD_METHOD_PRI = 26, | ||
308 | |||
309 | /** | ||
310 | * "PROPFIND" method. | ||
311 | */ | ||
312 | MHD_METHOD_PROPFIND = 27, | ||
313 | |||
314 | /** | ||
315 | * "PROPPATCH" method. | ||
316 | */ | ||
317 | MHD_METHOD_PROPPATCH = 28, | ||
318 | |||
319 | /** | ||
320 | * "REBIND" method. | ||
321 | */ | ||
322 | MHD_METHOD_REBIND = 29, | ||
323 | |||
324 | /** | ||
325 | * "REPORT" method. | ||
326 | */ | ||
327 | MHD_METHOD_REPORT = 30, | ||
328 | |||
329 | /** | ||
330 | * "SEARCH" method. | ||
331 | */ | ||
332 | MHD_METHOD_SEARCH = 31, | ||
333 | |||
334 | /** | ||
335 | * "UNBIND" method. | ||
336 | */ | ||
337 | MHD_METHOD_UNBIND = 32, | ||
338 | |||
339 | /** | ||
340 | * "UNCHECKOUT" method. | ||
341 | */ | ||
342 | MHD_METHOD_UNCHECKOUT = 33, | ||
343 | |||
344 | /** | ||
345 | * "UNLINK" method. | ||
346 | */ | ||
347 | MHD_METHOD_UNLINK = 34, | ||
348 | |||
349 | /** | ||
350 | * "UNLOCK" method. | ||
351 | */ | ||
352 | MHD_METHOD_UNLOCK = 35, | ||
353 | |||
354 | /** | ||
355 | * "UPDATE" method. | ||
356 | */ | ||
357 | MHD_METHOD_UPDATE = 36, | ||
358 | |||
359 | /** | ||
360 | * "UPDATEDIRECTREF" method. | ||
361 | */ | ||
362 | MHD_METHOD_UPDATEDIRECTREF = 37, | ||
363 | |||
364 | /** | ||
365 | * "VERSION-CONTROL" method. | ||
366 | */ | ||
367 | MHD_METHOD_VERSION_CONTROL = 38 | ||
368 | |||
369 | /* For more, check: | ||
370 | https://www.iana.org/assignments/http-methods/http-methods.xhtml */ | ||
204 | 371 | ||
205 | }; | 372 | }; |
206 | 373 | ||
@@ -824,12 +991,31 @@ MHD_daemon_accept_policy (struct MHD_Daemon *daemon, | |||
824 | void *apc_cls); | 991 | void *apc_cls); |
825 | 992 | ||
826 | 993 | ||
994 | /** | ||
995 | * Function called by MHD to allow the application to log | ||
996 | * the full @a uri of a @a request. | ||
997 | * | ||
998 | * @param cls client-defined closure | ||
999 | * @param uri the full URI from the HTTP request | ||
1000 | * @param request the HTTP request handle (headers are | ||
1001 | * not yet available) | ||
1002 | * @return value to set for the "request_context" of @a request | ||
1003 | */ | ||
827 | typedef void * | 1004 | typedef void * |
828 | (MHD_EarlyUriLogCallback)(void *cls, | 1005 | (MHD_EarlyUriLogCallback)(void *cls, |
829 | const char *uri, | 1006 | const char *uri, |
830 | struct MHD_Request *request); | 1007 | struct MHD_Request *request); |
831 | 1008 | ||
832 | 1009 | ||
1010 | /** | ||
1011 | * Register a callback to be called first for every request | ||
1012 | * (before any parsing of the header). Makes it easy to | ||
1013 | * log the full URL. | ||
1014 | * | ||
1015 | * @param daemon daemon for which to set the logger | ||
1016 | * @param cb function to call | ||
1017 | * @param cb_cls closure for @a cb | ||
1018 | */ | ||
833 | _MHD_EXTERN void | 1019 | _MHD_EXTERN void |
834 | MHD_daemon_set_early_uri_logger (struct MHD_Daemon *daemon, | 1020 | MHD_daemon_set_early_uri_logger (struct MHD_Daemon *daemon, |
835 | MHD_EarlyUriLogCallback cb, | 1021 | MHD_EarlyUriLogCallback cb, |
@@ -1118,7 +1304,7 @@ enum MHD_HTTP_StatusCode { | |||
1118 | MHD_HTTP_SEE_OTHER = 303, | 1304 | MHD_HTTP_SEE_OTHER = 303, |
1119 | MHD_HTTP_NOT_MODIFIED = 304, | 1305 | MHD_HTTP_NOT_MODIFIED = 304, |
1120 | MHD_HTTP_USE_PROXY = 305, | 1306 | MHD_HTTP_USE_PROXY = 305, |
1121 | MHD_HTTP_SWITCH_PROXY = 306, | 1307 | MHD_HTTP_SWITCH_PROXY = 306, /* IANA: unused */ |
1122 | MHD_HTTP_TEMPORARY_REDIRECT = 307, | 1308 | MHD_HTTP_TEMPORARY_REDIRECT = 307, |
1123 | MHD_HTTP_PERMANENT_REDIRECT = 308, | 1309 | MHD_HTTP_PERMANENT_REDIRECT = 308, |
1124 | 1310 | ||
@@ -1157,17 +1343,17 @@ enum MHD_HTTP_StatusCode { | |||
1157 | MHD_HTTP_UNPROCESSABLE_ENTITY = 422, | 1343 | MHD_HTTP_UNPROCESSABLE_ENTITY = 422, |
1158 | MHD_HTTP_LOCKED = 423, | 1344 | MHD_HTTP_LOCKED = 423, |
1159 | MHD_HTTP_FAILED_DEPENDENCY = 424, | 1345 | MHD_HTTP_FAILED_DEPENDENCY = 424, |
1160 | MHD_HTTP_UNORDERED_COLLECTION = 425, | 1346 | MHD_HTTP_UNORDERED_COLLECTION = 425, /* IANA: unused */ |
1161 | MHD_HTTP_UPGRADE_REQUIRED = 426, | 1347 | MHD_HTTP_UPGRADE_REQUIRED = 426, |
1162 | 1348 | ||
1163 | MHD_HTTP_PRECONDITION_REQUIRED = 428, | 1349 | MHD_HTTP_PRECONDITION_REQUIRED = 428, |
1164 | MHD_HTTP_TOO_MANY_REQUESTS = 429, | 1350 | MHD_HTTP_TOO_MANY_REQUESTS = 429, |
1165 | MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE = 431, | 1351 | MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE = 431, |
1166 | 1352 | ||
1167 | MHD_HTTP_NO_RESPONSE = 444, | 1353 | MHD_HTTP_NO_RESPONSE = 444, /* IANA: unused */ |
1168 | 1354 | ||
1169 | MHD_HTTP_RETRY_WITH = 449, | 1355 | MHD_HTTP_RETRY_WITH = 449, /* IANA: unused */ |
1170 | MHD_HTTP_BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS = 450, | 1356 | MHD_HTTP_BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS = 450, /* IANA: unused */ |
1171 | MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS = 451, | 1357 | MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS = 451, |
1172 | 1358 | ||
1173 | MHD_HTTP_INTERNAL_SERVER_ERROR = 500, | 1359 | MHD_HTTP_INTERNAL_SERVER_ERROR = 500, |
@@ -1179,7 +1365,7 @@ enum MHD_HTTP_StatusCode { | |||
1179 | MHD_HTTP_VARIANT_ALSO_NEGOTIATES = 506, | 1365 | MHD_HTTP_VARIANT_ALSO_NEGOTIATES = 506, |
1180 | MHD_HTTP_INSUFFICIENT_STORAGE = 507, | 1366 | MHD_HTTP_INSUFFICIENT_STORAGE = 507, |
1181 | MHD_HTTP_LOOP_DETECTED = 508, | 1367 | MHD_HTTP_LOOP_DETECTED = 508, |
1182 | MHD_HTTP_BANDWIDTH_LIMIT_EXCEEDED = 509, | 1368 | MHD_HTTP_BANDWIDTH_LIMIT_EXCEEDED = 509, /* IANA: unused */ |
1183 | MHD_HTTP_NOT_EXTENDED = 510, | 1369 | MHD_HTTP_NOT_EXTENDED = 510, |
1184 | MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED = 511 | 1370 | MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED = 511 |
1185 | 1371 | ||
@@ -1273,17 +1459,21 @@ _MHD_EXTERN void | |||
1273 | MHD_response_option_v10_only (struct MHD_Response *response); | 1459 | MHD_response_option_v10_only (struct MHD_Response *response); |
1274 | 1460 | ||
1275 | 1461 | ||
1276 | /** * Signature of the callback used by MHD to notify the | 1462 | /** |
1463 | * Signature of the callback used by MHD to notify the | ||
1277 | * application about completed requests. | 1464 | * application about completed requests. |
1278 | * | 1465 | * |
1279 | * @param cls client-defined closure | 1466 | * @param cls client-defined closure |
1280 | * @param toe reason for request termination | 1467 | * @param toe reason for request termination |
1468 | * @param request_context request context value, as originally | ||
1469 | * returned by the #MHD_EarlyUriLogCallback | ||
1281 | * @see #MHD_option_request_completion() | 1470 | * @see #MHD_option_request_completion() |
1282 | * @ingroup request | 1471 | * @ingroup request |
1283 | */ | 1472 | */ |
1284 | typedef void | 1473 | typedef void |
1285 | (*MHD_RequestTerminationCallback) (void *cls, | 1474 | (*MHD_RequestTerminationCallback) (void *cls, |
1286 | enum MHD_RequestTerminationCode toe); | 1475 | enum MHD_RequestTerminationCode toe, |
1476 | void *request_context); | ||
1287 | 1477 | ||
1288 | 1478 | ||
1289 | /** | 1479 | /** |
@@ -1932,6 +2122,12 @@ union MHD_RequestInformation | |||
1932 | struct MHD_Connection *connection; | 2122 | struct MHD_Connection *connection; |
1933 | 2123 | ||
1934 | /** | 2124 | /** |
2125 | * Socket-specific client context. Will also be given to | ||
2126 | * the application in a #MHD_RequestTerminationCallback. | ||
2127 | */ | ||
2128 | void *request_context; | ||
2129 | |||
2130 | /** | ||
1935 | * The suspended status of a request. | 2131 | * The suspended status of a request. |
1936 | */ | 2132 | */ |
1937 | enum MHD_Bool suspended; | 2133 | enum MHD_Bool suspended; |