82 lines
2.4 KiB
C
Executable File
82 lines
2.4 KiB
C
Executable File
/*
|
|
+----------------------------------------------------------------------+
|
|
| Swoole |
|
|
+----------------------------------------------------------------------+
|
|
| This source file is subject to version 2.0 of the Apache license, |
|
|
| that is bundled with this package in the file LICENSE, and is |
|
|
| available through the world-wide-web at the following url: |
|
|
| http://www.apache.org/licenses/LICENSE-2.0.html |
|
|
| If you did not receive a copy of the Apache2.0 license and are unable|
|
|
| to obtain it through the world-wide-web, please send a note to |
|
|
| license@php.net so we can mail you a copy immediately. |
|
|
+----------------------------------------------------------------------+
|
|
| Author: Tianfeng Han <mikan.tenny@gmail.com> |
|
|
+----------------------------------------------------------------------+
|
|
*/
|
|
|
|
#ifndef SW_HTTP_H_
|
|
#define SW_HTTP_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include <sys/types.h>
|
|
#include <stdint.h>
|
|
|
|
enum swHttpMethod
|
|
{
|
|
HTTP_DELETE = 1, HTTP_GET, HTTP_HEAD, HTTP_POST, HTTP_PUT, HTTP_PATCH,
|
|
/* pathological */
|
|
HTTP_CONNECT, HTTP_OPTIONS, HTTP_TRACE,
|
|
/* webdav */
|
|
HTTP_COPY, HTTP_LOCK, HTTP_MKCOL, HTTP_MOVE, HTTP_PROPFIND, HTTP_PROPPATCH, HTTP_UNLOCK,
|
|
/* subversion */
|
|
HTTP_REPORT, HTTP_MKACTIVITY, HTTP_CHECKOUT, HTTP_MERGE,
|
|
/* upnp */
|
|
HTTP_MSEARCH, HTTP_NOTIFY, HTTP_SUBSCRIBE, HTTP_UNSUBSCRIBE,
|
|
/* Http2 */
|
|
HTTP_PRI,
|
|
};
|
|
|
|
enum swHttpVersion
|
|
{
|
|
HTTP_VERSION_10 = 1,
|
|
HTTP_VERSION_11,
|
|
};
|
|
|
|
typedef struct _swHttpRequest
|
|
{
|
|
uint8_t method;
|
|
uint8_t offset;
|
|
uint8_t version;
|
|
uint8_t free_memory;
|
|
uint8_t opcode;
|
|
uint8_t excepted;
|
|
|
|
uint32_t url_offset;
|
|
uint32_t url_length;
|
|
|
|
uint32_t header_length;
|
|
uint32_t content_length;
|
|
swString *buffer;
|
|
|
|
} swHttpRequest;
|
|
|
|
int swHttp_get_method(const char *method_str, int method_len);
|
|
const char* swHttp_get_method_string(int method);
|
|
int swHttpRequest_get_protocol(swHttpRequest *request);
|
|
int swHttpRequest_get_content_length(swHttpRequest *request);
|
|
int swHttpRequest_get_header_length(swHttpRequest *request);
|
|
void swHttpRequest_free(swConnection *conn);
|
|
#ifdef SW_HTTP_100_CONTINUE
|
|
int swHttpRequest_has_expect_header(swHttpRequest *request);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* SW_HTTP_H_ */
|