1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-24 14:22:24 +03:00

Closer code review for PQconnectionUsedPassword() patch: in particular,

not OK to include postgres_fe.h into libpq-fe.h, hence declare it as
returning int not bool.
This commit is contained in:
Tom Lane
2007-07-08 18:28:56 +00:00
parent 3f33d7bcb6
commit 5f7b1f8d9d
5 changed files with 47 additions and 41 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.346 2007/07/08 17:11:51 joe Exp $
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.347 2007/07/08 18:28:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -1641,10 +1641,6 @@ keep_going: /* We will come back to here until there is
return PGRES_POLLING_READING;
}
/* save the authentication request type */
if (conn->areq == AUTH_REQ_UNK)
conn->areq = areq;
/* Get the password salt if there is one. */
if (areq == AUTH_REQ_MD5)
{
@ -1670,6 +1666,10 @@ keep_going: /* We will come back to here until there is
*/
conn->inStart = conn->inCursor;
/* Save the authentication request type, if first one. */
if (conn->areq == AUTH_REQ_OK)
conn->areq = areq;
/* Respond to the request if necessary. */
/*
@ -1877,7 +1877,7 @@ makeEmptyPGconn(void)
conn->std_strings = false; /* unless server says differently */
conn->verbosity = PQERRORS_DEFAULT;
conn->sock = -1;
conn->areq = AUTH_REQ_UNK;
conn->areq = AUTH_REQ_OK; /* until we receive something else */
#ifdef USE_SSL
conn->allow_ssl_try = true;
conn->wait_ssl_try = false;
@ -3396,6 +3396,19 @@ PQbackendPID(const PGconn *conn)
return conn->be_pid;
}
int
PQconnectionUsedPassword(const PGconn *conn)
{
if (!conn)
return false;
if (conn->areq == AUTH_REQ_MD5 ||
conn->areq == AUTH_REQ_CRYPT ||
conn->areq == AUTH_REQ_PASSWORD)
return true;
else
return false;
}
int
PQclientEncoding(const PGconn *conn)
{
@ -3446,17 +3459,6 @@ PQsetClientEncoding(PGconn *conn, const char *encoding)
return status;
}
bool
PQconnectionUsedPassword(const PGconn *conn)
{
if (conn->areq == AUTH_REQ_MD5 ||
conn->areq == AUTH_REQ_CRYPT ||
conn->areq == AUTH_REQ_PASSWORD)
return true;
else
return false;
}
PGVerbosity
PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity)
{

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.137 2007/07/08 17:11:51 joe Exp $
* $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.138 2007/07/08 18:28:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -23,11 +23,10 @@ extern "C"
#include <stdio.h>
/*
* defines the backend's externally visible types,
* postgres_ext.h defines the backend's externally visible types,
* such as Oid.
*/
#include "postgres_ext.h"
#include "postgres_fe.h"
/* Application-visible enum types */
@ -264,9 +263,9 @@ extern int PQserverVersion(const PGconn *conn);
extern char *PQerrorMessage(const PGconn *conn);
extern int PQsocket(const PGconn *conn);
extern int PQbackendPID(const PGconn *conn);
extern int PQconnectionUsedPassword(const PGconn *conn);
extern int PQclientEncoding(const PGconn *conn);
extern int PQsetClientEncoding(PGconn *conn, const char *encoding);
extern bool PQconnectionUsedPassword(const PGconn *conn);
/* Get the OpenSSL structure associated with a connection. Returns NULL for
* unencrypted connections or if any other TLS library is in use. */
@ -426,7 +425,8 @@ extern void PQfreemem(void *ptr);
/* Exists for backward compatibility. bjm 2003-03-24 */
#define PQfreeNotify(ptr) PQfreemem(ptr)
/* Define the string so all uses are consistent. */
/* Error when no password was given. */
/* Note: depending on this is deprecated; use PQconnectionUsedPassword(). */
#define PQnoPasswordSupplied "fe_sendauth: no password supplied\n"
/*

View File

@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/interfaces/libpq/libpq-int.h,v 1.120 2007/07/08 17:11:51 joe Exp $
* $PostgreSQL: pgsql/src/interfaces/libpq/libpq-int.h,v 1.121 2007/07/08 18:28:56 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -299,7 +299,7 @@ struct pg_conn
SockAddr raddr; /* Remote address */
ProtocolVersion pversion; /* FE/BE protocol version in use */
int sversion; /* server version, e.g. 70401 for 7.4.1 */
AuthRequest areq; /* server demanded password during auth */
AuthRequest areq; /* auth type demanded by server */
/* Transient state needed while establishing connection */
struct addrinfo *addrlist; /* list of possible backend addresses */