--- C:\download\prog\curl\curl-7.15.6-20060821\curl-7.15.6-20060821\include\curl\curl.h	2006-08-05 04:00:24.001 +0200
+++ 	1970-01-01 01:00:00.001 +0100
@@ -339,6 +339,8 @@
                                     CURLOPT_CONV_FROM_NETWORK_FUNCTION,
                                     CURLOPT_CONV_TO_NETWORK_FUNCTION, and
                                     CURLOPT_CONV_FROM_UTF8_FUNCTION */
+  CURLE_SSL_CACERT_BADFILE,      /* 77 - could not load CACERT file, missing
+                                    or wrong format */
   CURL_LAST /* never use! */
 } CURLcode;
 

--- C:\download\prog\curl\curl-7.15.6-20060821\curl-7.15.6-20060821\lib\gtls.c	2006-08-17 04:00:34.000 +0200
+++ C:\dev\sdk\curl-7.15.4\lib\gtls.c	2006-10-09 14:04:26.000 +0200
@@ -235,8 +235,12 @@
                                                 data->set.ssl.CAfile,
                                                 GNUTLS_X509_FMT_PEM);
     if(rc < 0)
+    {
       infof(data, "error reading ca cert file %s (%s)\n",
             data->set.ssl.CAfile, gnutls_strerror(rc));
+      if (data->set.ssl.verifypeer)
+          return CURLE_SSL_CACERT_BADFILE;
+    }
     else
       infof(data, "found %d certificates in %s\n",
             rc, data->set.ssl.CAfile);

--- C:\download\prog\curl\curl-7.15.6-20060821\curl-7.15.6-20060821\lib\ssluse.c	2006-07-20 04:00:30.001 +0200
+++ C:\dev\sdk\curl-7.15.4\lib\ssluse.c	2006-10-09 11:44:18.001 +0200
@@ -1272,7 +1272,7 @@
               "  CAfile: %s\n  CApath: %s\n",
               data->set.ssl.CAfile ? data->set.ssl.CAfile : "none",
               data->set.ssl.CApath ? data->set.ssl.CApath : "none");
-        return CURLE_SSL_CACERT;
+        return CURLE_SSL_CACERT_BADFILE;
       }
       else {
         /* Just continue with a warning if no strict  certificate verification

--- C:\download\prog\curl\curl-7.15.6-20060821\curl-7.15.6-20060821\lib\strerror.c	2006-08-02 04:00:16.001 +0200
+++ C:\dev\sdk\curl-7.15.4\lib\strerror.c	2006-10-09 11:52:45.000 +0200
@@ -227,6 +227,9 @@
     return "couldn't use specified SSL cipher";
 
   case CURLE_SSL_CACERT:
+    return "peer certificate cannot be authenticated with known CA certificates";
+
+  case CURLE_SSL_CACERT_BADFILE:
     return "problem with the SSL CA cert (path? access rights?)";
 
   case CURLE_BAD_CONTENT_ENCODING:

--- C:\download\prog\curl\curl-7.15.6-20060821\curl-7.15.6-20060821\docs\libcurl\libcurl-errors.3	2006-06-25 04:00:18.001 +0200
+++ C:\dev\sdk\curl-7.15.4\docs\libcurl\libcurl-errors.3	2006-10-09 14:10:31.000 +0200
@@ -174,7 +174,7 @@
 .IP "CURLE_SSL_CIPHER (59)"
 couldn't use specified cipher
 .IP "CURLE_SSL_CACERT (60)"
-problem with the CA cert (path? access rights?) 
+peer certificate cannot be authenticated with known CA certificates
 .IP "CURLE_BAD_CONTENT_ENCODING (61)"
 Unrecognized transfer encoding
 .IP "CURLE_LDAP_INVALID_URL (62)"
@@ -208,6 +208,9 @@
 Character conversion failed
 .IP "CURLE_CONV_REQD (76)"
 Caller must register conversion callbacks
+.IP "CURLE_SSL_CACERT_BADFILE (77)"
+Problem with the SSL CA cert (path? access rights?)
+
 .SH "CURLMcode"
 This is the generic return code used by functions in the libcurl multi
 interface. Also consider \fIcurl_multi_strerror(3)\fP.

--- C:\dev\sdk\curl-7.15.4-withftptype\tests\data\test305	2006-06-07 14:56:20.000 +0200
+++ C:\dev\sdk\curl-7.15.4\tests\data\test305	2006-10-20 14:10:05.000 +0200
@@ -28,6 +28,6 @@
 <protocol>
 </protocol>
 <errorcode>
-60
+77
 </errorcode>
 </verify>


