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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mod_proxy.h

?? Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
?? H
字號:
/* 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 MOD_PROXY_H
#define MOD_PROXY_H 

/*
 * Main include file for the Apache proxy
 */

/*

   Also note numerous FIXMEs and CHECKMEs which should be eliminated.

   This code is once again experimental!

   Things to do:

   1. Make it completely work (for FTP too)

   2. HTTP/1.1

   Chuck Murcko <chuck@topsail.org> 02-06-01

 */

#define CORE_PRIVATE

#include "apr_hooks.h"
#include "apr.h"
#include "apr_lib.h"
#include "apr_strings.h"
#include "apr_buckets.h"
#include "apr_md5.h"
#include "apr_network_io.h"
#include "apr_pools.h"
#include "apr_strings.h"
#include "apr_uri.h"
#include "apr_date.h"
#include "apr_fnmatch.h"
#define APR_WANT_STRFUNC
#include "apr_want.h"

#include "httpd.h"
#include "http_config.h"
#include "ap_config.h"
#include "http_core.h"
#include "http_protocol.h"
#include "http_request.h"
#include "http_vhost.h"
#include "http_main.h"
#include "http_log.h"
#include "http_connection.h"
#include "util_filter.h"
#include "util_ebcdic.h"

#if APR_HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#if APR_HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif

/* for proxy_canonenc() */
enum enctype {
    enc_path, enc_search, enc_user, enc_fpath, enc_parm
};

#if APR_CHARSET_EBCDIC
#define CRLF   "\r\n"
#else /*APR_CHARSET_EBCDIC*/
#define CRLF   "\015\012"
#endif /*APR_CHARSET_EBCDIC*/

/* default Max-Forwards header setting */
#define DEFAULT_MAX_FORWARDS	10

/* static information about a remote proxy */
struct proxy_remote {
    const char *scheme;		/* the schemes handled by this proxy, or '*' */
    const char *protocol;	/* the scheme used to talk to this proxy */
    const char *hostname;	/* the hostname of this proxy */
    apr_port_t  port;		/* the port for this proxy */
    regex_t *regexp;		/* compiled regex (if any) for the remote */
    int use_regex;		/* simple boolean. True if we have a regex pattern */
};

struct proxy_alias {
    const char *real;
    const char *fake;
};

struct dirconn_entry {
    char *name;
    struct in_addr addr, mask;
    struct apr_sockaddr_t *hostaddr;
    int (*matcher) (struct dirconn_entry * This, request_rec *r);
};

struct noproxy_entry {
    const char *name;
    struct apr_sockaddr_t *addr;
};

typedef struct {
    apr_array_header_t *proxies;
    apr_array_header_t *sec_proxy;
    apr_array_header_t *aliases;
    apr_array_header_t *raliases;
    apr_array_header_t *noproxies;
    apr_array_header_t *dirconn;
    apr_array_header_t *allowed_connect_ports;
    const char *domain;		/* domain name to use in absence of a domain name in the request */
    int req;			/* true if proxy requests are enabled */
    char req_set;
    enum {
      via_off,
      via_on,
      via_block,
      via_full
    } viaopt;                   /* how to deal with proxy Via: headers */
    char viaopt_set;
    apr_size_t recv_buffer_size;
    char recv_buffer_size_set;
    apr_size_t io_buffer_size;
    char io_buffer_size_set;
    long maxfwd;
    char maxfwd_set;
    /** 
     * the following setting masks the error page
     * returned from the 'proxied server' and just 
     * forwards the status code upwards.
     * This allows the main server (us) to generate
     * the error page, (so it will look like a error
     * returned from the rest of the system 
     */
    int error_override;
    int error_override_set;
    int preserve_host;
    int preserve_host_set;
    apr_interval_time_t timeout;
    apr_interval_time_t timeout_set;
    enum {
      bad_error,
      bad_ignore,
      bad_body
    } badopt;                   /* how to deal with bad headers */
    char badopt_set;

} proxy_server_conf;

typedef struct {
    const char *p;            /* The path */
    int         p_is_fnmatch; /* Is this path an fnmatch candidate? */
    regex_t    *r;            /* Is this a regex? */
} proxy_dir_conf;

typedef struct {
    conn_rec *connection;
    char *hostname;
    apr_port_t port;
    int is_ssl;
} proxy_conn_rec;

typedef struct {
        float cache_completion; /* completion percentage */
        int content_length; /* length of the content */
} proxy_completion;


/* hooks */

/* Create a set of PROXY_DECLARE(type), PROXY_DECLARE_NONSTD(type) and 
 * PROXY_DECLARE_DATA with appropriate export and import tags for the platform
 */
#if !defined(WIN32)
#define PROXY_DECLARE(type)            type
#define PROXY_DECLARE_NONSTD(type)     type
#define PROXY_DECLARE_DATA
#elif defined(PROXY_DECLARE_STATIC)
#define PROXY_DECLARE(type)            type __stdcall
#define PROXY_DECLARE_NONSTD(type)     type
#define PROXY_DECLARE_DATA
#elif defined(PROXY_DECLARE_EXPORT)
#define PROXY_DECLARE(type)            __declspec(dllexport) type __stdcall
#define PROXY_DECLARE_NONSTD(type)     __declspec(dllexport) type
#define PROXY_DECLARE_DATA             __declspec(dllexport)
#else
#define PROXY_DECLARE(type)            __declspec(dllimport) type __stdcall
#define PROXY_DECLARE_NONSTD(type)     __declspec(dllimport) type
#define PROXY_DECLARE_DATA             __declspec(dllimport)
#endif

