
/*
 * Copyright (C) Igor Sysoev
 */


#ifndef _NGX_HTTP_PERL_MODULE_H_INCLUDED_
#define _NGX_HTTP_PERL_MODULE_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_http.h>

#include <EXTERN.h>
#include <perl.h>


typedef ngx_http_request_t   *nginx;

typedef struct {
    PerlInterpreter          *perl;

    char                     *filename;

    ngx_str_t                 redirect_uri;
    ngx_str_t                 redirect_args;

    ngx_http_ssi_ctx_t       *ssi;
} ngx_http_perl_ctx_t;


extern ngx_module_t  ngx_http_perl_module;


/*
 * workaround for "unused variable `Perl___notused'" warning
 * when building with perl 5.6.1
 */
#ifndef PERL_IMPLICIT_CONTEXT
#undef  dTHXa
#define dTHXa(a)
#endif


extern void boot_DynaLoader (pTHX_ CV* cv);


#endif /* _NGX_HTTP_PERL_MODULE_H_INCLUDED_ */
