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
+	(the default is any accept any service principal in the keytab)
+         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
diff -u -r1.1.1.1 auth.c
--- src/backend/libpq/auth.c	31 Dec 2004 21:59:50 -0000	1.1.1.1
+++ src/backend/libpq/auth.c	4 Jan 2005 12:09:45 -0000
@@ -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
@@ -215,19 +216,24 @@
 		return STATUS_ERROR;
 	}
 
-	retval = krb5_sname_to_principal(pg_krb5_context, NULL, PG_KRB_SRVNAM,
-									 KRB5_NT_SRV_HST, &pg_krb5_server);
-	if (retval)
-	{
-		ereport(LOG,
-		 (errmsg("Kerberos sname_to_principal(\"%s\") returned error %d",
-				 PG_KRB_SRVNAM, retval)));
-		com_err("postgres", retval,
-				"while getting server principal for service \"%s\"",
-				PG_KRB_SRVNAM);
-		krb5_kt_close(pg_krb5_context, pg_krb5_keytab);
-		krb5_free_context(pg_krb5_context);
-		return STATUS_ERROR;
+	if(pg_krb_server_hostname) {
+		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",
+				 	PG_KRB_SRVNAM, retval)));
+			com_err("postgres", retval,
+					"while getting server principal for service \"%s\"",
+					PG_KRB_SRVNAM);
+			krb5_kt_close(pg_krb5_context, pg_krb5_keytab);
+			krb5_free_context(pg_krb5_context);
+			return STATUS_ERROR;
+		}
+	} else {
+		pg_krb5_server = NULL;
 	}
 
 	pg_krb5_initialised = 1;
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 */