diff --git a/CHANGES b/CHANGES index 3590b127b..23687405d 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,12 @@ Changelog +Daniel Stenberg (21 Oct 2009) +- A patch in bug report #2883177 (http://curl.haxx.se/bug/view.cgi?id=2883177) + by user 'koresh' introduced the --crlfile option to curl, which makes curl + tell libcurl about a file with CRL (certificate revocation list) data to + read. + Daniel Stenberg (18 Oct 2009) - Ray Dassen provided a patch in Debian's bug tracker (bug number #551461) that now makes curl_getdate(3) actually handles RFC 822 formatted dates that diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 9fdd91f47..22acc1f65 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -12,6 +12,7 @@ This release includes the following changes: o -T. is now for non-blocking uploading from stdin o SYST handling on FTP for OS/400 FTP server cases o libcurl refuses to read a single HTTP header longer than 100K + o added the --crlfile option to curl This release includes the following bugfixes: diff --git a/src/main.c b/src/main.c index 3459eb53f..4462b7d6e 100644 --- a/src/main.c +++ b/src/main.c @@ -512,6 +512,7 @@ struct Configurable { char *cert_type; char *cacert; char *capath; + char *crlfile; char *key; char *key_type; char *key_passwd; @@ -753,6 +754,7 @@ static void help(void) " -c/--cookie-jar Write cookies to this file after operation (H)", " --create-dirs Create necessary local directory hierarchy", " --crlf Convert LF to CRLF in upload", + " --crlfile Get a CRL list in PEM format from the given file", " -d/--data HTTP POST data (H)", " --data-ascii HTTP POST ASCII data (H)", " --data-binary HTTP POST binary data (H)", @@ -1750,6 +1752,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ {"Eg","capath ", TRUE}, {"Eh","pubkey", TRUE}, {"Ei", "hostpubmd5", TRUE}, + {"Ej","crlfile", TRUE}, {"f", "fail", FALSE}, {"F", "form", TRUE}, {"Fs","form-string", TRUE}, @@ -2528,6 +2531,10 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */ if (!config->hostpubmd5 || strlen(config->hostpubmd5) != 32) return PARAM_BAD_USE; break; + case 'j': /* CRL info PEM file */ + /* CRL file */ + GetStr(&config->crlfile, nextarg); + break; default: /* certificate file */ { char *ptr = strchr(nextarg, ':'); @@ -3756,6 +3763,8 @@ static void free_config_fields(struct Configurable *config) free(config->cert_type); if(config->capath) free(config->capath); + if(config->crlfile) + free(config->crlfile); if(config->cookiejar) free(config->cookiejar); if(config->ftp_account) @@ -4747,6 +4756,8 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) my_setopt_str(curl, CURLOPT_CAPATH, config->capath); my_setopt(curl, CURLOPT_SSL_VERIFYPEER, TRUE); } + if (config->crlfile) + my_setopt_str(curl, CURLOPT_CRLFILE, config->crlfile); if(config->insecure_ok) { /* new stuff needed for libcurl 7.10 */ my_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);