[Fedora-directory-commits] ldapserver/ldap/admin/src/scripts DSCreate.pm.in, 1.1, 1.2 Inf.pm, 1.3, 1.4 SetupDialogs.pm.in, 1.1, 1.2 Util.pm.in, 1.8, 1.9
Richard Allen Megginson (rmeggins)
fedora-directory-commits at redhat.com
Fri Jul 13 19:51:50 UTC 2007
Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/admin/src/scripts
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15733/ldapserver/ldap/admin/src/scripts
Modified Files:
DSCreate.pm.in Inf.pm SetupDialogs.pm.in Util.pm.in
Log Message:
Resolves: bug 248145
Bug Description: Replace ds_newinst binary with perl script
Reviewed by: nhosoi (Thanks!)
Fix Description: 1) Inf needs to be able to read the .inf file from stdin. This is what ds_newinst.pl does currently.
2) getlogin seems not to work in all cases, so add a more robust replacement.
Platforms tested: RHEL4, FC6
Flag Day: no
Doc impact: no
Index: DSCreate.pm.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/DSCreate.pm.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DSCreate.pm.in 13 Jul 2007 18:35:32 -0000 1.1
+++ DSCreate.pm.in 13 Jul 2007 19:51:48 -0000 1.2
@@ -596,7 +596,7 @@
if (!$inf->{General}->{SuiteSpotUserID}) {
if ($> != 0) { # if not root, use the user's uid
- $inf->{General}->{SuiteSpotUserID} = getlogin;
+ $inf->{General}->{SuiteSpotUserID} = getLogin;
}
# otherwise, the uid must be specified
}
Index: Inf.pm
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/Inf.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Inf.pm 20 Jun 2007 14:40:24 -0000 1.3
+++ Inf.pm 13 Jul 2007 19:51:48 -0000 1.4
@@ -77,8 +77,14 @@
my $incontinuation = 0;
my $curkey;
- open INF, $filename or die "Error: could not open inf file $filename: $!";
- while (<INF>) {
+ my $inffh;
+ if ($filename eq "-") {
+ $inffh = \*STDIN;
+ } else {
+ open INF, $filename or die "Error: could not open inf file $filename: $!";
+ $inffh = \*INF;
+ }
+ while (<$inffh>) {
my $iscontinuation;
chop; # trim trailing newline
if (/^\s*$/) { # skip blank/empty lines
@@ -107,7 +113,9 @@
$incontinuation = 0;
}
}
- close INF;
+ if ($inffh ne \*STDIN) {
+ close $inffh;
+ }
}
sub section {
@@ -149,6 +157,8 @@
$filename = $self->{filename};
}
+ return if ($filename eq "-");
+
open INF, ">$filename" or die "Error: could not write inf file $filename: $!";
# write General section first
$self->writeSection('General', \*INF);
Index: SetupDialogs.pm.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/SetupDialogs.pm.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SetupDialogs.pm.in 19 Jun 2007 18:24:57 -0000 1.1
+++ SetupDialogs.pm.in 13 Jul 2007 19:51:48 -0000 1.2
@@ -44,6 +44,7 @@
use Setup;
use Dialog;
use Net::Domain qw(hostfqdn);
+use Util;
my $welcome = new DialogYesNo (
$EXPRESS,
@@ -136,7 +137,7 @@
}
}
if ($> != 0) { # if not root, the user must be our uid
- my $username = getlogin;
+ my $username = getLogin;
if ($strans ne $username) {
$self->{manager}->alert("dialog_ssuser_must_be_same", $username);
return $DialogManager::SAME;
@@ -218,7 +219,7 @@
if ($> == 0) { # if root, use the default user
$username = "@defaultuser@";
} else { # if not root, use the user's uid
- $username = getlogin;
+ $username = getLogin;
}
}
return $username;
Index: Util.pm.in
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/scripts/Util.pm.in,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Util.pm.in 13 Jul 2007 18:35:32 -0000 1.8
+++ Util.pm.in 13 Jul 2007 19:51:48 -0000 1.9
@@ -48,11 +48,11 @@
@EXPORT = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries
process_maptbl check_and_add_entry getMappedEntries
getHashedPassword debug createInfFromConfig
- isValidServerID isValidUser makePaths);
+ isValidServerID isValidUser makePaths getLogin);
@EXPORT_OK = qw(portAvailable getAvailablePort isValidDN addSuffix getMappedEntries
process_maptbl check_and_add_entry getMappedEntries
getHashedPassword debug createInfFromConfig
- isValidServerID isValidUser makePaths);
+ isValidServerID isValidUser makePaths getLogin);
use strict;
@@ -111,6 +111,10 @@
return $servid =~ /^[$validchars]+$/o;
}
+sub getLogin {
+ return getlogin || (getpwuid($>))[0] || $ENV{USER} || die "Error: could not determine the current user ID: $!";
+}
+
sub isValidUser {
my $user = shift;
# convert numeric uid to string
@@ -122,7 +126,7 @@
}
}
if ($> != 0) { # if not root, the user must be our uid
- my $username = getlogin;
+ my $username = getLogin;
if ($strans ne $username) {
return ("dialog_ssuser_must_be_same", $username);
}
@@ -799,8 +803,8 @@
print $outfh "start_server= 0\n";
my $suffix;
- my $ent = $conn->search("cn=ldbm database,cn=plugins,cn=config",
- "one", "(objectclass=*)");
+ $ent = $conn->search("cn=ldbm database,cn=plugins,cn=config",
+ "one", "(objectclass=*)");
if (!$ent) {
push @{$errs}, "error_opening_dseldif", $fname, $!;
close $outfh;
More information about the Fedora-directory-commits
mailing list