Index: backend/libpq/auth.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/libpq/auth.c,v
retrieving revision 1.127
diff -c -r1.127 auth.c
*** backend/libpq/auth.c	25 Jul 2005 04:52:31 -0000	1.127
--- backend/libpq/auth.c	8 Oct 2005 14:52:26 -0000
***************
*** 145,169 ****
  		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;
  	return STATUS_OK;
--- 145,168 ----
  		return STATUS_ERROR;
  	}
  
! 	/* If no hostname is specified, pg_krb_server_hostname is already
! 	   NULL. If it's set to blank, force it to NULL. */
! 	retval = krb5_sname_to_principal(pg_krb5_context, 
! 				(pg_krb_server_hostname && pg_krb_server_hostname[0]=='\0')?NULL: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;
! 	}
  
  	pg_krb5_initialised = 1;
  	return STATUS_OK;
***************
*** 194,200 ****
  		return ret;
  
  	retval = krb5_recvauth(pg_krb5_context, &auth_context,
! 						   (krb5_pointer) & port->sock, "postgres",
  						   pg_krb5_server, 0, pg_krb5_keytab, &ticket);
  	if (retval)
  	{
--- 193,199 ----
  		return ret;
  
  	retval = krb5_recvauth(pg_krb5_context, &auth_context,
! 						   (krb5_pointer) & port->sock, pg_krb_srvnam,
  						   pg_krb5_server, 0, pg_krb5_keytab, &ticket);
  	if (retval)
  	{
Index: interfaces/libpq/fe-auth.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v
retrieving revision 1.103
diff -c -r1.103 fe-auth.c
*** interfaces/libpq/fe-auth.c	30 Jun 2005 01:59:20 -0000	1.103
--- interfaces/libpq/fe-auth.c	8 Oct 2005 14:57:47 -0000
***************
*** 280,286 ****
  	}
  
  	retval = krb5_sendauth(pg_krb5_context, &auth_context,
! 						   (krb5_pointer) & sock, "postgres",
  						   pg_krb5_client, server,
  						   AP_OPTS_MUTUAL_REQUIRED,
  						   NULL, 0,		/* no creds, use ccache instead */
--- 280,286 ----
  	}
  
  	retval = krb5_sendauth(pg_krb5_context, &auth_context,
! 						   (krb5_pointer) & sock, servicename, 
  						   pg_krb5_client, server,
  						   AP_OPTS_MUTUAL_REQUIRED,
  						   NULL, 0,		/* no creds, use ccache instead */
