- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List

# ContentHandler.h

    00001 /*
    00002  * Copyright (C) Igor Sysoev
    00003  * Copyright (C) 2007 Manlio Perillo (manlio.perillo@gmail.com)
    00004  * Copyright (C) 2010 Phusion
    00005  *
    00006  * Redistribution and use in source and binary forms, with or without
    00007  * modification, are permitted provided that the following conditions
    00008  * are met:
    00009  * 1. Redistributions of source code must retain the above copyright
    00010  *    notice, this list of conditions and the following disclaimer.
    00011  * 2. Redistributions in binary form must reproduce the above copyright
    00012  *    notice, this list of conditions and the following disclaimer in the
    00013  *    documentation and/or other materials provided with the distribution.
    00014  *
    00015  * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    00016  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    00017  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    00018  * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
    00019  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    00020  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    00021  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    00022  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    00023  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    00024  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    00025  * SUCH DAMAGE.
    00026  */
    00027
    00028 #ifndef _PASSENGER_NGINX_CONTENT_HANDLER_H_
    00029 #define _PASSENGER_NGINX_CONTENT_HANDLER_H_
    00030
    00031 #include <ngx_core.h>
    00032 #include <ngx_http.h>
    00033
    00034
    00035 typedef enum {
    00036     AP_RAILS,
    00037     AP_RACK,
    00038     AP_WSGI,
    00039     AP_NONE
    00040 } passenger_app_type_t;
    00041
    00042 typedef struct {
    00043     /** Proxy state. */
    00044     ngx_uint_t  status;
    00045     ngx_uint_t  status_count;
    00046     u_char     *status_start;
    00047     u_char     *status_end;
    00048
    00049     /** The backend application's 'public' directory. */
    00050     ngx_str_t   public_dir;
    00051
    00052     /** The application's base URI. Points to an empty string if none. */
    00053     ngx_str_t   base_uri;
    00054
    00055     /** The backend application's type. */
    00056     passenger_app_type_t app_type;
    00057 } passenger_context_t;
    00058
    00059
    00060 ngx_int_t passenger_content_handler(ngx_http_request_t *r);
    00061
    00062
    00063 #endif /* _PASSENGER_NGINX_CONTENT_HANDLER_H_ */
    00064