Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbcf23ba

Browse files
committed
Fix previous patch so it also works if not USE_SSL (mea culpa).
On balance, the need to cover this case changes my mind in favor of pushingall error-message generation duties into the two fe-secure.c routines.So do it that way.
1 parentfee476d commitbcf23ba

File tree

2 files changed

+170
-98
lines changed

2 files changed

+170
-98
lines changed

‎src/interfaces/libpq/fe-misc.c

Lines changed: 12 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,6 @@ pqReadData(PGconn *conn)
578578
{
579579
intsomeread=0;
580580
intnread;
581-
charsebuf[256];
582581

583582
if (conn->sock<0)
584583
{
@@ -647,11 +646,7 @@ pqReadData(PGconn *conn)
647646
if (SOCK_ERRNO==ECONNRESET)
648647
gotodefinitelyFailed;
649648
#endif
650-
/* in SSL mode, pqsecure_read set the error message */
651-
if (conn->ssl==NULL)
652-
printfPQExpBuffer(&conn->errorMessage,
653-
libpq_gettext("could not receive data from server: %s\n"),
654-
SOCK_STRERROR(SOCK_ERRNO,sebuf,sizeof(sebuf)));
649+
/* pqsecure_read set the error message for us */
655650
return-1;
656651
}
657652
if (nread>0)
@@ -711,6 +706,11 @@ pqReadData(PGconn *conn)
711706
/* ready for read */
712707
break;
713708
default:
709+
printfPQExpBuffer(&conn->errorMessage,
710+
libpq_gettext(
711+
"server closed the connection unexpectedly\n"
712+
"\tThis probably means the server terminated abnormally\n"
713+
"\tbefore or while processing the request.\n"));
714714
gotodefinitelyFailed;
715715
}
716716

@@ -739,11 +739,7 @@ pqReadData(PGconn *conn)
739739
if (SOCK_ERRNO==ECONNRESET)
740740
gotodefinitelyFailed;
741741
#endif
742-
/* in SSL mode, pqsecure_read set the error message */
743-
if (conn->ssl==NULL)
744-
printfPQExpBuffer(&conn->errorMessage,
745-
libpq_gettext("could not receive data from server: %s\n"),
746-
SOCK_STRERROR(SOCK_ERRNO,sebuf,sizeof(sebuf)));
742+
/* pqsecure_read set the error message for us */
747743
return-1;
748744
}
749745
if (nread>0)
@@ -754,16 +750,10 @@ pqReadData(PGconn *conn)
754750

755751
/*
756752
* OK, we are getting a zero read even though select() says ready. This
757-
* means the connection has been closed. Cope.
753+
* means the connection has been closed. Cope. Note that errorMessage
754+
* has been set already.
758755
*/
759756
definitelyFailed:
760-
/* in SSL mode, pqsecure_read set the error message */
761-
if (conn->ssl==NULL)
762-
printfPQExpBuffer(&conn->errorMessage,
763-
libpq_gettext(
764-
"server closed the connection unexpectedly\n"
765-
"\tThis probably means the server terminated abnormally\n"
766-
"\tbefore or while processing the request.\n"));
767757
conn->status=CONNECTION_BAD;/* No more connection to backend */
768758
pqsecure_close(conn);
769759
closesocket(conn->sock);
@@ -799,7 +789,6 @@ pqSendSome(PGconn *conn, int len)
799789
while (len>0)
800790
{
801791
intsent;
802-
charsebuf[256];
803792

804793
#ifndefWIN32
805794
sent=pqsecure_write(conn,ptr,len);
@@ -815,11 +804,7 @@ pqSendSome(PGconn *conn, int len)
815804

816805
if (sent<0)
817806
{
818-
/*
819-
* Anything except EAGAIN/EWOULDBLOCK/EINTR is trouble. If it's
820-
* EPIPE or ECONNRESET, assume we've lost the backend connection
821-
* permanently.
822-
*/
807+
/* Anything except EAGAIN/EWOULDBLOCK/EINTR is trouble */
823808
switch (SOCK_ERRNO)
824809
{
825810
#ifdefEAGAIN
@@ -833,17 +818,8 @@ pqSendSome(PGconn *conn, int len)
833818
caseEINTR:
834819
continue;
835820

836-
caseEPIPE:
837-
#ifdefECONNRESET
838-
caseECONNRESET:
839-
#endif
840-
/* in SSL mode, pqsecure_write set the error message */
841-
if (conn->ssl==NULL)
842-
printfPQExpBuffer(&conn->errorMessage,
843-
libpq_gettext(
844-
"server closed the connection unexpectedly\n"
845-
"\tThis probably means the server terminated abnormally\n"
846-
"\tbefore or while processing the request.\n"));
821+
default:
822+
/* pqsecure_write set the error message for us */
847823

848824
/*
849825
* We used to close the socket here, but that's a bad idea
@@ -855,16 +831,6 @@ pqSendSome(PGconn *conn, int len)
855831
*/
856832
conn->outCount=0;
857833
return-1;
858-
859-
default:
860-
/* in SSL mode, pqsecure_write set the error message */
861-
if (conn->ssl==NULL)
862-
printfPQExpBuffer(&conn->errorMessage,
863-
libpq_gettext("could not send data to server: %s\n"),
864-
SOCK_STRERROR(SOCK_ERRNO,sebuf,sizeof(sebuf)));
865-
/* We don't assume it's a fatal error... */
866-
conn->outCount=0;
867-
return-1;
868834
}
869835
}
870836
else

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp