📄 http.h
字号:
#ifndef __DOND_HTTP_H#define __DOND_HTTP_H#define SIZE_INT sizeof (int)#define MAX_PORT 65535#define SIZE_SOCKADDR (socklen_t) sizeof (struct sockaddr)#define MAX_LEN_DOMAIN 128#define MIN_LEN_DOMAIN 1#define MAX_LEN_PORT 6#define MIN_LEN_PORT 0#define MAX_LEN_PATH 512#define MIN_LEN_PATH 2#define MAX_LEN_URL_HTTP (MAX_LEN_DOMAIN + MAX_LEN_PORT + MAX_LEN_PATH + 1)#define MIN_LEN_URL_HTTP (MIN_LEN_DOMAIN + MIN_LEN_PORT + MIN_LEN_PATH)#define RES_OK_1_1 "HTTP/1.1 2"#define RES_RED_1_1 "HTTP/1.1 3"#define RES_OK_1_0 "HTTP/1.0 2"#define RES_RED_1_0 "HTTP/1.0 3"#define RES_RANGE_1_1 "HTTP/1.0 206"#define RES_RANGE_1_0 "HTTP/1.1 206"#define LEN_RES_RANGE (sizeof (RES_RANGE_1_1) - 1)#define LEN_HTTP_RES (sizeof (RES_OK_1_1) - 1)#define CONTENT_PFIX "\r\n\r\n"#define LEN_CONTENT_PFIX (sizeof ("\r\n\r\n") - 1)#define CONTENT_LENGTH "Content-Length"#define LEN_CONTENT_LENGTH (sizeof (CONTENT_LENGTH) - 1)#define HEAD_TERMINAL "\r\n"#define WHITE_SPACE ' '#define TAB '\t'#define SCHEME_HTTP "http"#define LEN_SCHEME_HTTP (sizeof (SCHEME_HTTP) - 1)#define CMD_OK 1#define CMD_DONE 2#define CMD_RETRY 3#define CMD_ERR -1#define MAX_RETRY 10#define SIZE_CMD 2#define CONNECTS_NUM 16#define COUNT_READ 22#define KB (1<<10)#define MB (1<<20)#define C_ISNUM(c) (((c >= '0') && (c <= '9' ))? 1: 0)#define C_ISBLANK(c) (((TAB == c) || (WHITE_SPACE == c))? 1: 0)#define C_ISLOWER(c) (((c >= 'a') && (c <= 'z'))? 1: 0)#define C_ISUPPER(c) (((c >= 'A') && (c <= 'A'))? 1: 0)#define C_ISALPHA(c) ((C_ISUPPER (c) || C_ISLOWER (c))? 1: 0)#define min(a, b) ((a < b)? a: b)struct file_range{ int fd; off_t offset; size_t nbytes; char recv;};struct resource_info{ struct sockaddr_in sockaddr; char *path; size_t len_path; size_t size;};struct command{ int value; void *opt;};struct url_http{ char *domain; size_t len_domain; char *port; size_t len_port; char *path; size_t len_path;};/* display total of download bytes by http handler. *//* argument of display_result. */struct display_args{ size_t file_size; /* resource size. */ size_t nbytes_read; /* has been download. */};/* send request to get resource. *//* arguments of send_request_get_file. */struct send_args{ struct file_range fr; /* range of resource. */ struct resource_info *resource; /* information of resource. */ int fd_output; /* used to pass socket fd that has been connected. */};#endif /* __DOND_HTTP_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -