Check SSL_get_error() value SSL_ERROR_SYSCALL to see if SSL_read()
authorBruce Momjian
Thu, 12 Dec 2002 22:42:39 +0000 (22:42 +0000)
committerBruce Momjian
Thu, 12 Dec 2002 22:42:39 +0000 (22:42 +0000)
returned -1, per SSL_get_error() documentation.

Nathan Mueller

src/backend/libpq/be-secure.c
src/interfaces/libpq/fe-secure.c

index 7973f2a05b02abe0155d1ba8303e75901a269659..fcbef04b670d5140828ea1f019cb5eed3a33b6d7 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.16 2002/11/07 18:45:51 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.17 2002/12/12 22:42:39 momjian Exp $
  *
  *   Since the server static private key ($DataDir/server.key)
  *   will normally be stored unencrypted so that the database
@@ -288,7 +288,10 @@ secure_read(Port *port, void *ptr, size_t len)
            case SSL_ERROR_WANT_READ:
                break;
            case SSL_ERROR_SYSCALL:
-               elog(ERROR, "SSL SYSCALL error: %s", strerror(errno));
+               if (n == -1)
+                   elog(ERROR, "SSL SYSCALL error: %s", strerror(errno));
+               else
+                   strerror(errno));
                break;
            case SSL_ERROR_SSL:
                elog(ERROR, "SSL error: %s", SSLerrmessage());
@@ -337,7 +340,10 @@ secure_write(Port *port, const void *ptr, size_t len)
            case SSL_ERROR_WANT_WRITE:
                break;
            case SSL_ERROR_SYSCALL:
-               elog(ERROR, "SSL SYSCALL error: %s", strerror(errno));
+               if (n == -1)
+                   elog(ERROR, "SSL SYSCALL error: %s", strerror(errno));
+               else
+                   strerror(errno));
                break;
            case SSL_ERROR_SSL:
                elog(ERROR, "SSL error: %s", SSLerrmessage());
index c32697f0aab78a4e005aa09e44ca76548d8aa193..b0cec2608a58121a7a074d98cdd0c6878061c2ea 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-secure.c,v 1.16 2002/11/07 18:45:51 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-secure.c,v 1.17 2002/12/12 22:42:39 momjian Exp $
  *
  * NOTES
  *   The client *requires* a valid server certificate.  Since
@@ -270,7 +270,8 @@ pqsecure_read(PGconn *conn, void *ptr, size_t len)
            case SSL_ERROR_WANT_READ:
                break;
            case SSL_ERROR_SYSCALL:
-               printfPQExpBuffer(&conn->errorMessage,
+               if (n == -1)
+                   printfPQExpBuffer(&conn->errorMessage,
                                libpq_gettext("SSL SYSCALL error: %s\n"),
                                  SOCK_STRERROR(SOCK_ERRNO));
                break;
@@ -315,7 +316,8 @@ pqsecure_write(PGconn *conn, const void *ptr, size_t len)
            case SSL_ERROR_WANT_WRITE:
                break;
            case SSL_ERROR_SYSCALL:
-               printfPQExpBuffer(&conn->errorMessage,
+               if (n == -1)
+                   printfPQExpBuffer(&conn->errorMessage,
                                libpq_gettext("SSL SYSCALL error: %s\n"),
                                  SOCK_STRERROR(SOCK_ERRNO));
                break;