/**
 * Hook an optional proxy hook.  Unlike static hooks, this uses a macro
 * instead of a function.
 */
#define PROXY_OPTIONAL_HOOK(name,fn,pre,succ,order) \
        APR_OPTIONAL_HOOK(proxy,name,fn,pre,succ,order)

APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, scheme_handler, (request_rec *r, 
                          proxy_server_conf *conf, char *url, 
                          const char *proxyhost, apr_port_t proxyport))
APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, canon_handler, (request_rec *r, 
                          char *url))

APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, create_req, (request_rec *r, request_rec *pr))
APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, fixups, (request_rec *r)) 

/* proxy_util.c */

PROXY_DECLARE(request_rec *)ap_proxy_make_fake_req(conn_rec *c, request_rec *r);
PROXY_DECLARE(int) ap_proxy_hex2c(const char *x);
PROXY_DECLARE(void) ap_proxy_c2hex(int ch, char *x);
PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t,
			int isenc);
PROXY_DECLARE(char *)ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp,
			 char **passwordp, char **hostp, apr_port_t *port);
PROXY_DECLARE(const char *)ap_proxy_date_canon(apr_pool_t *p, const char *x);
PROXY_DECLARE(apr_table_t *)ap_proxy_read_headers(request_rec *r, request_rec *rp, char *buffer, int size, conn_rec *c);
PROXY_DECLARE(int) ap_proxy_liststr(const char *list, const char *val);
PROXY_DECLARE(char *)ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val);
PROXY_DECLARE(int) ap_proxy_hex2sec(const char *x);
PROXY_DECLARE(void) ap_proxy_sec2hex(int t, char *y);
PROXY_DECLARE(int) ap_proxyerror(request_rec *r, int statuscode, const char *message);
PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t *p);
PROXY_DECLARE(int) ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t *p);
PROXY_DECLARE(int) ap_proxy_is_hostname(struct dirconn_entry *This, apr_pool_t *p);
PROXY_DECLARE(int) ap_proxy_is_word(struct dirconn_entry *This, apr_pool_t *p);
PROXY_DECLARE(int) ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, apr_sockaddr_t *uri_addr);
PROXY_DECLARE(int) ap_proxy_pre_http_request(conn_rec *c, request_rec *r);
PROXY_DECLARE(apr_status_t) ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, char *buff, size_t bufflen, int *eos);
PROXY_DECLARE(void) ap_proxy_table_unmerge(apr_pool_t *p, apr_table_t *t, char *key);
PROXY_DECLARE(int) ap_proxy_connect_to_backend(apr_socket_t **, const char *, apr_sockaddr_t *, const char *, proxy_server_conf *, server_rec *, apr_pool_t *);
PROXY_DECLARE(int) ap_proxy_ssl_enable(conn_rec *c);
PROXY_DECLARE(int) ap_proxy_ssl_disable(conn_rec *c);

/* For proxy_util */
extern module AP_MODULE_DECLARE_DATA proxy_module;

