From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | Ning <ning94803(at)gmail(dot)com> |
Cc: | 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: | 2024-12-10 06:41:02 |
Message-ID: | Z1fifjpgDAxPPkuh@paquier.xyz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Aug 06, 2024 at 04:01:42PM +0800, Ning wrote:
> In the function of gss_read() if print the value of errno and SOCK_ERRNO
> separately, I found the values are different:
> *ret = pqsecure_raw_read(conn, recv_buffer, length);
> if (*ret < 0)
> {
> printf("errno: %d\n", errno);
> printf("result_errno: %d\n", SOCK_ERRNO);
> ...
*ret = pqsecure_raw_read(conn, recv_buffer, length);
if (*ret < 0)
{
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR)
+ if (SOCK_ERRNO == EAGAIN || SOCK_ERRNO == EWOULDBLOCK || SOCK_ERRNO == EINTR)
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?
--
Michael
From | Date | Subject | |
---|---|---|---|
Next Message | Bertrand Drouvot | 2024-12-10 06:42:38 | Re: shared-memory based stats collector - v70 |
Previous Message | Michael Harris | 2024-12-10 06:34:23 | Re: FileFallocate misbehaving on XFS |