亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? http_core.h

?? Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef APACHE_HTTP_CORE_H
#define APACHE_HTTP_CORE_H

#include "apr.h"
#include "apr_hash.h"
#include "apr_optional.h"
#include "util_filter.h"

#if APR_HAVE_STRUCT_RLIMIT
#include <sys/time.h>
#include <sys/resource.h>
#endif


#ifdef __cplusplus
extern "C" {
#endif

/**
 * @package CORE HTTP Daemon
 */

/* ****************************************************************
 *
 * The most basic server code is encapsulated in a single module
 * known as the core, which is just *barely* functional enough to
 * serve documents, though not terribly well.
 *
 * Largely for NCSA back-compatibility reasons, the core needs to
 * make pieces of its config structures available to other modules.
 * The accessors are declared here, along with the interpretation
 * of one of them (allow_options).
 */

#define OPT_NONE 0
#define OPT_INDEXES 1
#define OPT_INCLUDES 2
#define OPT_SYM_LINKS 4
#define OPT_EXECCGI 8
#define OPT_UNSET 16
#define OPT_INCNOEXEC 32
#define OPT_SYM_OWNER 64
#define OPT_MULTI 128
#define OPT_ALL (OPT_INDEXES|OPT_INCLUDES|OPT_SYM_LINKS|OPT_EXECCGI)

/* options for get_remote_host() */
/* REMOTE_HOST returns the hostname, or NULL if the hostname
 * lookup fails.  It will force a DNS lookup according to the
 * HostnameLookups setting.
 */
#define REMOTE_HOST (0)

/* REMOTE_NAME returns the hostname, or the dotted quad if the
 * hostname lookup fails.  It will force a DNS lookup according
 * to the HostnameLookups setting.
 */
#define REMOTE_NAME (1)

/* REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is
 * never forced.
 */
#define REMOTE_NOLOOKUP (2)

/* REMOTE_DOUBLE_REV will always force a DNS lookup, and also force
 * a double reverse lookup, regardless of the HostnameLookups
 * setting.  The result is the (double reverse checked) hostname,
 * or NULL if any of the lookups fail.
 */
#define REMOTE_DOUBLE_REV (3)

#define SATISFY_ALL 0
#define SATISFY_ANY 1
#define SATISFY_NOSPEC 2

/* Make sure we don't write less than 8000 bytes at any one time.
 */
#define AP_MIN_BYTES_TO_WRITE  8000

/* default maximum of internal redirects */
# define AP_DEFAULT_MAX_INTERNAL_REDIRECTS 10

/* default maximum subrequest nesting level */
# define AP_DEFAULT_MAX_SUBREQ_DEPTH 10

/**
 * Retrieve the value of Options for this request
 * @param r The current request
 * @return the Options bitmask
 * @deffunc int ap_allow_options(request_rec *r)
 */
AP_DECLARE(int) ap_allow_options(request_rec *r);

/**
 * Retrieve the value of the AllowOverride for this request
 * @param r The current request
 * @return the overrides bitmask
 * @deffunc int ap_allow_overrides(request_rec *r)
 */
AP_DECLARE(int) ap_allow_overrides(request_rec *r);

/**
 * Retrieve the value of the DefaultType directive, or text/plain if not set
 * @param r The current request
 * @return The default type
 * @deffunc const char *ap_default_type(request_rec *r)
 */
AP_DECLARE(const char *) ap_default_type(request_rec *r);     

/**
 * Retrieve the document root for this server
 * @param r The current request
 * @warning Don't use this!  If your request went through a Userdir, or 
 * something like that, it'll screw you.  But it's back-compatible...
 * @return The document root
 * @deffunc const char *ap_document_root(request_rec *r)
 */
AP_DECLARE(const char *) ap_document_root(request_rec *r);

/**
 * Lookup the remote client's DNS name or IP address
 * @param conn The current connection
 * @param dir_config The directory config vector from the request
 * @param type The type of lookup to perform.  One of:
 * <pre>
 *     REMOTE_HOST returns the hostname, or NULL if the hostname
 *                 lookup fails.  It will force a DNS lookup according to the
 *                 HostnameLookups setting.
 *     REMOTE_NAME returns the hostname, or the dotted quad if the
 *                 hostname lookup fails.  It will force a DNS lookup according
 *                 to the HostnameLookups setting.
 *     REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is
 *                     never forced.
 *     REMOTE_DOUBLE_REV will always force a DNS lookup, and also force
 *                   a double reverse lookup, regardless of the HostnameLookups
 *                   setting.  The result is the (double reverse checked) 
 *                   hostname, or NULL if any of the lookups fail.
 * </pre>
 * @param str_is_ip unless NULL is passed, this will be set to non-zero on output when an IP address 
 *        string is returned
 * @return The remote hostname
 * @deffunc const char *ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip)
 */
AP_DECLARE(const char *) ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip);