#endif /*MOD_PROXY_H*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费观看在线视频| xvideos.蜜桃一区二区| 亚洲卡通动漫在线| 一本久久综合亚洲鲁鲁五月天| 综合电影一区二区三区| 欧美性猛交xxxxxxxx| 日本特黄久久久高潮| 欧美日韩国产成人在线免费| 久久99热99| 国产亚洲va综合人人澡精品| zzijzzij亚洲日本少妇熟睡| 亚洲国产一区视频| 日韩欧美一级在线播放| 成人妖精视频yjsp地址| 一区二区视频在线看| 欧美日韩一区小说| 经典三级在线一区| 欧美高清一级片在线观看| 91女厕偷拍女厕偷拍高清| 午夜视频久久久久久| 26uuu欧美| 一本一道综合狠狠老| 麻豆国产精品一区二区三区 | 国产精品一区二区久激情瑜伽| 国产日韩三级在线| 欧美视频一区在线观看| 精品一区二区免费视频| 国产精品灌醉下药二区| 欧美图区在线视频| 国产精一品亚洲二区在线视频| 一区二区三区精品在线| 精品国产一区二区三区久久久蜜月 | 成人性视频网站| 亚洲国产精品久久一线不卡| 久久久国产精华| 7777精品伊人久久久大香线蕉最新版| 国产综合色产在线精品| 亚洲国产精品久久不卡毛片 | 久久er精品视频| 亚洲激情自拍偷拍| 精品国产成人在线影院| 欧美在线免费观看亚洲| 国产成人精品亚洲777人妖| 午夜激情一区二区| 最新日韩av在线| 久久午夜国产精品| 制服丝袜中文字幕亚洲| 91老师国产黑色丝袜在线| 国内外成人在线视频| 亚洲最新视频在线播放| 中文字幕精品综合| 欧美大片日本大片免费观看| 色综合视频一区二区三区高清| 国模一区二区三区白浆| 香港成人在线视频| 亚洲精品高清在线观看| 欧美激情综合五月色丁香小说| 日韩美女在线视频| 在线成人小视频| 欧美四级电影在线观看| 色婷婷亚洲精品| 不卡的av电影在线观看| 国内偷窥港台综合视频在线播放| 视频在线在亚洲| 婷婷开心久久网| 一区二区三区欧美日| 国产精品传媒在线| 1区2区3区国产精品| 国产日韩欧美综合一区| 久久久精品国产免大香伊 | 久久99国产精品成人| 婷婷国产在线综合| 天天色天天爱天天射综合| 亚洲专区一二三| 亚洲精品国产a久久久久久| 亚洲精品国产精华液| 亚洲人成精品久久久久久 | 久久久久88色偷偷免费| 久久精品欧美日韩精品| 国产喂奶挤奶一区二区三区| 国产亚洲短视频| 日韩一区欧美小说| 亚洲人成网站精品片在线观看| 玉足女爽爽91| 午夜精品久久久久久久久| 视频精品一区二区| 久久精品国产99国产精品| 狠狠色丁香婷综合久久| 国产mv日韩mv欧美| heyzo一本久久综合| 91蜜桃婷婷狠狠久久综合9色| 色天天综合色天天久久| 欧美色偷偷大香| 日韩欧美在线一区二区三区| 精品国产乱码久久久久久老虎| 久久九九国产精品| 一区二区中文字幕在线| 亚洲一区免费观看| 六月婷婷色综合| 成人激情免费视频| 欧美男男青年gay1069videost | 中文欧美字幕免费| 亚洲在线成人精品| 青青草国产精品亚洲专区无| 韩国毛片一区二区三区| 91麻豆精品视频| 欧美一级在线免费| 中文字幕精品三区| 亚洲一区二区美女| 久久99精品国产.久久久久 | 亚洲国产一区二区在线播放| 麻豆精品国产91久久久久久| 成人av网站免费观看| 欧美高清你懂得| 精品999在线播放| 亚洲色欲色欲www在线观看| 亚洲福利一区二区| 精品一区二区免费在线观看| 色丁香久综合在线久综合在线观看| 欧美日韩在线精品一区二区三区激情| 日韩网站在线看片你懂的| 国产精品久久毛片av大全日韩| 性欧美疯狂xxxxbbbb| 成人国产精品免费观看| 日韩欧美国产精品| 亚洲精品乱码久久久久久| 麻豆精品国产传媒mv男同| 欧美怡红院视频| 国产欧美日韩在线| 蜜桃av一区二区三区电影| 在线中文字幕一区| 中文字幕 久热精品 视频在线| 奇米亚洲午夜久久精品| 91搞黄在线观看| 日本一区二区成人| 久久国产精品99精品国产 | 中文子幕无线码一区tr| 久久成人久久爱| 欧美日韩国产bt| 亚洲精品乱码久久久久久久久| 国产曰批免费观看久久久| 欧美伊人久久久久久久久影院 | 久久99九九99精品| 欧美色窝79yyyycom| 国产精品色在线| 国内精品伊人久久久久影院对白| 在线看一区二区| 综合激情网...| 成人国产亚洲欧美成人综合网| 精品国产sm最大网站免费看| 日韩成人一级片| 精品污污网站免费看| 亚洲综合成人在线视频| 色婷婷国产精品综合在线观看| 国产精品无人区| 国产精品一色哟哟哟| 精品福利一二区| 秋霞午夜鲁丝一区二区老狼| 7777精品伊人久久久大香线蕉超级流畅 | 国产一区二区三区四| 欧美刺激午夜性久久久久久久| 亚洲va在线va天堂| 欧美精品在线一区二区三区| 亚洲激情校园春色| 日本福利一区二区| 亚洲午夜av在线| 欧美三级蜜桃2在线观看| 亚洲精品ww久久久久久p站| 日本韩国欧美在线| 亚洲欧美区自拍先锋| 97国产一区二区| ●精品国产综合乱码久久久久| 91色.com| 亚洲韩国一区二区三区| 欧美日韩一区二区三区免费看| 亚洲高清视频在线| 日韩免费在线观看| 国产在线精品一区二区不卡了| 欧美精品一区二区在线播放| 精品在线视频一区| 亚洲国产精品二十页| 91片在线免费观看| 一区二区三区四区av| 欧美午夜精品免费| 日本欧美一区二区| 久久―日本道色综合久久| 国产一区二区美女诱惑| 亚洲国产精品v| 色婷婷综合久久久久中文一区二区| 亚洲欧美日韩在线| 欧美日韩精品高清| 精品伊人久久久久7777人| 国产亚洲精品超碰| 91极品视觉盛宴| 蜜臀av一级做a爰片久久| 国产日韩三级在线| 在线观看视频一区二区| 另类欧美日韩国产在线| 国产精品每日更新在线播放网址| 色8久久精品久久久久久蜜|