[RFC,PATCH] Only disable sigpipe during SSL write

Поиск
Список
Период
Сортировка
От Jeremy Kerr
Тема [RFC,PATCH] Only disable sigpipe during SSL write
Дата
Msg-id 1243914753.517466.918714025754.1.gpush@pingu
обсуждение исходный текст
Список 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@ozlabs.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;}


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: It's June 1; do you know where your release is?
Следующее
От: Jeremy Kerr
Дата:
Сообщение: [RFC,PATCH] SIGPIPE masking in local socket connections