- upstream patch for NSS support written by Guenter Knauf
This commit is contained in:
parent
c87eab1257
commit
3fad0a17fb
94
curl-7.19.6-nss-guenter.patch
Normal file
94
curl-7.19.6-nss-guenter.patch
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
--- curl-7.19.6/lib/nss.c 2009-09-30 15:29:35.965297742 +0200
|
||||||
|
+++ /tmp/nss.c 2009-09-30 15:23:05.000000000 +0200
|
||||||
|
@@ -63,6 +63,7 @@
|
||||||
|
#include <secitem.h>
|
||||||
|
#include <secport.h>
|
||||||
|
#include <certdb.h>
|
||||||
|
+#include <base64.h>
|
||||||
|
|
||||||
|
#include "curl_memory.h"
|
||||||
|
#include "rawstr.h"
|
||||||
|
@@ -265,7 +266,7 @@ static int num_enabled_ciphers(void)
|
||||||
|
*/
|
||||||
|
static int is_file(const char *filename)
|
||||||
|
{
|
||||||
|
- struct stat st;
|
||||||
|
+ struct_stat st;
|
||||||
|
|
||||||
|
if(filename == NULL)
|
||||||
|
return 0;
|
||||||
|
@@ -963,26 +964,38 @@ CURLcode Curl_nss_connect(struct connect
|
||||||
|
/* FIXME. NSS doesn't support multiple databases open at the same time. */
|
||||||
|
PR_Lock(nss_initlock);
|
||||||
|
if(!initialized) {
|
||||||
|
+ struct_stat st;
|
||||||
|
|
||||||
|
- certDir = getenv("SSL_DIR"); /* Look in $SSL_DIR */
|
||||||
|
+ /* First we check if $SSL_DIR points to a valid dir */
|
||||||
|
+ certDir = getenv("SSL_DIR");
|
||||||
|
+ if(certDir) {
|
||||||
|
+ if((stat(certDir, &st) != 0) ||
|
||||||
|
+ (!S_ISDIR(st.st_mode))) {
|
||||||
|
+ certDir = NULL;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
+ /* Now we check if the default location is a valid dir */
|
||||||
|
if(!certDir) {
|
||||||
|
- struct stat st;
|
||||||
|
-
|
||||||
|
- if(stat(SSL_DIR, &st) == 0)
|
||||||
|
- if(S_ISDIR(st.st_mode)) {
|
||||||
|
- certDir = (char *)SSL_DIR;
|
||||||
|
- }
|
||||||
|
+ if((stat(SSL_DIR, &st) == 0) &&
|
||||||
|
+ (S_ISDIR(st.st_mode))) {
|
||||||
|
+ certDir = (char *)SSL_DIR;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!NSS_IsInitialized()) {
|
||||||
|
initialized = 1;
|
||||||
|
+ infof(conn->data, "Initializing NSS with certpath: %s\n",
|
||||||
|
+ certDir ? certDir : "none");
|
||||||
|
if(!certDir) {
|
||||||
|
rv = NSS_NoDB_Init(NULL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
- rv = NSS_Initialize(certDir, NULL, NULL, "secmod.db",
|
||||||
|
- NSS_INIT_READONLY);
|
||||||
|
+ char *certpath = PR_smprintf("%s%s",
|
||||||
|
+ NSS_VersionCheck("3.12.0") ? "sql:" : "",
|
||||||
|
+ certDir);
|
||||||
|
+ rv = NSS_Initialize(certpath, "", "", "", NSS_INIT_READONLY);
|
||||||
|
+ PR_smprintf_free(certpath);
|
||||||
|
}
|
||||||
|
if(rv != SECSuccess) {
|
||||||
|
infof(conn->data, "Unable to initialize NSS database\n");
|
||||||
|
@@ -1103,7 +1116,7 @@ CURLcode Curl_nss_connect(struct connect
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(data->set.ssl.CApath) {
|
||||||
|
- struct stat st;
|
||||||
|
+ struct_stat st;
|
||||||
|
PRDir *dir;
|
||||||
|
PRDirEntry *entry;
|
||||||
|
|
||||||
|
@@ -1282,7 +1295,7 @@ int Curl_nss_send(struct connectdata *co
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
if(data->set.timeout)
|
||||||
|
- timeout = PR_MillisecondsToInterval(data->set.timeout);
|
||||||
|
+ timeout = PR_MillisecondsToInterval((PRUint32)data->set.timeout);
|
||||||
|
else
|
||||||
|
timeout = PR_MillisecondsToInterval(DEFAULT_CONNECT_TIMEOUT);
|
||||||
|
|
||||||
|
@@ -1318,7 +1331,7 @@ ssize_t Curl_nss_recv(struct connectdata
|
||||||
|
PRInt32 timeout;
|
||||||
|
|
||||||
|
if(data->set.timeout)
|
||||||
|
- timeout = PR_SecondsToInterval(data->set.timeout);
|
||||||
|
+ timeout = PR_SecondsToInterval((PRUint32)data->set.timeout);
|
||||||
|
else
|
||||||
|
timeout = PR_MillisecondsToInterval(DEFAULT_CONNECT_TIMEOUT);
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
|
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
|
||||||
Name: curl
|
Name: curl
|
||||||
Version: 7.19.6
|
Version: 7.19.6
|
||||||
Release: 11%{?dist}
|
Release: 12%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: Applications/Internet
|
Group: Applications/Internet
|
||||||
Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma
|
Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma
|
||||||
@ -10,6 +10,7 @@ Patch1: curl-7.19.6-verifyhost.patch
|
|||||||
Patch2: curl-7.19.6-nss-cn.patch
|
Patch2: curl-7.19.6-nss-cn.patch
|
||||||
Patch3: curl-7.19.6-poll.patch
|
Patch3: curl-7.19.6-poll.patch
|
||||||
Patch4: curl-7.19.6-autoconf.patch
|
Patch4: curl-7.19.6-autoconf.patch
|
||||||
|
Patch5: curl-7.19.6-nss-guenter.patch
|
||||||
Patch101: curl-7.15.3-multilib.patch
|
Patch101: curl-7.15.3-multilib.patch
|
||||||
Patch102: curl-7.16.0-privlibs.patch
|
Patch102: curl-7.16.0-privlibs.patch
|
||||||
Patch103: curl-7.19.4-debug.patch
|
Patch103: curl-7.19.4-debug.patch
|
||||||
@ -76,6 +77,7 @@ use cURL's capabilities internally.
|
|||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
|
||||||
# Fedora patches
|
# Fedora patches
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
@ -164,6 +166,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_datadir}/aclocal/libcurl.m4
|
%{_datadir}/aclocal/libcurl.m4
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Oct 06 2009 Kamil Dudka <kdudka@redhat.com> 7.19.6-12
|
||||||
|
- upstream patch for NSS support written by Guenter Knauf
|
||||||
|
|
||||||
* Wed Sep 30 2009 Kamil Dudka <kdudka@redhat.com> 7.19.6-11
|
* Wed Sep 30 2009 Kamil Dudka <kdudka@redhat.com> 7.19.6-11
|
||||||
- build libcurl with c-ares support (#514771)
|
- build libcurl with c-ares support (#514771)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user