From: | Jeremy Kerr <jk(at)ozlabs(dot)org> |
---|---|
To: | <pgsql-hackers(at)postgresql(dot)org> |
Subject: | [RFC,PATCH] Only disable sigpipe during SSL write |
Date: | 2009-06-02 03:52:33 |
Message-ID: | 1243914753.517466.918714025754.1.gpush@pingu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
If the connection isn't over SSL, there's no need to do the disable.
This effectively halves the number of syscalls performed by libpq when
SSL is not in use.
Signed-off-by: Jeremy Kerr <jk(at)ozlabs(dot)org>
---
src/interfaces/libpq/fe-secure.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c
index eb579cf..2101315 100644
--- a/src/interfaces/libpq/fe-secure.c
+++ b/src/interfaces/libpq/fe-secure.c
@@ -368,13 +368,13 @@ pqsecure_write(PGconn *conn, const void *ptr, size_t len)
{
ssize_t n;
- DISABLE_SIGPIPE(return -1);
-
#ifdef USE_SSL
if (conn->ssl)
{
int err;
+ DISABLE_SIGPIPE(return -1);
+
n = SSL_write(conn->ssl, ptr, len);
err = SSL_get_error(conn->ssl, n);
switch (err)
@@ -433,15 +433,14 @@ pqsecure_write(PGconn *conn, const void *ptr, size_t len)
n = -1;
break;
}
+ RESTORE_SIGPIPE();
}
else
#endif
{
n = send(conn->sock, ptr, len, 0);
- REMEMBER_EPIPE(n < 0 && SOCK_ERRNO == EPIPE);
}
- RESTORE_SIGPIPE();
return n;
}
From | Date | Subject | |
---|---|---|---|
Next Message | Kris Jurka | 2009-06-02 05:09:49 | Re: It's June 1; do you know where your release is? |
Previous Message | Robert Haas | 2009-06-02 03:50:06 | Re: It's June 1; do you know where your release is? |