[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