Mercurial > hg > nginx
annotate src/http/modules/perl/ngx_http_perl_module.h @ 4245:8d39230df833 stable-1.0
Merging r4034, r4186, r4187, r4229, r4235, r4237:
SSL related fixes:
*) Better handling of various per-server ssl options with SNI.
SSL_set_SSL_CTX() doesn't touch values cached within ssl connection
structure, it only changes certificates (at least as of now, OpenSSL
1.0.0d and earlier).
As a result settings like ssl_verify_client, ssl_verify_depth,
ssl_prefer_server_ciphers are only configurable on per-socket basis while
with SNI it should be possible to specify them different for two servers
listening on the same socket.
Workaround is to explicitly re-apply settings we care about from context
to ssl connection in servername callback.
Note that SSL_clear_options() is only available in OpenSSL 0.9.8m+. I.e.
with older versions it is not possible to clear ssl_prefer_server_ciphers
option if it's set in default server for a socket.
*) Disabling SSL compression. This saves about 300K per SSL connection.
The SSL_OP_NO_COMPRESSION option is available since OpenSSL 1.0.0.
*) Releasing memory of idle SSL connection. This saves about 34K per SSL
connection. The SSL_MODE_RELEASE_BUFFERS option is available since
OpenSSL 1.0.0d.
*) Decrease of log level of some SSL handshake errors.
*) Fixed segfault on configuration testing with ssl (ticket #37).
The following config caused segmentation fault due to conf->file not
being properly set if "ssl on" was inherited from the http level:
http {
ssl on;
server {
}
}
*) Silently ignoring a stale global SSL error left after disabled renegotiation.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 01 Nov 2011 13:00:30 +0000 |
parents | b43f244d0430 |
children | d620f497c50f |
rev | line source |
---|---|
599 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4 */ | |
5 | |
6 | |
7 #ifndef _NGX_HTTP_PERL_MODULE_H_INCLUDED_ | |
8 #define _NGX_HTTP_PERL_MODULE_H_INCLUDED_ | |
9 | |
10 | |
11 #include <ngx_config.h> | |
12 #include <ngx_core.h> | |
13 #include <ngx_http.h> | |
775 | 14 #include <nginx.h> |
599 | 15 |
16 #include <EXTERN.h> | |
17 #include <perl.h> | |
18 | |
19 | |
20 typedef ngx_http_request_t *nginx; | |
21 | |
22 typedef struct { | |
633 | 23 ngx_str_t filename; |
599 | 24 ngx_str_t redirect_uri; |
25 ngx_str_t redirect_args; | |
911 | 26 |
681 | 27 SV *next; |
28 | |
1897 | 29 ngx_uint_t done; /* unsigned done:1; */ |
599 | 30 |
912
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
31 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
|
32 |
617 | 33 #if (NGX_HTTP_SSI) |
599 | 34 ngx_http_ssi_ctx_t *ssi; |
617 | 35 #endif |
599 | 36 } ngx_http_perl_ctx_t; |
37 | |
38 | |
912
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
39 typedef struct { |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
40 ngx_uint_t hash; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
41 ngx_str_t name; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
42 ngx_str_t value; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
43 } ngx_http_perl_var_t; |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
44 |
7fa926a7926d
$r->variable() supports perl only variables
Igor Sysoev <igor@sysoev.ru>
parents:
911
diff
changeset
|
45 |
599 | 46 extern ngx_module_t ngx_http_perl_module; |
47 | |
48 | |
49 /* | |
50 * workaround for "unused variable `Perl___notused'" warning | |
51 * when building with perl 5.6.1 | |
52 */ | |
53 #ifndef PERL_IMPLICIT_CONTEXT | |
54 #undef dTHXa | |
55 #define dTHXa(a) | |
56 #endif | |
57 | |
58 | |
868 | 59 extern void boot_DynaLoader(pTHX_ CV* cv); |
599 | 60 |
61 | |
681 | 62 void ngx_http_perl_handle_request(ngx_http_request_t *r); |
1897 | 63 void ngx_http_perl_sleep_handler(ngx_http_request_t *r); |
681 | 64 |
65 | |
599 | 66 #endif /* _NGX_HTTP_PERL_MODULE_H_INCLUDED_ */ |