/**
 * Retrieve the login name of the remote user.  Undef if it could not be
 * determined
 * @param r The current request
 * @return The user logged in to the client machine
 * @deffunc const char *ap_get_remote_logname(request_rec *r)
 */
AP_DECLARE(const char *) ap_get_remote_logname(request_rec *r);

/* Used for constructing self-referencing URLs, and things like SERVER_PORT,
 * and SERVER_NAME.
 */
/**
 * build a fully qualified URL from the uri and information in the request rec
 * @param p The pool to allocate the URL from
 * @param uri The path to the requested file
 * @param r The current request
 * @return A fully qualified URL
 * @deffunc char *ap_construct_url(apr_pool_t *p, const char *uri, request_rec *r)
 */
AP_DECLARE(char *) ap_construct_url(apr_pool_t *p, const char *uri, request_rec *r);

/**
 * Get the current server name from the request
 * @param r The current request
 * @return the server name
 * @deffunc const char *ap_get_server_name(request_rec *r)
 */
AP_DECLARE(const char *) ap_get_server_name(request_rec *r);

/**
 * Get the current server port
 * @param The current request
 * @return The server's port
 * @deffunc apr_port_t ap_get_server_port(const request_rec *r)
 */
AP_DECLARE(apr_port_t) ap_get_server_port(const request_rec *r);

/**
 * Return the limit on bytes in request msg body 
 * @param r The current request
 * @return the maximum number of bytes in the request msg body
 * @deffunc apr_off_t ap_get_limit_req_body(const request_rec *r)
 */
AP_DECLARE(apr_off_t) ap_get_limit_req_body(const request_rec *r);

/**
 * Return the limit on bytes in XML request msg body
 * @param r The current request
 * @return the maximum number of bytes in XML request msg body
 * @deffunc size_t ap_get_limit_xml_body(const request_rec *r)
 */
AP_DECLARE(size_t) ap_get_limit_xml_body(const request_rec *r);

/**
 * Install a custom response handler for a given status
 * @param r The current request
 * @param status The status for which the custom response should be used
 * @param string The custom response.  This can be a static string, a file
 *               or a URL
 */
AP_DECLARE(void) ap_custom_response(request_rec *r, int status, const char *string);

/**
 * Check if the current request is beyond the configured max. number of redirects or subrequests
 * @param r The current request
 * @return true (is exceeded) or false
 * @deffunc int ap_is_recursion_limit_exceeded(const request_rec *r)
 */
AP_DECLARE(int) ap_is_recursion_limit_exceeded(const request_rec *r);

/**
 * Check for a definition from the server command line
 * @param name The define to check for
 * @return 1 if defined, 0 otherwise
 * @deffunc int ap_exists_config_define(const char *name)
 */
AP_DECLARE(int) ap_exists_config_define(const char *name);
/* FIXME! See STATUS about how */
AP_DECLARE_NONSTD(int) ap_core_translate(request_rec *r);

/* Authentication stuff.  This is one of the places where compatibility
 * with the old config files *really* hurts; they don't discriminate at
 * all between different authentication schemes, meaning that we need
 * to maintain common state for all of them in the core, and make it
 * available to the other modules through interfaces.
 */
typedef struct require_line require_line;

/** A structure to keep track of authorization requirements */
struct require_line {
    /** Where the require line is in the config file. */
    apr_int64_t method_mask;
    /** The complete string from the command line */
    char *requirement;
};
     
/**
 * Return the type of authorization required for this request
 * @param r The current request
 * @return The authorization required
 * @deffunc const char *ap_auth_type(request_rec *r)
 */
AP_DECLARE(const char *) ap_auth_type(request_rec *r);

/**
 * Return the current Authorization realm
 * @param r The current request
 * @return The current authorization realm
 * @deffunc const char *ap_auth_name(request_rec *r)
 */
