Index: doc/src/sgml/runtime.sgml =================================================================== RCS file: postgresql-8.0.0rc3/doc/src/sgml/runtime.sgml,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- doc/src/sgml/runtime.sgml 26 Dec 2004 23:06:56 -0000 1.1.1.1 +++ doc/src/sgml/runtime.sgml 3 Jan 2005 23:18:44 -0000 1.2 @@ -952,6 +952,20 @@ + + krb_server_hostname (string) + + krb_server_hostname configuration parameter + + + + Sets the hostname that service tickets will be obtained against + (defaults to the hostname of the postgresql server) + for details. + + + + db_user_namespace (boolean) Index: src/backend/libpq/auth.c =================================================================== RCS file: postgresql-8.0.0rc3/src/backend/libpq/auth.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- src/backend/libpq/auth.c 31 Dec 2004 21:59:50 -0000 1.1.1.1 +++ src/backend/libpq/auth.c 3 Jan 2005 14:59:44 -0000 1.2 @@ -41,6 +41,7 @@ static int recv_and_check_password_packet(Port *port); char *pg_krb_server_keyfile; +char *pg_krb_server_hostname = NULL; #ifdef USE_PAM #ifdef HAVE_PAM_PAM_APPL_H @@ -189,6 +190,12 @@ pg_krb5_init(void) { krb5_error_code retval; + char *svr_name; + + if(pg_krb_server_hostname) + svr_name = pg_krb_server_hostname; + else + svr_name = PG_KRB_SRVNAM; if (pg_krb5_initialised) return STATUS_OK; @@ -215,9 +222,10 @@ return STATUS_ERROR; } - retval = krb5_sname_to_principal(pg_krb5_context, NULL, PG_KRB_SRVNAM, - KRB5_NT_SRV_HST, &pg_krb5_server); - if (retval) + retval = krb5_sname_to_principal(pg_krb5_context, + pg_krb_server_hostname, PG_KRB_SRVNAM, + KRB5_NT_SRV_HST, &pg_krb5_server); + if (retval) { ereport(LOG, (errmsg("Kerberos sname_to_principal(\"%s\") returned error %d", @@ -254,6 +262,12 @@ krb5_auth_context auth_context = NULL; krb5_ticket *ticket; char *kusername; + char *svr_name; + + if(pg_krb_server_hostname) + svr_name = pg_krb_server_hostname; + else + svr_name = PG_KRB_SRVNAM; ret = pg_krb5_init(); if (ret != STATUS_OK) Index: src/backend/utils/misc/guc.c =================================================================== RCS file: postgresql-8.0.0rc3/src/backend/utils/misc/guc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- src/backend/utils/misc/guc.c 20 Dec 2004 18:15:07 -0000 1.1.1.1 +++ src/backend/utils/misc/guc.c 3 Jan 2005 14:59:45 -0000 1.2 @@ -1546,6 +1546,15 @@ }, { + {"krb_server_hostname", PGC_POSTMASTER, CONN_AUTH_SECURITY, + gettext_noop("Sets the hostname of the Kerberos server."), + NULL + }, + &pg_krb_server_hostname, + NULL, NULL, NULL + }, + + { {"rendezvous_name", PGC_POSTMASTER, CONN_AUTH_SETTINGS, gettext_noop("Sets the Rendezvous broadcast service name."), NULL Index: src/bin/psql/tab-complete.c =================================================================== RCS file: postgresql-8.0.0rc3/src/bin/psql/tab-complete.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- src/bin/psql/tab-complete.c 24 Dec 2004 15:42:05 -0000 1.1.1.1 +++ src/bin/psql/tab-complete.c 3 Jan 2005 14:59:46 -0000 1.2 @@ -552,6 +552,7 @@ "geqo_threshold", "join_collapse_limit", "krb_server_keyfile", + "krb_server_hostname", "lc_messages", "lc_monetary", "lc_numeric", Index: src/include/libpq/auth.h =================================================================== RCS file: postgresql-8.0.0rc3/src/include/libpq/auth.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- src/include/libpq/auth.h 31 Dec 2004 22:03:32 -0000 1.1.1.1 +++ src/include/libpq/auth.h 3 Jan 2005 14:59:47 -0000 1.2 @@ -27,5 +27,6 @@ #define PG_KRB5_VERSION "PGVER5.1" extern char *pg_krb_server_keyfile; +extern char *pg_krb_server_hostname; #endif /* AUTH_H */