88 *
99 *
1010 * IDENTIFICATION
11- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.247 2003/06/12 08:15:29 momjian Exp $
11+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.248 2003/06/14 17:49:53 momjian Exp $
1212 *
1313 *-------------------------------------------------------------------------
1414 */
@@ -713,9 +713,11 @@ connectMakeNonblocking(PGconn *conn)
713713{
714714 if (FCNTL_NONBLOCK (conn -> sock ) < 0 )
715715 {
716+ char sebuf [256 ];
717+
716718 printfPQExpBuffer (& conn -> errorMessage ,
717719 libpq_gettext ("could not set socket to non-blocking mode: %s\n" ),
718- SOCK_STRERROR (SOCK_ERRNO ));
720+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
719721 return 0 ;
720722 }
721723
@@ -738,9 +740,11 @@ connectNoDelay(PGconn *conn)
738740 (char * ) & on ,
739741 sizeof (on )) < 0 )
740742 {
743+ char sebuf [256 ];
744+
741745 printfPQExpBuffer (& conn -> errorMessage ,
742746 libpq_gettext ("could not set socket to TCP no delay mode: %s\n" ),
743- SOCK_STRERROR (SOCK_ERRNO ));
747+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
744748 return 0 ;
745749 }
746750#endif
@@ -759,6 +763,7 @@ connectFailureMessage(PGconn *conn, int errorno)
759763{
760764 char hostname [NI_MAXHOST ];
761765 char service [NI_MAXHOST ];
766+ char sebuf [256 ];
762767
763768 getnameinfo ((struct sockaddr * )& conn -> raddr .addr , conn -> raddr .salen ,
764769 hostname , sizeof (hostname ), service , sizeof (service ),
@@ -770,15 +775,15 @@ connectFailureMessage(PGconn *conn, int errorno)
770775 "\tIs the server running locally and accepting\n"
771776 "\tconnections on Unix domain socket \"%s\"?\n"
772777 ),
773- SOCK_STRERROR (errorno ), service );
778+ SOCK_STRERROR (errorno , sebuf , sizeof ( sebuf ) ), service );
774779 else
775780 printfPQExpBuffer (& conn -> errorMessage ,
776781 libpq_gettext (
777782 "could not connect to server: %s\n"
778783 "\tIs the server running on host %s and accepting\n"
779784 "\tTCP/IP connections on port %s?\n"
780785 ),
781- SOCK_STRERROR (errorno ),
786+ SOCK_STRERROR (errorno , sebuf , sizeof ( sebuf ) ),
782787 conn -> pghostaddr
783788 ? conn -> pghostaddr
784789 : (conn -> pghost
@@ -1001,6 +1006,7 @@ PostgresPollingStatusType
10011006PQconnectPoll (PGconn * conn )
10021007{
10031008 PGresult * res ;
1009+ char sebuf [256 ];
10041010
10051011 if (conn == NULL )
10061012 return PGRES_POLLING_FAILED ;
@@ -1094,7 +1100,7 @@ PQconnectPoll(PGconn *conn)
10941100 }
10951101 printfPQExpBuffer (& conn -> errorMessage ,
10961102 libpq_gettext ("could not create socket: %s\n" ),
1097- SOCK_STRERROR (SOCK_ERRNO ));
1103+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
10981104 break ;
10991105 }
11001106
@@ -1200,7 +1206,7 @@ PQconnectPoll(PGconn *conn)
12001206 {
12011207 printfPQExpBuffer (& conn -> errorMessage ,
12021208 libpq_gettext ("could not get socket error status: %s\n" ),
1203- SOCK_STRERROR (SOCK_ERRNO ));
1209+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
12041210 goto error_return ;
12051211 }
12061212 else if (optval != 0 )
@@ -1237,7 +1243,7 @@ PQconnectPoll(PGconn *conn)
12371243 {
12381244 printfPQExpBuffer (& conn -> errorMessage ,
12391245 libpq_gettext ("could not get client address from socket: %s\n" ),
1240- SOCK_STRERROR (SOCK_ERRNO ));
1246+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
12411247 goto error_return ;
12421248 }
12431249
@@ -1282,7 +1288,7 @@ PQconnectPoll(PGconn *conn)
12821288 {
12831289 printfPQExpBuffer (& conn -> errorMessage ,
12841290 libpq_gettext ("could not send SSL negotiation packet: %s\n" ),
1285- SOCK_STRERROR (SOCK_ERRNO ));
1291+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
12861292 goto error_return ;
12871293 }
12881294 /* Ok, wait for response */
@@ -1317,7 +1323,7 @@ PQconnectPoll(PGconn *conn)
13171323 {
13181324 printfPQExpBuffer (& conn -> errorMessage ,
13191325 libpq_gettext ("could not send startup packet: %s\n" ),
1320- SOCK_STRERROR (SOCK_ERRNO ));
1326+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
13211327 free (startpacket );
13221328 goto error_return ;
13231329 }
@@ -1357,7 +1363,7 @@ PQconnectPoll(PGconn *conn)
13571363
13581364 printfPQExpBuffer (& conn -> errorMessage ,
13591365 libpq_gettext ("could not receive server response to SSL negotiation packet: %s\n" ),
1360- SOCK_STRERROR (SOCK_ERRNO ));
1366+ SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
13611367 goto error_return ;
13621368 }
13631369 if (nread == 0 )
@@ -2037,6 +2043,7 @@ PQrequestCancel(PGconn *conn)
20372043{
20382044 int save_errno = SOCK_ERRNO ;
20392045 int tmpsock = -1 ;
2046+ char sebuf [256 ];
20402047 struct
20412048 {
20422049 uint32 packetlen ;
@@ -2115,7 +2122,7 @@ PQrequestCancel(PGconn *conn)
21152122 return TRUE;
21162123
21172124cancel_errReturn :
2118- strcat (conn -> errorMessage .data , SOCK_STRERROR (SOCK_ERRNO ));
2125+ strcat (conn -> errorMessage .data , SOCK_STRERROR (SOCK_ERRNO , sebuf , sizeof ( sebuf ) ));
21192126 strcat (conn -> errorMessage .data , "\n" );
21202127 conn -> errorMessage .len = strlen (conn -> errorMessage .data );
21212128 if (tmpsock >= 0 )
@@ -2262,8 +2269,9 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
22622269 * val ;
22632270 int found_keyword ;
22642271
2265- key = strtok (line , "=" );
2266- if (key == NULL )
2272+ key = line ;
2273+ val = strchr (line , '=' );
2274+ if ( val == NULL )
22672275 {
22682276 printfPQExpBuffer (errorMessage ,
22692277 "ERROR: syntax error in service file '%s', line %d\n" ,
@@ -2272,6 +2280,7 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
22722280 fclose (f );
22732281 return 3 ;
22742282 }
2283+ * val ++ = '\0' ;
22752284
22762285 /*
22772286 * If not already set, set the database name to the
@@ -2287,8 +2296,6 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
22872296 }
22882297 }
22892298
2290- val = line + strlen (line ) + 1 ;
2291-
22922299 /*
22932300 * Set the parameter --- but don't override any
22942301 * previous explicit setting.
0 commit comments