Annotation of win32/apache22/include/http_connection.h, revision 1.1

1.1     ! moko        1: /* Licensed to the Apache Software Foundation (ASF) under one or more
        !             2:  * contributor license agreements.  See the NOTICE file distributed with
        !             3:  * this work for additional information regarding copyright ownership.
        !             4:  * The ASF licenses this file to You under the Apache License, Version 2.0
        !             5:  * (the "License"); you may not use this file except in compliance with
        !             6:  * the License.  You may obtain a copy of the License at
        !             7:  *
        !             8:  *     http://www.apache.org/licenses/LICENSE-2.0
        !             9:  *
        !            10:  * Unless required by applicable law or agreed to in writing, software
        !            11:  * distributed under the License is distributed on an "AS IS" BASIS,
        !            12:  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        !            13:  * See the License for the specific language governing permissions and
        !            14:  * limitations under the License.
        !            15:  */
        !            16: 
        !            17: /**
        !            18:  * @file  http_connection.h
        !            19:  * @brief Apache connection library
        !            20:  *
        !            21:  * @defgroup APACHE_CORE_CONNECTION Connection Library
        !            22:  * @ingroup  APACHE_CORE
        !            23:  * @{
        !            24:  */
        !            25: 
        !            26: #ifndef APACHE_HTTP_CONNECTION_H
        !            27: #define APACHE_HTTP_CONNECTION_H
        !            28: 
        !            29: #include "apr_hooks.h"
        !            30: #include "apr_network_io.h"
        !            31: #include "apr_buckets.h"
        !            32: 
        !            33: #ifdef __cplusplus
        !            34: extern "C" {
        !            35: #endif
        !            36: /**
        !            37:  * @file  http_connection.h
        !            38:  * @brief Apache connection library
        !            39:  */
        !            40: 
        !            41: #ifdef CORE_PRIVATE
        !            42: /**
        !            43:  * This is the protocol module driver.  This calls all of the
        !            44:  * pre-connection and connection hooks for all protocol modules.
        !            45:  * @param c The connection on which the request is read
        !            46:  * @param csd The mechanism on which this connection is to be read.  
        !            47:  *            Most times this will be a socket, but it is up to the module
        !            48:  *            that accepts the request to determine the exact type.
        !            49:  */
        !            50: AP_CORE_DECLARE(void) ap_process_connection(conn_rec *c, void *csd);
        !            51: 
        !            52: /**
        !            53:  * Flushes all remain data in the client send buffer
        !            54:  * @param c The connection to flush
        !            55:  */
        !            56: AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c);
        !            57: 
        !            58: /**
        !            59:  * This function is responsible for the following cases:
        !            60:  * <pre>
        !            61:  * we now proceed to read from the client until we get EOF, or until
        !            62:  * MAX_SECS_TO_LINGER has passed.  the reasons for doing this are
        !            63:  * documented in a draft:
        !            64:  *
        !            65:  * http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt
        !            66:  *
        !            67:  * in a nutshell -- if we don't make this effort we risk causing
        !            68:  * TCP RST packets to be sent which can tear down a connection before
        !            69:  * all the response data has been sent to the client.
        !            70:  * </pre>
        !            71:  * @param c The connection we are closing
        !            72:  */
        !            73: AP_DECLARE(void) ap_lingering_close(conn_rec *c);
        !            74: #endif
        !            75: 
        !            76:   /* Hooks */
        !            77: /**
        !            78:  * create_connection is a RUN_FIRST hook which allows modules to create 
        !            79:  * connections. In general, you should not install filters with the 
        !            80:  * create_connection hook. If you require vhost configuration information 
        !            81:  * to make filter installation decisions, you must use the pre_connection
        !            82:  * or install_network_transport hook. This hook should close the connection
        !            83:  * if it encounters a fatal error condition.
        !            84:  *
        !            85:  * @param p The pool from which to allocate the connection record
        !            86:  * @param server The server record to create the connection too. 
        !            87:  * @param csd The socket that has been accepted
        !            88:  * @param conn_id A unique identifier for this connection.  The ID only
        !            89:  *                needs to be unique at that time, not forever.
        !            90:  * @param sbh A handle to scoreboard information for this connection.
        !            91:  * @param alloc The bucket allocator to use for all bucket/brigade creations
        !            92:  * @return An allocated connection record or NULL.
        !            93:  */
        !            94: AP_DECLARE_HOOK(conn_rec *, create_connection,
        !            95:                 (apr_pool_t *p, server_rec *server, apr_socket_t *csd,
        !            96:                  long conn_id, void *sbh, apr_bucket_alloc_t *alloc))
        !            97:    
        !            98: /**
        !            99:  * This hook gives protocol modules an opportunity to set everything up
        !           100:  * before calling the protocol handler.  All pre-connection hooks are
        !           101:  * run until one returns something other than ok or decline
        !           102:  * @param c The connection on which the request has been received.
        !           103:  * @param csd The mechanism on which this connection is to be read.  
        !           104:  *            Most times this will be a socket, but it is up to the module
        !           105:  *            that accepts the request to determine the exact type.
        !           106:  * @return OK or DECLINED
        !           107:  */
        !           108: AP_DECLARE_HOOK(int,pre_connection,(conn_rec *c, void *csd))
        !           109: 
        !           110: /**
        !           111:  * This hook implements different protocols.  After a connection has been
        !           112:  * established, the protocol module must read and serve the request.  This
        !           113:  * function does that for each protocol module.  The first protocol module
        !           114:  * to handle the request is the last module run.
        !           115:  * @param c The connection on which the request has been received.
        !           116:  * @return OK or DECLINED
        !           117:  */
        !           118: AP_DECLARE_HOOK(int,process_connection,(conn_rec *c))
        !           119: 
        !           120: /** End Of Connection (EOC) bucket */
        !           121: AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc;
        !           122: 
        !           123: /**
        !           124:  * Determine if a bucket is an End Of Connection (EOC) bucket
        !           125:  * @param e The bucket to inspect
        !           126:  * @return true or false
        !           127:  */
        !           128: #define AP_BUCKET_IS_EOC(e)         (e->type == &ap_bucket_type_eoc)
        !           129: 
        !           130: /**
        !           131:  * Make the bucket passed in an End Of Connection (EOC) bucket
        !           132:  * @param b The bucket to make into an EOC bucket
        !           133:  * @return The new bucket, or NULL if allocation failed
        !           134:  */
        !           135: AP_DECLARE(apr_bucket *) ap_bucket_eoc_make(apr_bucket *b);
        !           136: 
        !           137: /**
        !           138:  * Create a bucket referring to an End Of Connection (EOC). This indicates
        !           139:  * that the connection will be closed.
        !           140:  * @param list The freelist from which this bucket should be allocated
        !           141:  * @return The new bucket, or NULL if allocation failed
        !           142:  */
        !           143: AP_DECLARE(apr_bucket *) ap_bucket_eoc_create(apr_bucket_alloc_t *list);
        !           144: 
        !           145: #ifdef __cplusplus
        !           146: }
        !           147: #endif
        !           148: 
        !           149: #endif /* !APACHE_HTTP_REQUEST_H */
        !           150: /** @} */

E-mail: