]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cups/http.c
Merge changes from CUPS 1.5svn-r9641
[thirdparty/cups.git] / cups / http.c
index 83a7a79d5ba88968041832c8577c73fd215700df..5bcf7facdd254397c2c91a9642e81e38643e1656 100644 (file)
@@ -3456,9 +3456,7 @@ http_read_ssl(http_t *http,               /* I - Connection to server */
     case 0 :
        result = (int)processed;
        break;
-    case errSSLClosedGraceful :
-       result = 0;
-       break;
+
     case errSSLWouldBlock :
        if (processed)
          result = (int)processed;
@@ -3468,9 +3466,16 @@ http_read_ssl(http_t *http,              /* I - Connection to server */
          errno = EINTR;
        }
        break;
+
+    case errSSLClosedGraceful :
     default :
-       errno = EPIPE;
-       result = -1;
+       if (processed)
+         result = (int)processed;
+       else
+       {
+         result = -1;
+         errno = EPIPE;
+       }
        break;
   }
 
@@ -4485,9 +4490,7 @@ http_write_ssl(http_t     *http,  /* I - Connection to server */
     case 0 :
        result = (int)processed;
        break;
-    case errSSLClosedGraceful :
-       result = 0;
-       break;
+
     case errSSLWouldBlock :
        if (processed)
          result = (int)processed;
@@ -4497,13 +4500,20 @@ http_write_ssl(http_t     *http,        /* I - Connection to server */
          errno  = EINTR;
        }
        break;
+
+    case errSSLClosedGraceful :
     default :
-       errno  = EPIPE;
-       result = -1;
+       if (processed)
+         result = (int)processed;
+       else
+       {
+         result = -1;
+         errno  = EPIPE;
+       }
        break;
   }
 #  elif defined(HAVE_SSPISSL)
-  return _sspiWrite((_sspi_struct_t*) http->tls, (void*) buf, len);
+  return _sspiWrite((_sspi_struct_t *)http->tls, (void *)buf, len);
 #  endif /* HAVE_LIBSSL */
 
   DEBUG_printf(("3http_write_ssl: Returning %d.", (int)result));