annotate src/http/modules/perl/nginx.pm @ 4041:f87edc142316 stable-1.0

Merge of r3960, r3961, r3962, r3963, r3965: SSL related fixes: *) MSIE export versions are rare now, so RSA 512 key is generated on demand and is shared among all hosts instead of pregenerating for every HTTPS host on configuraiton phase. This decreases start time for configuration with large number of HTTPS hosts. *) ECDHE support; patch by Adrian Kotelba *) fix build by gcc46 with -Wunused-value option *) fix SSL connection issues on platforms with 32-bit off_t *) do not try to reuse and save a SSL session for a peer created on the fly by ngx_http_upstream_create_round_robin_peer(), since the peer lives only during request so the saved SSL session will never be used again and just causes memory leak
author Igor Sysoev <igor@sysoev.ru>
date Mon, 29 Aug 2011 12:35:53 +0000
parents ded522fdc826
children b78768308e30
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
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
24 HTTP_NOT_MODIFIED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
25
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
26 HTTP_BAD_REQUEST
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
27 HTTP_UNAUTHORIZED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
28 HTTP_PAYMENT_REQUIRED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
29 HTTP_FORBIDDEN
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30 HTTP_NOT_FOUND
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
31 HTTP_NOT_ALLOWED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
32 HTTP_NOT_ACCEPTABLE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
33 HTTP_REQUEST_TIME_OUT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
34 HTTP_CONFLICT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
35 HTTP_GONE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
36 HTTP_LENGTH_REQUIRED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
37 HTTP_REQUEST_ENTITY_TOO_LARGE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
38 HTTP_REQUEST_URI_TOO_LARGE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
39 HTTP_UNSUPPORTED_MEDIA_TYPE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
40 HTTP_RANGE_NOT_SATISFIABLE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
41
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
42 HTTP_INTERNAL_SERVER_ERROR
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 HTTP_SERVER_ERROR
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
44 HTTP_NOT_IMPLEMENTED
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
45 HTTP_BAD_GATEWAY
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
46 HTTP_SERVICE_UNAVAILABLE
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
47 HTTP_GATEWAY_TIME_OUT
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
48 HTTP_INSUFFICIENT_STORAGE
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 );
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50
4036
ded522fdc826 Version bump.
Igor Sysoev <igor@sysoev.ru>
parents: 3937
diff changeset
51 our $VERSION = '1.0.6';
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 require XSLoader;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
54 XSLoader::load('nginx', $VERSION);
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 # Preloaded methods go here.
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
58 use constant OK => 0;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
59 use constant DECLINED => -5;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
60
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
61 use constant HTTP_OK => 200;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
62 use constant HTTP_CREATED => 201;
3604
3a64bdacf1e4 202 Accepted status code
Igor Sysoev <igor@sysoev.ru>
parents: 3603
diff changeset
63 use constant HTTP_ACCEPTED => 202;
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
64 use constant HTTP_NO_CONTENT => 204;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
65 use constant HTTP_PARTIAL_CONTENT => 206;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
66
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
67 use constant HTTP_MOVED_PERMANENTLY => 301;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
68 use constant HTTP_MOVED_TEMPORARILY => 302;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
69 use constant HTTP_REDIRECT => 302;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
70 use constant HTTP_NOT_MODIFIED => 304;
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
71
914
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
72 use constant HTTP_BAD_REQUEST => 400;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
73 use constant HTTP_UNAUTHORIZED => 401;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
74 use constant HTTP_PAYMENT_REQUIRED => 402;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
75 use constant HTTP_FORBIDDEN => 403;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
76 use constant HTTP_NOT_FOUND => 404;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
77 use constant HTTP_NOT_ALLOWED => 405;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
78 use constant HTTP_NOT_ACCEPTABLE => 406;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
79 use constant HTTP_REQUEST_TIME_OUT => 408;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
80 use constant HTTP_CONFLICT => 409;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
81 use constant HTTP_GONE => 410;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
82 use constant HTTP_LENGTH_REQUIRED => 411;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
83 use constant HTTP_REQUEST_ENTITY_TOO_LARGE => 413;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
84 use constant HTTP_REQUEST_URI_TOO_LARGE => 414;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
85 use constant HTTP_UNSUPPORTED_MEDIA_TYPE => 415;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
86 use constant HTTP_RANGE_NOT_SATISFIABLE => 416;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
87
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
88 use constant HTTP_INTERNAL_SERVER_ERROR => 500;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
89 use constant HTTP_SERVER_ERROR => 500;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
90 use constant HTTP_NOT_IMPLEMENTED => 501;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
91 use constant HTTP_BAD_GATEWAY => 502;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
92 use constant HTTP_SERVICE_UNAVAILABLE => 503;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
93 use constant HTTP_GATEWAY_TIME_OUT => 504;
b10286697f8d add HTTP response codes
Igor Sysoev <igor@sysoev.ru>
parents: 904
diff changeset
94 use constant HTTP_INSUFFICIENT_STORAGE => 507;
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
95
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
96
1178
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
97 sub rflush {
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
98 my $r = shift;
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
99
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
100 $r->flush;
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
101 }
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
102
a77f6980de50 rename $r->rflush to $r->flush
Igor Sysoev <igor@sysoev.ru>
parents: 1177
diff changeset
103
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
104 1;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
105 __END__
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
106
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
107 =head1 NAME
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
108
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
109 nginx - Perl interface to the nginx HTTP server API
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
110
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
111 =head1 SYNOPSIS
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 use nginx;
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 =head1 DESCRIPTION
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 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
118
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
119
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
120 =head1 SEE ALSO
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
121
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
122 http://sysoev.ru/nginx/docs/http/ngx_http_perl_module.html
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
123
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
124 =head1 AUTHOR
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 Igor Sysoev
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
127
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
128 =head1 COPYRIGHT AND LICENSE
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 Copyright (C) Igor Sysoev
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
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
133 =cut