diff options
| author | Tom Lane | 2023-05-22 15:50:20 +0000 |
|---|---|---|
| committer | Tom Lane | 2023-05-22 15:50:27 +0000 |
| commit | 1f9f6aa491986ed4e65851e827d021e9c784fd42 (patch) | |
| tree | 5f8cc3f4deb06c11db3e38a81e99b805123570ed /src/interfaces/libpq | |
| parent | 4123455a9e5463495a6e9be8423e671c874ec19f (diff) | |
Spell the values of libpq's gssdelegation parameter as "0" and "1".
That's how other boolean options are handled, so do likewise.
The previous coding with "enable" and "disable" was seemingly
modeled on gssencmode, but that's a three-way flag.
While at it, add PGGSSDELEGATION to the set of environment
variables cleared by pg_regress and Utils.pm.
Abhijit Menon-Sen, per gripe from Alvaro Herrera
Discussion: https://postgr.es/m/20230522091609.nlyuu4nolhycqs2p@alvherre.pgsql
Diffstat (limited to 'src/interfaces/libpq')
| -rw-r--r-- | src/interfaces/libpq/fe-auth.c | 2 | ||||
| -rw-r--r-- | src/interfaces/libpq/fe-connect.c | 4 | ||||
| -rw-r--r-- | src/interfaces/libpq/fe-secure-gssapi.c | 2 | ||||
| -rw-r--r-- | src/interfaces/libpq/libpq-int.h | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c index de0e13e50d1..88fd0f3d802 100644 --- a/src/interfaces/libpq/fe-auth.c +++ b/src/interfaces/libpq/fe-auth.c @@ -97,7 +97,7 @@ pg_GSS_continue(PGconn *conn, int payloadlen) if (!pg_GSS_have_cred_cache(&conn->gcred)) conn->gcred = GSS_C_NO_CREDENTIAL; - if (conn->gssdelegation && pg_strcasecmp(conn->gssdelegation, "enable") == 0) + if (conn->gssdelegation && conn->gssdelegation[0] == '1') gss_flags |= GSS_C_DELEG_FLAG; maj_stat = gss_init_sec_context(&min_stat, diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 786d22a7706..a8584d2c684 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -343,8 +343,8 @@ static const internalPQconninfoOption PQconninfoOptions[] = { "GSS-library", "", 7, /* sizeof("gssapi") == 7 */ offsetof(struct pg_conn, gsslib)}, - {"gssdelegation", "PGGSSDELEGATION", NULL, NULL, - "GSS-delegation", "", 8, /* sizeof("disable") == 8 */ + {"gssdelegation", "PGGSSDELEGATION", "0", NULL, + "GSS-delegation", "", 1, offsetof(struct pg_conn, gssdelegation)}, {"replication", NULL, NULL, NULL, diff --git a/src/interfaces/libpq/fe-secure-gssapi.c b/src/interfaces/libpq/fe-secure-gssapi.c index c77d5cfe9f5..7e373236e92 100644 --- a/src/interfaces/libpq/fe-secure-gssapi.c +++ b/src/interfaces/libpq/fe-secure-gssapi.c @@ -622,7 +622,7 @@ pqsecure_open_gss(PGconn *conn) if (ret != STATUS_OK) return PGRES_POLLING_FAILED; - if (conn->gssdelegation && pg_strcasecmp(conn->gssdelegation, "enable") == 0) + if (conn->gssdelegation && conn->gssdelegation[0] == '1') { /* Acquire credentials if possible */ if (conn->gcred == GSS_C_NO_CREDENTIAL) diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index f1854f9919c..0045f83cbfd 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -404,7 +404,7 @@ struct pg_conn char *krbsrvname; /* Kerberos service name */ char *gsslib; /* What GSS library to use ("gssapi" or * "sspi") */ - char *gssdelegation; /* Try to delegate GSS credentials? */ + char *gssdelegation; /* Try to delegate GSS credentials? (0 or 1) */ char *ssl_min_protocol_version; /* minimum TLS protocol version */ char *ssl_max_protocol_version; /* maximum TLS protocol version */ char *target_session_attrs; /* desired session properties */ |
