diff options
author | Guenter Knauf <lists@gknw.net> | 2013-04-10 00:20:37 +0200 |
---|---|---|
committer | Guenter Knauf <lists@gknw.net> | 2013-04-10 00:20:37 +0200 |
commit | 577703495e2ed11c4470f2636fae0c84f0c03bbd (patch) | |
tree | f670d56df88d11a04cd01c2edb3a4aa4b057efc1 /lib/mk-ca-bundle.pl | |
parent | f8da49eec0cebd1eb41aa591e0e9adbb2d6eaa42 (diff) | |
download | curl-577703495e2ed11c4470f2636fae0c84f0c03bbd.tar.gz |
Fixed lost OpenSSL output with "-t" - followup.
The previously applied patch didnt work on Windows; we cant rely
on shell commands like 'echo' since they act diffently on each
platform and each shell.
In order to keep this script platform-independent the code must
only use pure Perl.
Diffstat (limited to 'lib/mk-ca-bundle.pl')
-rwxr-xr-x | lib/mk-ca-bundle.pl | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/lib/mk-ca-bundle.pl b/lib/mk-ca-bundle.pl index 188c939cb..edede4261 100755 --- a/lib/mk-ca-bundle.pl +++ b/lib/mk-ca-bundle.pl @@ -124,7 +124,7 @@ print CRT <<EOT; ## This is a bundle of X.509 certificates of public Certificate Authorities ## (CA). These were automatically extracted from Mozilla's root certificates ## file (certdata.txt). This file can be found in the mozilla source tree: -## $url +## ${url} ## ## It contains the certificates in ${format}PEM format and therefore ## can be directly used with curl / libcurl / php_curl, or with @@ -201,11 +201,18 @@ while (<TXT>) { print CRT ("=" x length($caname) . "\n"); if (!$opt_t) { print CRT $pem; - } - if ($opt_t) { - my $openssl_output = `echo '$pem' | $openssl x509 -md5 -fingerprint -text -inform PEM` or - die "Couldn't run openssl : $?\n"; - print CRT $openssl_output; + } else { + my $pipe = "|$openssl x509 -md5 -fingerprint -text -inform PEM"; + if (!$stdout) { + $pipe .= " >> $crt.~"; + close(CRT) or die "Couldn't close $crt.~: $!"; + } + open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; + print TMP $pem; + close(TMP) or die "Couldn't close openssl pipe: $!"; + if (!$stdout) { + open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; + } } print STDERR "Parsing: $caname\n" if ($opt_v); $certnum ++; |