diff options
Diffstat (limited to 'src/backend/libpq/pqpacket.c')
-rw-r--r-- | src/backend/libpq/pqpacket.c | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/backend/libpq/pqpacket.c b/src/backend/libpq/pqpacket.c index 160944cc5fb..591867e0a9a 100644 --- a/src/backend/libpq/pqpacket.c +++ b/src/backend/libpq/pqpacket.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/pqpacket.c,v 1.22 1999/07/17 20:17:03 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/pqpacket.c,v 1.23 1999/09/27 03:12:59 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -50,13 +50,20 @@ PacketReceiveSetup(Packet *pkt, PacketDoneProc iodone, void *arg) */ int -PacketReceiveFragment(Packet *pkt, int sock) +PacketReceiveFragment(Port *port) { int got; - - if ((got = read(sock, pkt->ptr, pkt->nrtodo)) > 0) + Packet *pkt = &port->pktInfo; + +#ifdef USE_SSL + if (port->ssl) + got = SSL_read(port->ssl, pkt->ptr, pkt->nrtodo); + else +#endif + got = read(port->sock, pkt->ptr, pkt->nrtodo); + if (got > 0) { - pkt->nrtodo -= got; + pkt->nrtodo -= got; pkt->ptr += got; /* See if we have got what we need for the packet length. */ @@ -132,11 +139,19 @@ PacketSendSetup(Packet *pkt, int nbytes, PacketDoneProc iodone, void *arg) */ int -PacketSendFragment(Packet *pkt, int sock) +PacketSendFragment(Port *port) { int done; + Packet *pkt = &port->pktInfo; + +#ifdef USE_SSL + if (port->ssl) + done = SSL_write(port->ssl, pkt->ptr, pkt->nrtodo); + else +#endif + done = write(port->sock, pkt->ptr, pkt->nrtodo); - if ((done = write(sock, pkt->ptr, pkt->nrtodo)) > 0) + if (done > 0) { pkt->nrtodo -= done; pkt->ptr += done; |