⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globals.h

📁 嵌入式linux下web服务器, 解压后运行mymk即可,在arm-linux3.4.1下测试通过.
💻 H
字号:
/* *  Boa, an http server *  Copyright (C) 1995 Paul Phillips <paulp@go2net.com> *  Copyright (C) 1996-2005 Larry Doolittle <ldoolitt@boa.org> *  Copyright (C) 1997-2004 Jon Nelson <jnelson@boa.org> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 1, or (at your option) *  any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *//* $Id: globals.h,v 1.65.2.29 2005/02/22 14:11:29 jnelson Exp $*/#ifndef _GLOBALS_H#define _GLOBALS_H/********************** METHODS **********************/enum HTTP_METHOD { M_GET = 1, M_HEAD, M_PUT, M_POST,    M_DELETE, M_LINK, M_UNLINK, M_MOVE, M_TRACE};/******************* HTTP VERSIONS *******************/enum HTTP_VERSION { HTTP09=1, HTTP10, HTTP11 };/************** REQUEST STATUS (req->status) ***************/enum REQ_STATUS { READ_HEADER, ONE_CR, ONE_LF, TWO_CR,    BODY_READ, BODY_WRITE,    WRITE,    PIPE_READ, PIPE_WRITE,    IOSHUFFLE,    DONE,    TIMED_OUT,    DEAD};/******************* RESPONSE CODES ******************/enum RESPONSE_CODE { R_CONTINUE = 100,                     R_REQUEST_OK = 200,                     R_CREATED,                     R_ACCEPTED,                     R_PROVISIONAL,                     R_NO_CONTENT,                     R_205,                     R_PARTIAL_CONTENT,                     R_MULTIPLE = 300,                     R_MOVED_PERM,                     R_MOVED_TEMP,                     R_303,                     R_NOT_MODIFIED,                     R_BAD_REQUEST = 400,                     R_UNAUTHORIZED,                     R_PAYMENT,                     R_FORBIDDEN,                     R_NOT_FOUND,                     R_METHOD_NA, /* method not allowed */                     R_NON_ACC,   /* non acceptable */                     R_PROXY,     /* proxy auth required */                     R_REQUEST_TO, /* request timeout */                     R_CONFLICT,                     R_GONE,                     R_LENGTH_REQUIRED,                     R_PRECONDITION_FAILED,                     R_REQUEST_URI_TOO_LONG = 414,                     R_INVALID_RANGE = 416,                     R_ERROR = 500,                     R_NOT_IMP,                     R_BAD_GATEWAY,                     R_SERVICE_UNAV,                     R_GATEWAY_TO, /* gateway timeout */                     R_BAD_VERSION };/************* ALIAS TYPES (aliasp->type) ***************/enum ALIAS { ALIAS, SCRIPTALIAS, REDIRECT };/*********** KEEPALIVE CONSTANTS (req->keepalive) *******/enum KA_STATUS { KA_INACTIVE, KA_ACTIVE, KA_STOPPED };/********* CGI STATUS CONSTANTS (req->cgi_status) *******/enum CGI_STATUS { CGI_PARSE, CGI_BUFFER, CGI_DONE };/************** CGI TYPE (req->is_cgi) ******************/enum CGI_TYPE { NPH = 1, CGI };/**************** STRUCTURES ****************************/struct range {    unsigned long start;    unsigned long stop;    struct range *next;};typedef struct range Range;struct mmap_entry {    dev_t dev;    ino_t ino;    char *mmap;    int use_count;    off_t len;};struct request {                /* pending requests */    enum REQ_STATUS status;    enum KA_STATUS keepalive;   /* keepalive status */    enum HTTP_VERSION http_version;    enum HTTP_METHOD method;    /* M_GET, M_POST, etc. */    enum RESPONSE_CODE response_status; /* R_NOT_FOUND, etc.. */    enum CGI_TYPE cgi_type;    enum CGI_STATUS cgi_status;    /* should pollfd_id be zeroable or no ? */#ifdef HAVE_POLL    int pollfd_id;#endif    char *pathname;             /* pathname of requested file */    Range *ranges;              /* our Ranges */    int numranges;    int data_fd;                /* fd of data */    unsigned long filesize;     /* filesize */    unsigned long filepos;      /* position in file */    unsigned long bytes_written; /* total bytes written (sans header) */    char *data_mem;             /* mmapped/malloced char array */    char *logline;              /* line to log file */    char *header_line;          /* beginning of un or incompletely processed header line */    char *header_end;           /* last known end of header, or end of processed data */    int parse_pos;              /* how much have we parsed */    int buffer_start;           /* where the buffer starts */    int buffer_end;             /* where the buffer ends */    char *if_modified_since;    /* If-Modified-Since */    time_t last_modified;       /* Last-modified: */    /* CGI vars */    int cgi_env_index;          /* index into array */    /* Agent and referer for logfiles */    char *header_host;    char *header_user_agent;    char *header_referer;    char *header_ifrange;    char *host;                 /* what we end up using for 'host', no matter the contents of header_host */    int post_data_fd;           /* fd for post data tmpfile */    char *path_info;            /* env variable */    char *path_translated;      /* env variable */    char *script_name;          /* env variable */    char *query_string;         /* env variable */    char *content_type;         /* env variable */    char *content_length;       /* env variable */    struct mmap_entry *mmap_entry_var;    /* everything **above** this line is zeroed in sanitize_request */    /* this may include 'fd' */    /* in sanitize_request with the 'new' parameter set to 1,     * kacount is set to ka_max and client_stream_pos is also zeroed.     * Also, time_last is set to 'NOW'     */    int fd;                     /* client's socket fd */    time_t time_last;           /* time of last succ. op. */    char local_ip_addr[BOA_NI_MAXHOST]; /* for virtualhost */    char remote_ip_addr[BOA_NI_MAXHOST]; /* after inet_ntoa */    unsigned int remote_port;            /* could be used for ident */    unsigned int kacount;                /* keepalive count */    int client_stream_pos;      /* how much have we read... */    /* everything below this line is kept regardless */    char buffer[BUFFER_SIZE + 1]; /* generic I/O buffer */    char request_uri[MAX_HEADER_LENGTH + 1]; /* uri */    char client_stream[CLIENT_STREAM_SIZE]; /* data from client - fit or be hosed */    char *cgi_env[CGI_ENV_MAX + 4]; /* CGI environment */#ifdef ACCEPT_ON    char accept[MAX_ACCEPT_LENGTH]; /* Accept: fields */#endif    struct request *next;       /* next */    struct request *prev;       /* previous */};typedef struct request request;struct status {    long requests;    long errors;};extern struct status status;extern char *optarg;            /* For getopt */extern request *request_ready;  /* first in ready list */extern request *request_block;  /* first in blocked list */extern request *request_free;   /* first in free list */#ifdef HAVE_POLLextern struct pollfd *pfds;extern unsigned int pfd_len;#elseextern fd_set block_read_fdset; /* fds blocked on read */extern fd_set block_write_fdset; /* fds blocked on write */extern int max_fd;#endif/* global server variables */extern char *access_log_name;extern char *error_log_name;extern char *cgi_log_name;extern int cgi_log_fd;extern int use_localtime;extern unsigned int server_port;extern uid_t server_uid;extern gid_t server_gid;extern char *server_admin;extern char *server_root;extern char *server_name;extern char *server_ip;extern char *document_root;extern char *user_dir;extern char *directory_index;extern char *default_type;extern char *default_charset;extern char *dirmaker;extern char *mime_types;extern char *pid_file;extern char *cachedir;extern const char *tempdir;extern char *cgi_path;extern short common_cgi_env_count;extern int single_post_limit;extern int conceal_server_identity;extern int ka_timeout;extern int unsigned default_timeout;extern int unsigned ka_max;extern int sighup_flag;extern int sigchld_flag;extern int sigalrm_flag;extern int sigterm_flag;extern time_t start_time;extern int pending_requests;extern unsigned max_connections;extern int verbose_cgi_logs;extern int backlog;extern time_t current_time;extern int virtualhost;extern char *vhost_root;extern const char *default_vhost;extern unsigned total_connections;extern unsigned int system_bufsize;      /* Default size of SNDBUF given by system */extern sigjmp_buf env;extern int handle_sigbus;extern unsigned int cgi_umask;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -