aboutsummaryrefslogtreecommitdiff
path: root/src/include/microhttpd2.h
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-10-07 08:23:36 +0200
committerChristian Grothoff <christian@grothoff.org>2017-10-07 08:23:36 +0200
commit181ac3c59fffd599cd6b351940bffd5c6c930fd7 (patch)
tree83ee968642d4d79eec0f89bebe91cdf32f273daf /src/include/microhttpd2.h
parent934bc1a71f76c7535a4405a6118ce11c608b666a (diff)
downloadlibmicrohttpd-181ac3c59fffd599cd6b351940bffd5c6c930fd7.tar.gz
libmicrohttpd-181ac3c59fffd599cd6b351940bffd5c6c930fd7.zip
include full method list
Diffstat (limited to 'src/include/microhttpd2.h')
-rw-r--r--src/include/microhttpd2.h232
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 */
165enum MHD_Method 171enum 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 */
827typedef void * 1004typedef 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
834MHD_daemon_set_early_uri_logger (struct MHD_Daemon *daemon, 1020MHD_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
1273MHD_response_option_v10_only (struct MHD_Response *response); 1459MHD_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 */
1284typedef void 1473typedef 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;