annotate src/http/modules/perl/nginx.pm @ 7653:8409f9df6219

SSL: client certificate validation with OCSP (ticket #1534). OCSP validation for client certificates is enabled by the "ssl_ocsp" directive. OCSP responder can be optionally specified by "ssl_ocsp_responder". When session is reused, peer chain is not available for validation. If the verified chain contains certificates from the peer chain not available at the server, validation will fail.
author Roman Arutyunyan <arut@nginx.com>
date Fri, 22 May 2020 17:30:12 +0300
parents be5cfa918bfc
children 985b0bda403c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1 package nginx;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3 use 5.006001;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4 use strict;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5 use warnings;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 require Exporter;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 our @ISA = qw(Exporter);
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 our @EXPORT = qw(
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 OK
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 DECLINED
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
14
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15 HTTP_OK
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
16 HTTP_CREATED
3604
3a64bdacf1e4 202 Accepted status code
Igor Sysoev <igor@sysoev.ru>
parents: 3603
diff changeset
17 HTTP_ACCEPTED
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
18 HTTP_NO_CONTENT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
19 HTTP_PARTIAL_CONTENT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
20
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
21 HTTP_MOVED_PERMANENTLY
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
22 HTTP_MOVED_TEMPORARILY
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
23 HTTP_REDIRECT
4491
d11f86a16e3b Added support for the 307 Temporary Redirect.
Ruslan Ermilov <ru@nginx.com>
parents: 4483
diff changeset
24 HTTP_SEE_OTHER
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
25 HTTP_NOT_MODIFIED
4491
d11f86a16e3b Added support for the 307 Temporary Redirect.
Ruslan Ermilov <ru@nginx.com>
parents: 4483
diff changeset
26 HTTP_TEMPORARY_REDIRECT
6977
be5cfa918bfc Added support for the "308 Permanent Redirect" (ticket #877).
Simon Leblanc <contact@leblanc-simon.eu>
parents: 5146
diff changeset
27 HTTP_PERMANENT_REDIRECT
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
28
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
29 HTTP_BAD_REQUEST
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
30 HTTP_UNAUTHORIZED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
31 HTTP_PAYMENT_REQUIRED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
32 HTTP_FORBIDDEN
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33 HTTP_NOT_FOUND
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
34 HTTP_NOT_ALLOWED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
35 HTTP_NOT_ACCEPTABLE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
36 HTTP_REQUEST_TIME_OUT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
37 HTTP_CONFLICT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
38 HTTP_GONE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
39 HTTP_LENGTH_REQUIRED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
40 HTTP_REQUEST_ENTITY_TOO_LARGE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
41 HTTP_REQUEST_URI_TOO_LARGE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
42 HTTP_UNSUPPORTED_MEDIA_TYPE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
43 HTTP_RANGE_NOT_SATISFIABLE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
44
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
45 HTTP_INTERNAL_SERVER_ERROR
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46 HTTP_SERVER_ERROR
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
47 HTTP_NOT_IMPLEMENTED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
48 HTTP_BAD_GATEWAY
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
49 HTTP_SERVICE_UNAVAILABLE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
50 HTTP_GATEWAY_TIME_OUT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
51 HTTP_INSUFFICIENT_STORAGE
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 );
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53
5146
f45b83d20cfb Simplified nginx version maintenance.
Ruslan Ermilov <ru@nginx.com>
parents: 5140
diff changeset
54 our $VERSION = '%%VERSION%%';
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56 require XSLoader;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 XSLoader::load('nginx', $VERSION);
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 # Preloaded methods go here.
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
60
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
61 use constant OK => 0;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
62 use constant DECLINED => -5;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
63
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
64 use constant HTTP_OK => 200;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
65 use constant HTTP_CREATED => 201;
3604
3a64bdacf1e4 202 Accepted status code
Igor Sysoev <igor@sysoev.ru>
parents: 3603
diff changeset
66 use constant HTTP_ACCEPTED => 202;
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
67 use constant HTTP_NO_CONTENT => 204;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
68 use constant HTTP_PARTIAL_CONTENT => 206;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
69
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
70 use constant HTTP_MOVED_PERMANENTLY => 301;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
71 use constant HTTP_MOVED_TEMPORARILY => 302;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
72 use constant HTTP_REDIRECT => 302;
4491
d11f86a16e3b Added support for the 307 Temporary Redirect.
Ruslan Ermilov <ru@nginx.com>
parents: 4483
diff changeset
73 use constant HTTP_SEE_OTHER => 303;
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
74 use constant HTTP_NOT_MODIFIED => 304;
4491
d11f86a16e3b Added support for the 307 Temporary Redirect.
Ruslan Ermilov <ru@nginx.com>
parents: 4483
diff changeset
75 use constant HTTP_TEMPORARY_REDIRECT => 307;
6977
be5cfa918bfc Added support for the "308 Permanent Redirect" (ticket #877).
Simon Leblanc <contact@leblanc-simon.eu>
parents: 5146
diff changeset
76 use constant HTTP_PERMANENT_REDIRECT => 308;
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
77
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
78 use constant HTTP_BAD_REQUEST => 400;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
79 use constant HTTP_UNAUTHORIZED => 401;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
80 use constant HTTP_PAYMENT_REQUIRED => 402;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
81 use constant HTTP_FORBIDDEN => 403;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
82 use constant HTTP_NOT_FOUND => 404;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
83 use constant HTTP_NOT_ALLOWED => 405;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
84 use constant HTTP_NOT_ACCEPTABLE => 406;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
85 use constant HTTP_REQUEST_TIME_OUT => 408;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
86 use constant HTTP_CONFLICT => 409;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
87 use constant HTTP_GONE => 410;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
88 use constant HTTP_LENGTH_REQUIRED => 411;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
89 use constant HTTP_REQUEST_ENTITY_TOO_LARGE => 413;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
90 use constant HTTP_REQUEST_URI_TOO_LARGE => 414;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
91 use constant HTTP_UNSUPPORTED_MEDIA_TYPE => 415;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
92 use constant HTTP_RANGE_NOT_SATISFIABLE => 416;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
93
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
94 use constant HTTP_INTERNAL_SERVER_ERROR => 500;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
95 use constant HTTP_SERVER_ERROR => 500;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
96 use constant HTTP_NOT_IMPLEMENTED => 501;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
97 use constant HTTP_BAD_GATEWAY => 502;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
98 use constant HTTP_SERVICE_UNAVAILABLE => 503;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
99 use constant HTTP_GATEWAY_TIME_OUT => 504;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
100 use constant HTTP_INSUFFICIENT_STORAGE => 507;
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
102
1178
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
103 sub rflush {
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
104 my $r = shift;
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
105
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
106 $r->flush;
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
107 }
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
108
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
109
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
110 1;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
111 __END__
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
112
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
113 =head1 NAME
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
114
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
115 nginx - Perl interface to the nginx HTTP server API
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
116
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
117 =head1 SYNOPSIS
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
118
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
119 use nginx;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
120
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
121 =head1 DESCRIPTION
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
122
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
123 This module provides a Perl interface to the nginx HTTP server API.
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
124
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
125
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
126 =head1 SEE ALSO
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
127
4977
b216d212920b Brought the link to ngx_http_perl_module documentation up to date.
Ruslan Ermilov <ru@nginx.com>
parents: 4942
diff changeset
128 http://nginx.org/en/docs/http/ngx_http_perl_module.html
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
129
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
130 =head1 AUTHOR
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
131
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
132 Igor Sysoev
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
133
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
134 =head1 COPYRIGHT AND LICENSE
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
135
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
136 Copyright (C) Igor Sysoev
4411
e7a7e1a1f695 Version bump.
Maxim Konovalov <maxim@nginx.com>
parents: 4391
diff changeset
137 Copyright (C) Nginx, Inc.
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
138
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
139
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
140 =cut