On Tuesday, 29 November 2011 05:39:37 [email protected] wrote:
> @@ -620,11 +628,18 @@ sub set_client_cert {
> if ($name) {
> $ENV{HTTPS_CERT_FILE} = "$dir/certs/$name.crt";
> $ENV{HTTPS_KEY_FILE} = "$dir/keys/$name.pem";
better written as
@ENV{qw/HTTPS_CERT_FILE HTTPS_KEY_FILE/} =
("$dir/certs/$name.crt", "$dir/keys/$name.pem");
> + if ($LWP::VERSION >= 6.0) {
> + # LWP 6 no longer honors HTTPS_{CERT,KEY}_FILE
> + user_agent(reset => 1,
> + ssl_opts => { SSL_cert_file =>
> "$dir/certs/$name.crt",
> + SSL_key_file =>
> "$dir/keys/$name.pem" }); + }
> }
> else {
> for (qw(CERT KEY)) {
> delete $ENV{"HTTPS_${_}_FILE"};
> }
> + user_agent(reset => 1) if $LWP::VERSION >= 6.0;
These calls to user_agent(reset=>1) are the actual reason for this mail. I
think it is wrong to do that here. The user agent keeps a global state that is
reset if user_agent() is called with reset=>1. set_client_cert() is called by
prepare() which is called by GET, POST etc.
According to the documentation for Apache::TestRequest the way to make the UA
not to follow redirects is
Apache::TestRequest::user_agent(reset => 1,
requests_redirectable => 0);
before calling GET.
If now GET itself calls user_agent(reset=>1) via prepare() and
set_client_cert() wouldn't that clobber the "requests_redirectable => 0"
setting made by the user?
Just a thought.
Torsten Förtsch
--
Need professional modperl support? Hire me! (http://foertsch.name)
Like fantasy? http://kabatinte.net