- 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) | ||||
| Name: curl | ||||
| Version: 7.19.6 | ||||
| Release: 11%{?dist} | ||||
| Release: 12%{?dist} | ||||
| License: MIT | ||||
| Group: Applications/Internet | ||||
| 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 | ||||
| Patch3: curl-7.19.6-poll.patch | ||||
| Patch4: curl-7.19.6-autoconf.patch | ||||
| Patch5: curl-7.19.6-nss-guenter.patch | ||||
| Patch101: curl-7.15.3-multilib.patch | ||||
| Patch102: curl-7.16.0-privlibs.patch | ||||
| Patch103: curl-7.19.4-debug.patch | ||||
| @ -76,6 +77,7 @@ use cURL's capabilities internally. | ||||
| %patch2 -p1 | ||||
| %patch3 -p1 | ||||
| %patch4 -p1 | ||||
| %patch5 -p1 | ||||
| 
 | ||||
| # Fedora patches | ||||
| %patch101 -p1 | ||||
| @ -164,6 +166,9 @@ rm -rf $RPM_BUILD_ROOT | ||||
| %{_datadir}/aclocal/libcurl.m4 | ||||
| 
 | ||||
| %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 | ||||
| - build libcurl with c-ares support (#514771) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user