Mercurial > hg > nginx-quic
annotate src/http/modules/perl/ngx_http_perl_module.h @ 7529:d758d04e0790
Perl: avoid redirects on errors.
Previously, redirects scheduled with $r->internal_redirect() were followed
even if the code then died. Now these are ignored and nginx will return
an error instead.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 12 Jul 2019 15:38:27 +0300 |
parents | 0cb693b4cbbb |
children | fd9252844ec1 |
rev | line source |
---|---|
599 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4412 | 4 * Copyright (C) Nginx, Inc. |
599 | 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> | |
775 | 15 #include <nginx.h> |
599 | 16 |
17 #include <EXTERN.h> | |
18 #include <perl.h> | |
19 | |
20 | |
21 typedef ngx_http_request_t *nginx; | |
22 | |
23 typedef struct { | |
7524
deebe988cbd7
Perl: reworked perl module to pass ctx instead of request.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
24 ngx_http_request_t *request; |
deebe988cbd7
Perl: reworked perl module to pass ctx instead of request.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
25 |
633 | 26 ngx_str_t filename; |
599 | 27 ngx_str_t redirect_uri; |
28 ngx_str_t redirect_args; | |
911 | 29 |
681 | 30 SV *next; |
31 | |
7525 | 32 ngx_int_t status; |
33 | |
34 unsigned done:1; | |
35 unsigned error:1; | |
7528
0cb693b4cbbb
Perl: disabled unrelated calls from variable handlers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7525
diff
changeset
|
36 unsigned variable:1; |
599 | 37 |
912
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
38 ngx_array_t *variables; /* array of ngx_http_perl_var_t */ |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
39 |
617 | 40 #if (NGX_HTTP_SSI) |
599 | 41 ngx_http_ssi_ctx_t *ssi; |
617 | 42 #endif |
599 | 43 } ngx_http_perl_ctx_t; |
44 | |
45 | |
912
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
46 typedef struct { |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
47 ngx_uint_t hash; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
48 ngx_str_t name; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
49 ngx_str_t value; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
50 } ngx_http_perl_var_t; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
51 |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
52 |
599 | 53 extern ngx_module_t ngx_http_perl_module; |
54 | |
55 | |
56 /* | |
57 * workaround for "unused variable `Perl___notused'" warning | |
58 * when building with perl 5.6.1 | |
59 */ | |
60 #ifndef PERL_IMPLICIT_CONTEXT | |
61 #undef dTHXa | |
62 #define dTHXa(a) | |
63 #endif | |
64 | |
65 | |
868 | 66 extern void boot_DynaLoader(pTHX_ CV* cv); |
599 | 67 |
68 | |
681 | 69 void ngx_http_perl_handle_request(ngx_http_request_t *r); |
1897 | 70 void ngx_http_perl_sleep_handler(ngx_http_request_t *r); |
681 | 71 |
72 | |
599 | 73 #endif /* _NGX_HTTP_PERL_MODULE_H_INCLUDED_ */ |