Re: psql client does not handle WSAEWOULDBLOCK on Windows

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Ning <ning94803(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Andrew Dunstan <andrew(at)dunslane(dot)net>
Subject: Re: psql client does not handle WSAEWOULDBLOCK on Windows
Date: 2025-09-02 15:51:41
Message-ID: 592101.1756828301@sss.pgh.pa.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Michael Paquier <michael(at)paquier(dot)xyz> writes:
> This is going to require some platform-specific check that I don't
> have with me, though I am ready to accept that what you are telling
> here is true and that we should apply this macro. Could somebody
> check that a bit more in depth? Andrew D. perhaps?

> One thing that I don't understand is why does this only apply after
> the first call of pqsecure_raw_read() in gss_read()? There is a
> second call of pqsecure_raw_read() you are not covering but it would
> surely need the same treatment, no?

> Also, what about pqsecure_raw_write() in pqsecure_open_gss()?
> Shouldn't the same check apply?

Yeah, I think we pretty much need to use SOCK_ERRNO, SOCK_ERRNO_SET,
and SOCK_STRERROR (if relevant) throughout fe-secure-gssapi.c.
Directly using errno is correct for syscalls related to the file
system, but I think everything in this file is dealing with
socket-related errors. Certainly the underlying pqsecure_raw_read
and pqsecure_raw_write layer expects those macros to be used.

Like you, I'm not really in a position to test this on Windows ...

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2025-09-02 16:02:37 Re: Use bool with synced field (src/include/replication/slot.h)
Previous Message Nathan Bossart 2025-09-02 15:38:23 Re: Improve LWLock tranche name visibility across backends