1 2 /* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) Nginx, Inc. 5 */ 6 7 8 #ifndef _NGX_HTTP_PERL_MODULE_H_INCLUDED_ 9 #define _NGX_HTTP_PERL_MODULE_H_INCLUDED_ 10 11 12 #include <ngx_config.h> 13 #include <ngx_core.h> 14 #include <ngx_http.h> 15 #include <nginx.h> 16 17 #include <EXTERN.h> 18 #include <perl.h> 19 20 21 typedef ngx_http_request_t *nginx; 22 23 typedef struct { 24 ngx_str_t filename; 25 ngx_str_t redirect_uri; 26 ngx_str_t redirect_args; 27 28 SV *next; 29 30 ngx_uint_t done; /* unsigned done:1; */ 31 32 ngx_array_t *variables; /* array of ngx_http_perl_var_t */ 33 34 #if (NGX_HTTP_SSI) 35 ngx_http_ssi_ctx_t *ssi; 36 #endif 37 } ngx_http_perl_ctx_t; 38 39 40 typedef struct { 41 ngx_uint_t hash; 42 ngx_str_t name; 43 ngx_str_t value; 44 } ngx_http_perl_var_t; 45 46 47 extern ngx_module_t ngx_http_perl_module; 48 49 50 /* 51 * workaround for "unused variable `Perl___notused'" warning 52 * when building with perl 5.6.1 53 */ 54 #ifndef PERL_IMPLICIT_CONTEXT 55 #undef dTHXa 56 #define dTHXa(a) 57 #endif 58 59 60 extern void boot_DynaLoader(pTHX_ CV* cv); 61 62 63 void ngx_http_perl_handle_request(ngx_http_request_t *r); 64 void ngx_http_perl_sleep_handler(ngx_http_request_t *r); 65 66 67 #endif /* _NGX_HTTP_PERL_MODULE_H_INCLUDED_ */ 68