mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
Adjust signature of walrcv_receive hook.
Commit 314cbfc5da
redefined the signature of this hook as
typedef int (*walrcv_receive_type) (char **buffer, int *wait_fd);
But in fact the type of the "wait_fd" variable ought to be pgsocket,
which is what WaitLatchOrSocket expects, and which is necessary if
we want to be able to assign PGINVALID_SOCKET to it on Windows.
So fix that.
This commit is contained in:
parent
994f112573
commit
c2dc194bdb
@ -16,12 +16,12 @@ bool walrcv_connect(char *conninfo, XLogRecPtr startpoint)
|
||||
Establish connection to the primary, and starts streaming from 'startpoint'.
|
||||
Returns true on success.
|
||||
|
||||
int walrcv_receive(char **buffer, int *wait_fd)
|
||||
int walrcv_receive(char **buffer, pgsocket *wait_fd)
|
||||
|
||||
Retrieve any message available without blocking through the
|
||||
connection. If a message was successfully read, returns its
|
||||
length. If the connection is closed, returns -1. Otherwise returns 0
|
||||
to indicate that no data is available, and sets *wait_fd to a file
|
||||
to indicate that no data is available, and sets *wait_fd to a socket
|
||||
descriptor which can be waited on before trying again. On success, a
|
||||
pointer to the message payload is stored in *buffer. The returned
|
||||
buffer is valid until the next call to walrcv_* functions, and the
|
||||
|
@ -52,7 +52,7 @@ static void libpqrcv_readtimelinehistoryfile(TimeLineID tli, char **filename, ch
|
||||
static bool libpqrcv_startstreaming(TimeLineID tli, XLogRecPtr startpoint,
|
||||
char *slotname);
|
||||
static void libpqrcv_endstreaming(TimeLineID *next_tli);
|
||||
static int libpqrcv_receive(char **buffer, int *wait_fd);
|
||||
static int libpqrcv_receive(char **buffer, pgsocket *wait_fd);
|
||||
static void libpqrcv_send(const char *buffer, int nbytes);
|
||||
static void libpqrcv_disconnect(void);
|
||||
|
||||
@ -472,14 +472,14 @@ libpqrcv_disconnect(void)
|
||||
* until the next libpqrcv_* call.
|
||||
*
|
||||
* If no data was available immediately, returns 0, and *wait_fd is set to a
|
||||
* file descriptor which can be waited on before trying again.
|
||||
* socket descriptor which can be waited on before trying again.
|
||||
*
|
||||
* -1 if the server ended the COPY.
|
||||
*
|
||||
* ereports on error.
|
||||
*/
|
||||
static int
|
||||
libpqrcv_receive(char **buffer, int *wait_fd)
|
||||
libpqrcv_receive(char **buffer, pgsocket *wait_fd)
|
||||
{
|
||||
int rawlen;
|
||||
|
||||
|
@ -379,7 +379,7 @@ WalReceiverMain(void)
|
||||
char *buf;
|
||||
int len;
|
||||
bool endofwal = false;
|
||||
int wait_fd = PGINVALID_SOCKET;
|
||||
pgsocket wait_fd = PGINVALID_SOCKET;
|
||||
int rc;
|
||||
|
||||
/*
|
||||
|
@ -145,7 +145,7 @@ extern PGDLLIMPORT walrcv_startstreaming_type walrcv_startstreaming;
|
||||
typedef void (*walrcv_endstreaming_type) (TimeLineID *next_tli);
|
||||
extern PGDLLIMPORT walrcv_endstreaming_type walrcv_endstreaming;
|
||||
|
||||
typedef int (*walrcv_receive_type) (char **buffer, int *wait_fd);
|
||||
typedef int (*walrcv_receive_type) (char **buffer, pgsocket *wait_fd);
|
||||
extern PGDLLIMPORT walrcv_receive_type walrcv_receive;
|
||||
|
||||
typedef void (*walrcv_send_type) (const char *buffer, int nbytes);
|
||||
|
Loading…
Reference in New Issue
Block a user