[Dbconfig-common-changes] [dbconfig-common] r273 - in trunk: debian internal

Sean Finney seanius at costa.debian.org
Mon Jul 31 08:12:03 CEST 2006


Author: seanius
Date: 2006-07-31 06:12:02 +0000 (Mon, 31 Jul 2006)
New Revision: 273

Modified:
   trunk/debian/changelog
   trunk/internal/pgsql
Log:
fixes in postgres authentication method detection.


Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2006-07-29 16:29:00 UTC (rev 272)
+++ trunk/debian/changelog	2006-07-31 06:12:02 UTC (rev 273)
@@ -13,6 +13,7 @@
     closes: #380353
   * updated danish debconf translations from Claus Hindsgaul, thanks.
     closes: #378769
+  * fixed/improved pgsql authentication method autodetection.
 
   [ Bart Cornelis (cobaco) ]
   * Updated Dutch translation

Modified: trunk/internal/pgsql
===================================================================
--- trunk/internal/pgsql	2006-07-29 16:29:00 UTC (rev 272)
+++ trunk/internal/pgsql	2006-07-31 06:12:02 UTC (rev 273)
@@ -64,6 +64,26 @@
 	fi
 }
 
+_dbc_psql_cmd_args(){
+	local extra remoteuser
+
+	# if a dbserver is specified, use it
+	if [ "$dbc_dbserver" ]; then
+		extra="-h '$dbc_dbserver'"; 
+	# but if they specify a password, we should add the host explictly too
+ 	elif [ "$_dbc_asuser" ] && [ "$dbc_dbpass" ]; then 
+		extra="-h localhost"; 
+	elif [ "$dbc_dbadmpass" ]; then
+		extra="-h localhost"; 
+	fi
+	# add port settings if nonempty
+	if [ "$dbc_dbport" ]; then extra="$extra -p '$dbc_dbport'"; fi
+	# determine the database user name
+	extra="$extra -U '`_dbc_psql_remote_username`'"
+
+	echo $extra
+}
+
 _dbc_psql_cmd_cleanup(){
 	if [ "$_dbc_pgsql_tmpdir" -a -d "$_dbc_pgsql_tmpdir" ]; then
 		rm -f ${_dbc_pgsql_tmpdir}/.pgpass
@@ -72,16 +92,14 @@
 }
 
 _dbc_psql(){
-	local extra retval PGSSLMODE localuser remoteuser
+	local extra retval PGSSLMODE localuser
 	localuser=`_dbc_psql_local_username`
-	remoteuser=`_dbc_psql_remote_username`
 	PGSSLMODE="prefer"
 	retval=0
 	_dbc_psql_cmd_setup
-	extra="$extra -U '$remoteuser'"
 	if [ "$dbc_ssl" ]; then PGSSLMODE="require"; fi
-	if [ "$dbc_dbserver" ]; then extra="$extra -h '$dbc_dbserver'"; fi
-	if [ "$dbc_dbport" ]; then extra="$extra -p '$dbc_dbport'"; fi
+	extra=`_dbc_psql_cmd_args`
+	dbc_debug "su -s /bin/sh $localuser -c \"env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' psql --set \"ON_ERROR_STOP=1\" -q $extra $*\" 2>&1"
 	dbc_error=`su -s /bin/sh $localuser -c "env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' psql --set "ON_ERROR_STOP=1" -q $extra $*" 2>&1` || retval=$?
 	_dbc_psql_cmd_cleanup
 	return $retval
@@ -94,9 +112,7 @@
 	retval=0
 	_dbc_psql_cmd_setup
 	if [ "$dbc_ssl" ]; then PGSSLMODE="require"; fi
-	if [ "$dbc_dbserver" ]; then extra="$extra -h '$dbc_dbserver'"; fi
-	if [ "$dbc_dbport" ]; then extra="$extra -p '$dbc_dbport'"; fi
-	if [ "$dbc_dbadmin" ]; then extra="$extra -U '$dbc_dbadmin'"; fi
+	extra=`_dbc_psql_cmd_args`
 	if [ "$dbc_pgsql_createdb_encoding" ]; then 
 		extrasql=" WITH ENCODING = '$dbc_pgsql_createdb_encoding'"; 
 	fi
@@ -114,9 +130,8 @@
 	retval=0
 	_dbc_psql_cmd_setup
 	if [ "$dbc_ssl" ]; then PGSSLMODE="require"; fi
-	if [ "$dbc_dbserver" ]; then extra="$extra -h '$dbc_dbserver'"; fi
-	if [ "$dbc_dbport" ]; then extra="$extra -p '$dbc_dbport'"; fi
-	if [ "$dbc_dbadmin" ]; then extra="$extra -U '$dbc_dbadmin'"; fi
+	extra=`_dbc_psql_cmd_args`
+	dbc_debug "su -s /bin/sh $localuser -c \"env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' dropdb -q $extra $*\" 2>&1"
 	dbc_error=`su -s /bin/sh $localuser -c "env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' dropdb -q $extra $*" 2>&1` || retval=$?
 	_dbc_psql_cmd_cleanup
 	return $retval
@@ -133,9 +148,7 @@
 	retval=0
 	_dbc_psql_cmd_setup
 	if [ "$dbc_ssl" ]; then PGSSLMODE="require"; fi
-	if [ "$dbc_dbserver" ]; then extra="$extra -h '$dbc_dbserver'"; fi
-	if [ "$dbc_dbport" ]; then extra="$extra -p '$dbc_dbport'"; fi
-	if [ "$dbc_dbadmin" ]; then extra="$extra -U '$dbc_dbadmin'"; fi
+	extra=`_dbc_psql_cmd_args`
 	dbc_dbname="template1"
 	_dbc_pgsql_exec_command "CREATE USER \"$dbc_dbuser\" WITH PASSWORD '$dbc_dbpass'" || retval=$?
 	_dbc_psql_cmd_cleanup
@@ -149,9 +162,8 @@
 	retval=0
 	_dbc_psql_cmd_setup
 	if [ "$dbc_ssl" ]; then PGSSLMODE="require"; fi
-	if [ "$dbc_dbserver" ]; then extra="$extra -h '$dbc_dbserver'"; fi
-	if [ "$dbc_dbport" ]; then extra="$extra -p '$dbc_dbport'"; fi
-	if [ "$dbc_dbadmin" ]; then extra="$extra -U '$dbc_dbadmin'"; fi
+	extra=`_dbc_psql_cmd_args`
+	dbc_debug "su -s /bin/sh $localuser -c \"env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' dropuser -q $extra $*\" 2>&1"
 	dbc_error=`su -s /bin/sh $localuser -c "env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' dropuser -q $extra $*" 2>&1` || retval=$?
 	_dbc_psql_cmd_cleanup
 	return $retval
@@ -167,9 +179,8 @@
 	retval=0
 	_dbc_psql_cmd_setup
 	if [ "$dbc_ssl" ]; then PGSSLMODE="require"; fi
-	if [ "$dbc_dbserver" ]; then extra="$extra -h '$dbc_dbserver'"; fi
-	if [ "$dbc_dbport" ]; then extra="$extra -p '$dbc_dbport'"; fi
-	if [ "$dbc_dbadmin" ]; then extra="$extra -U '$dbc_dbadmin'"; fi
+	extra=`_dbc_psql_cmd_args`
+	dbc_debug "su -s /bin/sh $localuser -c \"env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' pg_dump $extra $dbc_dbname\" 2>&1"
 	dbc_error=`su -s /bin/sh $localuser -c "env HOME='$_dbc_pgsql_tmpdir' PGPASSFILE='$_dbc_pgsql_tmpdir/.pgpass' PGSSLMODE='$PGSSLMODE' pg_dump $extra $dbc_dbname" 2>&1` || retval=$?
 	_dbc_psql_cmd_cleanup
 	return $retval
@@ -180,7 +191,6 @@
 ##
 _dbc_pgsql_check_connect(){
 	local constat extra _dbc_asuser
-	if [ "$dbc_dbadmin" ]; then extra="-U '$dbc_dbadmin'"; fi
 	constat="bad"
 	if ! _dbc_psql $extra template1 < /dev/null; then
 		dbc_logline "unable to connect to postgresql server"
@@ -232,7 +242,6 @@
 _dbc_pgsql_check_database(){
 	local dbc_dbname _dbc_asuser extra
 	dbc_dbname=$1
-	if [ "$dbc_dbadmin" ]; then extra="-U '$dbc_dbadmin'"; fi
 	_dbc_psql $extra $dbc_dbname </dev/null 2>/dev/null
 	return $?
 }
@@ -246,7 +255,6 @@
 dbc_pgsql_check_user(){
 	local dbc_dbname l_retval _dbc_asuser extra
 	dbc_dbname="template1"
-	if [ "$dbc_dbadmin" ]; then extra="-U '$dbc_dbadmin'"; fi
 	_dbc_pgsql_exec_command "ALTER USER \"$dbc_dbuser\""
 	l_retval=$?
 	return $l_retval




More information about the Dbconfig-common-changes mailing list