• Tom Lane's avatar
    Fix poor errno handling in libpq's version of our custom OpenSSL BIO. · 60f1e6bc
    Tom Lane authored
    Thom Brown reported that SSL connections didn't seem to work on Windows in
    9.5.  Asif Naeem figured out that the cause was my_sock_read() looking at
    "errno" when it needs to look at "SOCK_ERRNO".  This mistake was introduced
    in commit 680513ab, which cloned the
    backend's custom SSL BIO code into libpq, and didn't translate the errno
    handling properly.  Moreover, it introduced unnecessary errno save/restore
    logic, which was particularly confusing because it was incomplete; and it
    failed to check for all three of EINTR, EAGAIN, and EWOULDBLOCK in
    my_sock_write.  (That might not be necessary; but since we're copying
    well-tested backend code that does do that, it seems prudent to copy it
    faithfully.)
    60f1e6bc
fe-secure-openssl.c 41.7 KB