diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2000-08-25 10:00:35 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2000-08-25 10:00:35 +0000 |
commit | 996832caeec19ed43fdc36db33ae7ee48e348662 (patch) | |
tree | 737895a8d87f1c4d289dba6db7c12a5d43b02489 /src/backend/libpq/auth.c | |
parent | 69cf335687eb47e80e56aee7804bf0c2c3facec8 (diff) | |
download | postgresql-996832caeec19ed43fdc36db33ae7ee48e348662.tar.gz postgresql-996832caeec19ed43fdc36db33ae7ee48e348662.zip |
Make the location of the Kerberos server key file run time configurable
(rather than compile time). For libpq, even when Kerberos support is
compiled in, the default user name should still fall back to geteuid()
if it can't be determined via the Kerberos system.
A couple of fixes for string type configuration parameters, now that there
is one.
Diffstat (limited to 'src/backend/libpq/auth.c')
-rw-r--r-- | src/backend/libpq/auth.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index 4f0dc6a31a0..257ff7d1091 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.48 2000/07/04 16:31:53 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.49 2000/08/25 10:00:30 petere Exp $ * *------------------------------------------------------------------------- */ @@ -51,6 +51,9 @@ static int map_old_to_new(Port *port, UserAuth old, int status); static void auth_failed(Port *port); +char * pg_krb_server_keyfile; + + #ifdef KRB4 /*---------------------------------------------------------------- * MIT Kerberos authentication system - protocol version 4 @@ -89,7 +92,7 @@ pg_krb4_recvauth(Port *port) &port->raddr.in, &port->laddr.in, &auth_data, - PG_KRB_SRVTAB, + pg_krb_server_keyfile, key_sched, version); if (status != KSUCCESS) @@ -197,13 +200,13 @@ pg_krb5_init(void) return STATUS_ERROR; } - retval = krb5_kt_resolve(pg_krb5_context, PG_KRB_SRVTAB, &pg_krb5_keytab); + retval = krb5_kt_resolve(pg_krb5_context, pg_krb_server_keyfile, &pg_krb5_keytab); if (retval) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, "pg_krb5_init: krb5_kt_resolve returned" " Kerberos error %d\n", retval); com_err("postgres", retval, "while resolving keytab file %s", - PG_KRB_SRVTAB); + pg_krb_server_keyfile); krb5_free_context(pg_krb5_context); return STATUS_ERROR; } @@ -216,7 +219,7 @@ pg_krb5_init(void) " Kerberos error %d\n", retval); com_err("postgres", retval, "while getting server principal for service %s", - PG_KRB_SRVTAB); + pg_krb_server_keyfile); krb5_kt_close(pg_krb5_context, pg_krb5_keytab); krb5_free_context(pg_krb5_context); return STATUS_ERROR; |