src/http/modules/perl/ngx_http_perl_module.h - nginx source code

Data types defined

Macros defined

Source code


  1. /*
  2. * Copyright (C) Igor Sysoev
  3. * Copyright (C) Nginx, Inc.
  4. */


  5. #ifndef _NGX_HTTP_PERL_MODULE_H_INCLUDED_
  6. #define _NGX_HTTP_PERL_MODULE_H_INCLUDED_


  7. #include <ngx_config.h>
  8. #include <ngx_core.h>
  9. #include <ngx_http.h>
  10. #include <nginx.h>

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


  13. typedef ngx_http_request_t   *nginx;

  14. typedef struct {
  15.     ngx_http_request_t       *request;

  16.     ngx_str_t                 filename;
  17.     ngx_str_t                 redirect_uri;

  18.     SV                       *next;

  19.     ngx_int_t                 status;

  20.     unsigned                  done:1;
  21.     unsigned                  error:1;
  22.     unsigned                  variable:1;
  23.     unsigned                  header_sent:1;

  24.     ngx_array_t              *variables;  /* array of ngx_http_perl_var_t */

  25. #if (NGX_HTTP_SSI)
  26.     ngx_http_ssi_ctx_t       *ssi;
  27. #endif
  28. } ngx_http_perl_ctx_t;


  29. typedef struct {
  30.     ngx_uint_t    hash;
  31.     ngx_str_t     name;
  32.     ngx_str_t     value;
  33. } ngx_http_perl_var_t;


  34. extern ngx_module_t  ngx_http_perl_module;


  35. /*
  36. * workaround for "unused variable `Perl___notused'" warning
  37. * when building with perl 5.6.1
  38. */
  39. #ifndef PERL_IMPLICIT_CONTEXT
  40. #undef  dTHXa
  41. #define dTHXa(a)
  42. #endif


  43. extern void boot_DynaLoader(pTHX_ CV* cv);


  44. void ngx_http_perl_handle_request(ngx_http_request_t *r);
  45. void ngx_http_perl_sleep_handler(ngx_http_request_t *r);


  46. #endif /* _NGX_HTTP_PERL_MODULE_H_INCLUDED_ */