annotate src/http/modules/perl/nginx.pm @ 672:f41d4b305d22 NGINX_1_2_0

nginx 1.2.0 *) Bugfix: a segmentation fault might occur in a worker process if the "try_files" directive was used; the bug had appeared in 1.1.19. *) Bugfix: response might be truncated if there were more than IOV_MAX buffers used. *) Bugfix: in the "crop" parameter of the "image_filter" directive. Thanks to Maxim Bublis.
author Igor Sysoev <http://sysoev.ru>
date Mon, 23 Apr 2012 00:00:00 +0400
parents ad45b044f1e5
children 4dcaf40cc702
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
1 package nginx;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
2
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
3 use 5.006001;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
4 use strict;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
5 use warnings;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
6
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
7 require Exporter;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
8
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
9 our @ISA = qw(Exporter);
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
10
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
11 our @EXPORT = qw(
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
12 OK
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
13 DECLINED
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
14
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
15 HTTP_OK
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
16 HTTP_CREATED
578
bc110f60c0de nginx 0.8.41
Igor Sysoev <http://sysoev.ru>
parents: 576
diff changeset
17 HTTP_ACCEPTED
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
18 HTTP_NO_CONTENT
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
19 HTTP_PARTIAL_CONTENT
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
20
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
21 HTTP_MOVED_PERMANENTLY
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
22 HTTP_MOVED_TEMPORARILY
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
23 HTTP_REDIRECT
664
f5b859b2f097 nginx 1.1.16
Igor Sysoev <http://sysoev.ru>
parents: 662
diff changeset
24 HTTP_SEE_OTHER
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
25 HTTP_NOT_MODIFIED
664
f5b859b2f097 nginx 1.1.16
Igor Sysoev <http://sysoev.ru>
parents: 662
diff changeset
26 HTTP_TEMPORARY_REDIRECT
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
27
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
28 HTTP_BAD_REQUEST
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
29 HTTP_UNAUTHORIZED
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
30 HTTP_PAYMENT_REQUIRED
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
31 HTTP_FORBIDDEN
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
32 HTTP_NOT_FOUND
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
33 HTTP_NOT_ALLOWED
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
34 HTTP_NOT_ACCEPTABLE
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
35 HTTP_REQUEST_TIME_OUT
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
36 HTTP_CONFLICT
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
37 HTTP_GONE
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
38 HTTP_LENGTH_REQUIRED
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
39 HTTP_REQUEST_ENTITY_TOO_LARGE
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
40 HTTP_REQUEST_URI_TOO_LARGE
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
41 HTTP_UNSUPPORTED_MEDIA_TYPE
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
42 HTTP_RANGE_NOT_SATISFIABLE
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
43
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
44 HTTP_INTERNAL_SERVER_ERROR
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
45 HTTP_SERVER_ERROR
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
46 HTTP_NOT_IMPLEMENTED
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
47 HTTP_BAD_GATEWAY
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
48 HTTP_SERVICE_UNAVAILABLE
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
49 HTTP_GATEWAY_TIME_OUT
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
50 HTTP_INSUFFICIENT_STORAGE
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
51 );
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
52
672
f41d4b305d22 nginx 1.2.0
Igor Sysoev <http://sysoev.ru>
parents: 670
diff changeset
53 our $VERSION = '1.2.0';
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
54
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
55 require XSLoader;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
56 XSLoader::load('nginx', $VERSION);
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
57
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
58 # Preloaded methods go here.
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
59
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
60 use constant OK => 0;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
61 use constant DECLINED => -5;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
62
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
63 use constant HTTP_OK => 200;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
64 use constant HTTP_CREATED => 201;
578
bc110f60c0de nginx 0.8.41
Igor Sysoev <http://sysoev.ru>
parents: 576
diff changeset
65 use constant HTTP_ACCEPTED => 202;
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
66 use constant HTTP_NO_CONTENT => 204;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
67 use constant HTTP_PARTIAL_CONTENT => 206;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
68
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
69 use constant HTTP_MOVED_PERMANENTLY => 301;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
70 use constant HTTP_MOVED_TEMPORARILY => 302;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
71 use constant HTTP_REDIRECT => 302;
664
f5b859b2f097 nginx 1.1.16
Igor Sysoev <http://sysoev.ru>
parents: 662
diff changeset
72 use constant HTTP_SEE_OTHER => 303;
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
73 use constant HTTP_NOT_MODIFIED => 304;
664
f5b859b2f097 nginx 1.1.16
Igor Sysoev <http://sysoev.ru>
parents: 662
diff changeset
74 use constant HTTP_TEMPORARY_REDIRECT => 307;
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
75
266
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
76 use constant HTTP_BAD_REQUEST => 400;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
77 use constant HTTP_UNAUTHORIZED => 401;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
78 use constant HTTP_PAYMENT_REQUIRED => 402;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
79 use constant HTTP_FORBIDDEN => 403;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
80 use constant HTTP_NOT_FOUND => 404;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
81 use constant HTTP_NOT_ALLOWED => 405;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
82 use constant HTTP_NOT_ACCEPTABLE => 406;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
83 use constant HTTP_REQUEST_TIME_OUT => 408;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
84 use constant HTTP_CONFLICT => 409;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
85 use constant HTTP_GONE => 410;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
86 use constant HTTP_LENGTH_REQUIRED => 411;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
87 use constant HTTP_REQUEST_ENTITY_TOO_LARGE => 413;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
88 use constant HTTP_REQUEST_URI_TOO_LARGE => 414;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
89 use constant HTTP_UNSUPPORTED_MEDIA_TYPE => 415;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
90 use constant HTTP_RANGE_NOT_SATISFIABLE => 416;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
91
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
92 use constant HTTP_INTERNAL_SERVER_ERROR => 500;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
93 use constant HTTP_SERVER_ERROR => 500;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
94 use constant HTTP_NOT_IMPLEMENTED => 501;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
95 use constant HTTP_BAD_GATEWAY => 502;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
96 use constant HTTP_SERVICE_UNAVAILABLE => 503;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
97 use constant HTTP_GATEWAY_TIME_OUT => 504;
251bcd11a5b8 nginx 0.5.3
Igor Sysoev <http://sysoev.ru>
parents: 264
diff changeset
98 use constant HTTP_INSUFFICIENT_STORAGE => 507;
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
99
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
100
298
30862655219e nginx 0.5.19
Igor Sysoev <http://sysoev.ru>
parents: 296
diff changeset
101 sub rflush {
30862655219e nginx 0.5.19
Igor Sysoev <http://sysoev.ru>
parents: 296
diff changeset
102 my $r = shift;
30862655219e nginx 0.5.19
Igor Sysoev <http://sysoev.ru>
parents: 296
diff changeset
103
30862655219e nginx 0.5.19
Igor Sysoev <http://sysoev.ru>
parents: 296
diff changeset
104 $r->flush;
30862655219e nginx 0.5.19
Igor Sysoev <http://sysoev.ru>
parents: 296
diff changeset
105 }
30862655219e nginx 0.5.19
Igor Sysoev <http://sysoev.ru>
parents: 296
diff changeset
106
30862655219e nginx 0.5.19
Igor Sysoev <http://sysoev.ru>
parents: 296
diff changeset
107
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
108 1;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
109 __END__
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
110
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
111 =head1 NAME
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
112
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
113 nginx - Perl interface to the nginx HTTP server API
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
114
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
115 =head1 SYNOPSIS
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
116
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
117 use nginx;
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
118
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
119 =head1 DESCRIPTION
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
120
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
121 This module provides a Perl interface to the nginx HTTP server API.
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
122
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
123
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
124 =head1 SEE ALSO
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
125
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
126 http://sysoev.ru/nginx/docs/http/ngx_http_perl_module.html
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
127
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
128 =head1 AUTHOR
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
129
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
130 Igor Sysoev
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
131
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
132 =head1 COPYRIGHT AND LICENSE
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
133
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
134 Copyright (C) Igor Sysoev
660
d0f7a625f27c nginx 1.1.14
Igor Sysoev <http://sysoev.ru>
parents: 658
diff changeset
135 Copyright (C) Nginx, Inc.
148
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
136
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
137
ea622d8acb38 nginx 0.3.21
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
138 =cut