[RFC,PATCH] Only disable sigpipe during SSL write

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;
}

In response to

Browse pgsql-hackers by date

  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?