AP_DECLARE(const char *) ap_auth_name(request_rec *r);     

/**
 * How the requires lines must be met.
 * @param r The current request
 * @return How the requirements must be met.  One of:
 * <pre>
 *      SATISFY_ANY    -- any of the requirements must be met.
 *      SATISFY_ALL    -- all of the requirements must be met.
 *      SATISFY_NOSPEC -- There are no applicable satisfy lines
 * </pre>
 * @deffunc int ap_satisfies(request_rec *r)
 */
AP_DECLARE(int) ap_satisfies(request_rec *r);

/**
 * Retrieve information about all of the requires directives for this request
 * @param r The current request
 * @return An array of all requires directives for this request
 * @deffunc const apr_array_header_t *ap_requires(request_rec *r)
 */
AP_DECLARE(const apr_array_header_t *) ap_requires(request_rec *r);    

#ifdef CORE_PRIVATE

/*
 * Core is also unlike other modules in being implemented in more than
 * one file... so, data structures are declared here, even though most of
 * the code that cares really is in http_core.c.  Also, another accessor.
 */

AP_DECLARE_DATA extern module core_module;

/* Per-request configuration */

typedef struct {
    /* bucket brigade used by getline for look-ahead and 
     * ap_get_client_block for holding left-over request body */
    struct apr_bucket_brigade *bb;

    /* an array of per-request working data elements, accessed
     * by ID using ap_get_request_note()
     * (Use ap_register_request_note() during initialization
     * to add elements)
     */
    void **notes;

    /* There is a script processor installed on the output filter chain,
     * so it needs the default_handler to deliver a (script) file into
     * the chain so it can process it. Normally, default_handler only

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本一区二区三区| 欧美成人三级电影在线| 日韩免费视频线观看| 中文字幕一区二区视频| 麻豆精品一区二区三区| 91视频免费看| 欧美激情综合五月色丁香| 日本成人中文字幕在线视频| 一本大道av一区二区在线播放| 日韩精品一区二区三区swag| 亚洲一区二区三区四区中文字幕| 粉嫩一区二区三区在线看| 日韩美女视频在线| 日韩电影在线一区| 欧美亚洲精品一区| 亚洲一区二区三区四区五区黄| 成人不卡免费av| 久久精品网站免费观看| 久久99精品国产麻豆婷婷| 欧美精品视频www在线观看| 亚洲图片自拍偷拍| 一本到高清视频免费精品| 亚洲图片另类小说| 99国产欧美久久久精品| 亚洲欧美一区二区在线观看| 成人午夜视频网站| 中文字幕久久午夜不卡| 粉嫩久久99精品久久久久久夜| 久久久精品综合| 国产一区二区三区| 国产欧美日韩精品在线| 国产成人亚洲综合色影视| 久久久久久久久岛国免费| 国产综合久久久久久久久久久久| 欧美成人精品二区三区99精品| 美国十次综合导航| 久久精品在线免费观看| 国产成人精品亚洲午夜麻豆| 欧美国产一区二区在线观看| 国产99久久久国产精品| 亚洲欧美在线观看| 欧美色老头old∨ideo| 日韩一区欧美二区| 久久人人超碰精品| 成人黄动漫网站免费app| 一区二区三区四区国产精品| 欧美日韩国产大片| 狠狠久久亚洲欧美| 国产欧美精品一区二区三区四区 | 色欧美乱欧美15图片| 一区二区三区四区五区视频在线观看 | 中文字幕欧美日本乱码一线二线| 成人福利电影精品一区二区在线观看| 亚洲欧美一区二区不卡| 欧美日韩免费观看一区三区| 久久国产福利国产秒拍| 国产精品美女一区二区在线观看| 91久久一区二区| 青青草视频一区| 久久久综合视频| 色狠狠色噜噜噜综合网| 毛片不卡一区二区| 亚洲日本在线天堂| 日韩一卡二卡三卡四卡| 不卡av在线网| 久久激情五月婷婷| 一区二区三区四区在线播放| 日韩欧美视频在线| 成人免费高清在线| 婷婷六月综合亚洲| 久久新电视剧免费观看| 不卡av在线网| 免费看黄色91| 亚洲激情中文1区| 日韩一区二区精品在线观看| 97精品电影院| 九九视频精品免费| 亚洲一区二区三区不卡国产欧美| 欧美精品一区二区三区视频| 91福利视频久久久久| 国产伦精品一区二区三区免费迷| 一区二区三区成人| 国产日产欧美一区二区视频| 欧美日韩精品一区二区三区| www.爱久久.com| 黄页视频在线91| 五月婷婷综合激情| 亚洲伦理在线精品| 久久色在线观看| 日韩精品一区二区三区中文精品| 91国偷自产一区二区开放时间| 国产成人午夜精品5599| 日本aⅴ精品一区二区三区| 一区二区三区在线视频免费| 中文字幕av一区二区三区高| 欧美成人aa大片| 日韩欧美在线综合网| 欧美放荡的少妇| 欧美日韩另类一区| 欧美性大战久久| 91久久人澡人人添人人爽欧美 | 国产91精品一区二区麻豆网站| 日韩国产欧美一区二区三区| 亚洲一区视频在线| 日韩精品电影在线观看| 亚洲成人在线观看视频| 伊人婷婷欧美激情| 亚洲免费观看高清完整版在线观看 | 一区二区在线看| 成人欧美一区二区三区| 国产精品丝袜一区| 亚洲天堂中文字幕| 中文字幕一区二区三区精华液| 国产欧美一区在线| 国产精品久久久久久福利一牛影视| 国产精品网站一区| 亚洲品质自拍视频| 亚洲一区中文在线| 日韩av电影天堂| 国产一区二区中文字幕| 国产精品影音先锋| 国v精品久久久网| av不卡在线观看| 91免费精品国自产拍在线不卡| 色悠悠亚洲一区二区| 欧美最新大片在线看 | 色婷婷久久久亚洲一区二区三区 | 国产不卡高清在线观看视频| 成人a免费在线看| 色婷婷精品大视频在线蜜桃视频 | 精品免费视频一区二区| 久久网这里都是精品| 亚洲欧洲av在线| 天天综合天天综合色| 久久国产剧场电影| 成人精品在线视频观看| 在线欧美日韩精品| 日韩精品在线看片z| 国产精品对白交换视频 | 91免费国产视频网站| 欧美视频在线一区二区三区| 日韩视频一区二区三区在线播放| 久久青草欧美一区二区三区| 国产精品精品国产色婷婷| 一区二区三区四区激情| 美国毛片一区二区| 成人免费高清在线| 777亚洲妇女| 国产精品国产三级国产普通话三级 | 欧美一区二区视频在线观看| 亚洲国产精品传媒在线观看| 亚洲午夜国产一区99re久久| 国产一区二区三区免费在线观看| 色婷婷久久久亚洲一区二区三区| 日韩一区二区在线看片| 亚洲欧洲www| 久久狠狠亚洲综合| 精品视频免费看| 久久久久久麻豆| 午夜精品久久久久久久99樱桃| 国产成人在线电影| 日韩女优电影在线观看| 亚洲三级在线播放| 国产成人亚洲精品狼色在线| 制服丝袜亚洲播放| 亚洲精品中文在线影院| 国产成人综合亚洲91猫咪| 日韩午夜av电影| a亚洲天堂av| 精品国产91亚洲一区二区三区婷婷 | 亚洲欧美日韩国产手机在线| 国产老肥熟一区二区三区| 91精品国产全国免费观看| 亚洲精品国产精品乱码不99| 成人午夜激情视频| 久久嫩草精品久久久久| 午夜精品免费在线| 欧美色视频在线| 亚洲黄色性网站| 91视频在线观看免费| 中文字幕一区二区日韩精品绯色| 国内外精品视频| 日韩欧美一级特黄在线播放| 无码av免费一区二区三区试看| 91伊人久久大香线蕉| 国产精品免费观看视频| 国产精品1区2区| 国产色产综合色产在线视频| 免费欧美在线视频| 欧美一区国产二区| 日本aⅴ亚洲精品中文乱码| 欧美日本在线看| 亚洲自拍偷拍麻豆| 欧美性猛交xxxx黑人交 | 国产精品久久久久久久岛一牛影视 | 国产区在线观看成人精品| 国产剧情一区二区| 国产午夜精品一区二区三区嫩草 | 精品少妇一区二区三区在线视频| 午夜精品在线视频一区|