summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/drakTermServ
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/drakTermServ')
-rwxr-xr-xperl-install/standalone/drakTermServ449
1 files changed, 212 insertions, 237 deletions
diff --git a/perl-install/standalone/drakTermServ b/perl-install/standalone/drakTermServ
index c97193c03..e840fd094 100755
--- a/perl-install/standalone/drakTermServ
+++ b/perl-install/standalone/drakTermServ
@@ -54,6 +54,7 @@ $conf{ALLOW_THIN} = 0;
my $nfs_subnet;
my $nfs_mask;
my $cfg_dir = "/etc/drakxtools/draktermserv/";
+-e $cfg_dir or mkdir_p($cfg_dir);
my $cfg_file = $cfg_dir . "draktermserv.conf";
my $interface = get_net_interface();
my $server_ip = get_ip_from_sys();
@@ -61,6 +62,7 @@ my $changes_made = 0;
my $client_cfg = "/etc/dhcpd.conf.etherboot.clients";
my $tftpboot = "/var/lib/tftpboot";
my @kernels = bootloader::installed_vmlinuz();
+my $cmd_line = 1;
#- make sure terminal server and friends are installed
my $ts = system("rpm -q terminal-server > /dev/null");
@@ -78,67 +80,57 @@ if ($ts == 256) {
}
if ("@ARGV" =~ /--enable/) {
- my $cmd_line = 1;
- enable_ts($cmd_line);
+ enable_ts();
exit(0);
}
if ("@ARGV" =~ /--disable/) {
- my $cmd_line = 1;
- disable_ts($cmd_line);
+ disable_ts();
exit(0);
}
if ("@ARGV" =~ /--restart/) {
- my $cmd_line = 1;
- stop_ts($cmd_line);
- start_ts($cmd_line);
+ stop_ts();
+ start_ts();
exit(0);
}
if ("@ARGV" =~ /--start/) {
- my $cmd_line = 1;
- start_ts($cmd_line);
+ start_ts();
exit(0);
}
if ("@ARGV" =~ /--stop/) {
- my $cmd_line = 1;
- stop_ts($cmd_line);
+ stop_ts();
exit(0);
}
if ("@ARGV" =~ /--adduser/) {
die N("%s: %s requires a username...\n", $0, $ARGV[0]) if $#ARGV < 1;
- my $cmd_line = 1;
- adduser($cmd_line, $ARGV[1]);
+ adduser($ARGV[1]);
exit(0);
}
if ("@ARGV" =~ /--deluser/) {
die N("%s: %s requires a username...\n", $0, $ARGV[0]) if $#ARGV < 1;
- my $cmd_line = 1;
- deluser($cmd_line, $ARGV[1]);
+ deluser($ARGV[1]);
exit(0);
}
if ("@ARGV" =~ /--syncusers/) {
- my $cmd_line = 1;
- sync_users($cmd_line);
+ sync_users();
exit(0);
}
if ("@ARGV" =~ /--addclient/) {
die N("%s: %s requires hostname, MAC address, IP, nbi-image, 0/1 for THIN_CLIENT, 0/1 for Local Config...\n", $0, $ARGV[0]) if $#ARGV < 6;
- my $cmd_line = 1;
- addclient($cmd_line, @ARGV[1..6]);
+ addclient(@ARGV[1..6]);
exit(0);
}
if ("@ARGV" =~ /--delclient/) {
die N("%s: %s requires hostname...\n", $0, $ARGV[0]) if $#ARGV < 1;
- my $cmd_line = 1;
- delclient($cmd_line, $ARGV[1]);
+ delclient($ARGV[1]);
exit(0);
}
@@ -199,27 +191,15 @@ x:5:respawn:/usr/X11R6/bin/X -ac -query $server_ip\n";
output_p($inittab_file, $inittab);
}
-sub cursor_wait() {
- # turn the cursor to a watch
- $window1->{rwindow}->window->set_cursor(new Gtk2::Gdk::Cursor("GDK_WATCH"));
- gtkflush();
-}
-
-sub cursor_norm() {
- # restore normal cursor
- $window1->{rwindow}->window->set_cursor(new Gtk2::Gdk::Cursor("GDK_LEFT_PTR"));
- gtkflush();
-}
-
sub display_error {
my ($message) = @_;
my $error_box;
destroy_widget();
gtkpack($status_box,
- $error_box = gtkpack_(new Gtk2::VBox(0,0),
- 1, new Gtk2::Label($message),
- 0, gtkadd(gtkset_layout(new Gtk2::HButtonBox, 'spread'),
- gtksignal_connect(new Gtk2::Button(N("OK")), clicked => sub {
+ $error_box = gtkpack_(Gtk2::VBox->new(0,0),
+ 1, Gtk2::Label->new($message),
+ 0, gtkadd(gtkset_layout(Gtk2::HButtonBox->new, 'spread'),
+ gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => sub {
destroy_widget();
}),
),
@@ -229,6 +209,7 @@ sub display_error {
}
sub interactive_mode() {
+ $cmd_line = 0;
$in = 'interactive'->vnew;
$::Wizard_title = N("Terminal Server Configuration");
$::Wizard_pix_up = "ic82-network-40.png";
@@ -238,75 +219,75 @@ sub interactive_mode() {
$window1->{rwindow}->set_border_width(5);
gtkadd($window1->{window},
- gtkpack_(gtkset_size_request(new Gtk2::VBox(0,2), 620, 400),
- 1, gtkpack_(new Gtk2::HBox(0,2),
- 1, gtkpack_(new Gtk2::VBox(0,2),
- 1, gtkpack($status_box = new Gtk2::VBox(0,5),
- $main_box = new Gtk2::VBox(0,10),
+ gtkpack_(gtkset_size_request(Gtk2::VBox->new(0,2), 620, 400),
+ 1, gtkpack_(Gtk2::HBox->new(0,2),
+ 1, gtkpack_(Gtk2::VBox->new(0,2),
+ 1, gtkpack($status_box = Gtk2::VBox->new(0,5),
+ $main_box = Gtk2::VBox->new(0,10),
),
- 0, $wizard_buttons = gtkpack_(new Gtk2::HBox(1,2)),
- 0, gtkpack_($main_buttons = new Gtk2::VBox(0,2),
- 1, gtkpack_(new Gtk2::HBox(1,2),
- 1, gtkpack_(new Gtk2::VBox(1,0),
- 1, gtksignal_connect(new Gtk2::Button(N("Enable Server")), clicked => sub {
+ 0, $wizard_buttons = gtkpack_(Gtk2::HBox->new(1,2)),
+ 0, gtkpack_($main_buttons = Gtk2::VBox->new(0,2),
+ 1, gtkpack_(Gtk2::HBox->new(1,2),
+ 1, gtkpack_(Gtk2::VBox->new(1,0),
+ 1, gtksignal_connect(Gtk2::Button->new(N("Enable Server")), clicked => sub {
destroy_widget();
- cursor_wait();
+ gtkset_mousecursor_wait();
enable_ts();
- cursor_norm();
+ gtkset_mousecursor_normal();
}),
- 1, gtksignal_connect(new Gtk2::Button(N("Disable Server")), clicked => sub {
+ 1, gtksignal_connect(Gtk2::Button->new(N("Disable Server")), clicked => sub {
destroy_widget();
- cursor_wait();
+ gtkset_mousecursor_wait();
disable_ts();
- cursor_norm();
+ gtkset_mousecursor_normal();
}),
),
- 1, gtkpack_(new Gtk2::VBox(1,0),
- 1, gtksignal_connect(new Gtk2::Button(N("Start Server")), clicked => sub {
+ 1, gtkpack_(Gtk2::VBox->new(1,0),
+ 1, gtksignal_connect(Gtk2::Button->new(N("Start Server")), clicked => sub {
destroy_widget();
- cursor_wait();
+ gtkset_mousecursor_wait();
start_ts();
- cursor_norm();
+ gtkset_mousecursor_normal();
}),
- 1, gtksignal_connect(new Gtk2::Button(N("Stop Server")), clicked => sub {
+ 1, gtksignal_connect(Gtk2::Button->new(N("Stop Server")), clicked => sub {
destroy_widget();
- cursor_wait();
+ gtkset_mousecursor_wait();
stop_ts();
- cursor_norm();
+ gtkset_mousecursor_normal();
}),
),
- 1, gtkpack_(new Gtk2::VBox(1,0),
- 1, gtksignal_connect(new Gtk2::Button(N("Etherboot Floppy/ISO")), clicked => sub {
+ 1, gtkpack_(Gtk2::VBox->new(1,0),
+ 1, gtksignal_connect(Gtk2::Button->new(N("Etherboot Floppy/ISO")), clicked => sub {
destroy_widget();
make_boot();
}),
- 1, gtksignal_connect(new Gtk2::Button(N("Net Boot Images")), clicked => sub {
+ 1, gtksignal_connect(Gtk2::Button->new(N("Net Boot Images")), clicked => sub {
destroy_widget();
make_nbi();
}),
),
- 1, gtkpack_(new Gtk2::VBox(1,0),
- 1, gtksignal_connect(new Gtk2::Button(N("Add/Del Users")), clicked => sub {
+ 1, gtkpack_(Gtk2::VBox->new(1,0),
+ 1, gtksignal_connect(Gtk2::Button->new(N("Add/Del Users")), clicked => sub {
destroy_widget();
maintain_users();
}),
- 1, gtksignal_connect(new Gtk2::Button(N("Add/Del Clients")), clicked => sub {
+ 1, gtksignal_connect(Gtk2::Button->new(N("Add/Del Clients")), clicked => sub {
destroy_widget();
maintain_clients()
}),
),
),
- 0, gtkpack_(new Gtk2::HBox,
- 0, gtksignal_connect(new Gtk2::Button(N("Help")),clicked => sub {
+ 0, gtkpack_(Gtk2::HBox->new,
+ 0, gtksignal_connect(Gtk2::Button->new(N("Help")),clicked => sub {
destroy_widget();
help();
}),
- 0, gtksignal_connect(new Gtk2::Button(N("First Time Wizard")), clicked => sub {
+ 0, gtksignal_connect(Gtk2::Button->new(N("First Time Wizard")), clicked => sub {
destroy_widget();
start_wizard();
}),
1, "",
- 0, gtksignal_connect(new Gtk2::Button(N("Close")), clicked => sub {
+ 0, gtksignal_connect(Gtk2::Button->new(N("Close")), clicked => sub {
write_conf_file();
restart_server() if $changes_made == 1;
Gtk2->main_quit;
@@ -325,8 +306,7 @@ sub interactive_mode() {
ugtk2->exit(0);
}
-sub check_gdm {
- my ($cmd_line) = @_;
+sub check_gdm() {
#- gdm now needs gdm user in /etc/passwd$$CLIENT$$
my %desktop = getVarsFromSh("/etc/sysconfig/desktop");
my $dm = $desktop{DISPLAYMANAGER};
@@ -335,7 +315,7 @@ sub check_gdm {
if ($dm =~ /GNOME|GDM/ && !$gdm) {
$in->ask_warn(N("Warning"), N("%s defined as dm, adding gdm user to /etc/passwd\$\$CLIENT\$\$", $dm)) if !$cmd_line;
warn(N("%s defined as dm, adding gdm user to /etc/passwd\$\$CLIENT\$\$", $dm)) if $cmd_line;
- adduser($cmd_line, "gdm");
+ adduser("gdm");
}
}
@@ -343,7 +323,7 @@ sub start_wizard() {
text_view(N("
This wizard routine will:
1) Ask you to select either 'thin' or 'fat' clients.
- 2) Setup dhcp.
+ 2) Setup DHCP.
After doing these steps, the wizard will:
@@ -369,7 +349,7 @@ sub wizard_step {
my ($do_step, $step) = @_;
&$do_step();
gtkadd($wizard_buttons,
- gtksignal_connect($previous_button = new Gtk2::Button(N("Previous")), clicked => sub {
+ gtksignal_connect($previous_button = Gtk2::Button->new(N("Previous")), clicked => sub {
clear_buttons();
if ($step == 1) {
exit_wizard();
@@ -385,12 +365,12 @@ sub wizard_step {
})
);
gtkadd($wizard_buttons,
- gtksignal_connect($cancel_button = new Gtk2::Button(N("Cancel Wizard")), clicked => sub {
+ gtksignal_connect($cancel_button = Gtk2::Button->new(N("Cancel Wizard")), clicked => sub {
exit_wizard();
})
);
gtkadd($wizard_buttons,
- gtksignal_connect($next_button = new Gtk2::Button(N("Next")), clicked => sub {
+ gtksignal_connect($next_button = Gtk2::Button->new(N("Next")), clicked => sub {
clear_buttons();
wizard_step(\&dhcpd_config, 2) if $step == 1;
if ($step == 2) {
@@ -425,13 +405,13 @@ sub clear_buttons() {
}
sub client_type() {
- my $check_allow_thin = new Gtk2::CheckButton(N("Use thin clients."));
+ my $check_allow_thin = Gtk2::CheckButton->new(N("Use thin clients."));
$check_allow_thin->set_active($conf{ALLOW_THIN});
text_view(N("Please select default client type.
'Thin' clients run everything off the server's CPU/RAM, using the client display.
'Fat' clients use their own CPU/RAM but the server's filesystem."), "wizard");
gtkpack_($$central_widget,
- 0, gtkpack_(new Gtk2::HBox(1,0),
+ 0, gtkpack_(Gtk2::HBox->new(1,0),
1, Gtk2::VBox->new,
0, gtksignal_connect($check_allow_thin, clicked => sub {
invbool \$conf{ALLOW_THIN};
@@ -439,24 +419,23 @@ sub client_type() {
}),
0, Gtk2::VBox->new,
),
- 0, gtksignal_connect(new Gtk2::Button(N("Sync client X keyboard settings with server.")),
+ 0, gtksignal_connect(Gtk2::Button->new(N("Sync client X keyboard settings with server.")),
clicked => sub { client_X_keyboard() }),
- 1, new Gtk2::HBox(0,0),
+ 1, Gtk2::HBox->new(0,0),
);
}
sub make_nbis() {
my $buff = N("Creating net boot images for all kernels");
$in->ask_warn(N("Information"), N("This will take a few minutes."));
- cursor_wait();
+ gtkset_mousecursor_wait();
system("/usr/bin/mknbi-set -k /boot/$_") foreach @kernels;
- cursor_norm();
+ gtkset_mousecursor_normal();
$buff .= "\n\n\t" . N("Done!");
text_view($buff, "wizard");
}
-sub sync_users {
- my ($cmd_line) = @_;
+sub sync_users() {
my $buff = N("Syncing server user list with client list, including root.");
my @active_users = cat_("/etc/shadow");
@@ -486,14 +465,14 @@ sub text_view {
my ($text, $option) = @_;
my $box;
gtkpack($status_box,
- $box = gtkpack_(new Gtk2::VBox(0,10),
- 1, gtkpack_(new Gtk2::HBox(0,0),
+ $box = gtkpack_(Gtk2::VBox->new(0,10),
+ 1, gtkpack_(Gtk2::HBox->new(0,0),
1, create_scrolled_window(gtktext_insert(
- new Gtk2::TextView, [ [ $text ] ])
+ Gtk2::TextView->new, [ [ $text ] ])
),
),
- 0, gtkpack(gtkset_layout(new Gtk2::HButtonBox, 'spread'),
- gtksignal_connect(my $ok_button = new Gtk2::Button(N("OK")), clicked => sub {
+ 0, gtkpack(gtkset_layout(Gtk2::HButtonBox->new, 'spread'),
+ gtksignal_connect(my $ok_button = Gtk2::Button->new(N("Ok")), clicked => sub {
destroy_widget() if $option eq "close";
do_wizard() if $option eq "wizard";
}),
@@ -510,7 +489,7 @@ sub text_view {
sub help() {
my $inittab_str = '/etc/inittab$$IP=client_ip$$';
my $shadow_str = '/etc/shadow$$CLIENT$$';
- my $xfconfig_str = '/etc/X11/XF86Config-4$$IP=client_ip$$';
+ my $xfconfig_str = '/etc/X11/xorg.conf$$IP=client_ip$$';
text_view(N("Terminal Server Overview") . "\n\n" .
N(" - Create Etherboot Enabled Boot Images:
@@ -542,11 +521,11 @@ N(" While you can use a pool of IP addresses, rather than setup a specifi
of client-specific configuration files that ClusterNFS provides.
Note: The '#type' entry is only used by drakTermServ. Clients can either be 'thin'
- or 'fat'. Thin clients run most software on the server via xdmcp, while fat clients run
+ or 'fat'. Thin clients run most software on the server via XDMCP, while fat clients run
most software on the client machine. A special inittab, %s is
written for thin clients. System config files xdm-config, kdmrc, and gdm.conf are
- modified if thin clients are used, to enable xdmcp. Since there are security issues in
- using xdmcp, hosts.deny and hosts.allow are modified to limit access to the local
+ modified if thin clients are used, to enable XDMCP. Since there are security issues in
+ using XDMCP, hosts.deny and hosts.allow are modified to limit access to the local
subnet.
Note: The '#hdw_config' entry is also only used by drakTermServ. Clients can either
@@ -592,7 +571,7 @@ N(" - /etc/xinetd.d/tftp:
by mkinitrd-net, and the entries in /etc/dhcpd.conf, to serve up the boot image to
each diskless client.
- A typical tftp configuration file looks like:
+ A typical TFTP configuration file looks like:
service tftp
{
@@ -610,7 +589,7 @@ N(" - /etc/xinetd.d/tftp:
puts its images.") . "\n\n" .
N(" - Create etherboot floppies/CDs:
The diskless client machines need either ROM images on the NIC, or a boot floppy
- or CD to initate the boot sequence. drakTermServ will help generate these
+ or CD to initiate the boot sequence. drakTermServ will help generate these
images, based on the NIC in the client machine.
A basic example of creating a boot floppy for a 3Com 3c509 manually:
@@ -626,32 +605,32 @@ sub make_boot() {
my $rom_path = "/usr/share/etherboot";
#- doesn't return list sorted
my @nics = sort(all("/usr/share/etherboot/zimg"));
- my $list_nics = new Gtk2::List();
+ my $list_nics = Gtk2::List->new;
my $nic;
foreach (@nics) {
my $t = $_;
- $list_nics->add(gtkshow(gtksignal_connect(new Gtk2::ListItem($t),
+ $list_nics->add(gtkshow(gtksignal_connect(Gtk2::ListItem->new($t),
select => sub { $nic = $t })));
}
$list_nics->set_selection_mode('single');
gtkpack($status_box,
- $boot_box = gtkpack_(new Gtk2::VBox(0,10),
- 0, gtkadd(new Gtk2::HBox(0,10),
- new Gtk2::HBox(0,5),
+ $boot_box = gtkpack_(Gtk2::VBox->new(0,10),
+ 0, gtkadd(Gtk2::HBox->new(0,10),
+ Gtk2::HBox->new(0,5),
create_scrolled_window($list_nics),
- gtkadd(new Gtk2::VBox(1,10),
- new Gtk2::HBox(0,20),
- gtksignal_connect(new Gtk2::Button(N("Boot Floppy")), clicked =>
+ gtkadd(Gtk2::VBox->new(1,10),
+ Gtk2::HBox->new(0,20),
+ gtksignal_connect(Gtk2::Button->new(N("Boot Floppy")), clicked =>
sub { write_eb_image($nic, $rom_path, "floppy") }),
- gtksignal_connect(new Gtk2::Button(N("Boot ISO")), clicked =>
+ gtksignal_connect(Gtk2::Button->new(N("Boot ISO")), clicked =>
sub { write_eb_image($nic, $rom_path, "iso") }),
- gtksignal_connect(new Gtk2::Button(N("PXE Image")), clicked =>
+ gtksignal_connect(Gtk2::Button->new(N("PXE Image")), clicked =>
sub { write_eb_image($nic, $rom_path, "pxe") }),
- new Gtk2::HBox(0,20),
+ Gtk2::HBox->new(0,20),
),
- new Gtk2::HBox(0,5),
+ Gtk2::HBox->new(0,5),
),
),
);
@@ -715,8 +694,8 @@ sub make_nbi() {
update_list($list_model);
- my $combo_default_kernel = Gtk2::ComboBox->new_text;
- $combo_default_kernel->set_popdown_strings(N("Default kernel version"), map { bootloader::vmlinuz2version($_) } @kernels);
+ my $combo_default_kernel = Gtk2::ComboBox->new_with_strings([ N("Default kernel version"),
+ map { bootloader::vmlinuz2version($_) } @kernels ]);
$combo_default_kernel->set_active(0);
$combo_default_kernel->entry->signal_connect('changed', sub {
my $default_kernel = $combo_default_kernel->entry->get_text;
@@ -739,52 +718,52 @@ sub make_nbi() {
});
gtkpack($status_box,
- $nbi_box = gtkpack_(new Gtk2::VBox(1,10),
- 0, gtkadd(new Gtk2::HBox(0,10),
+ $nbi_box = gtkpack_(Gtk2::VBox->new(1,10),
+ 0, gtkadd(Gtk2::HBox->new(0,10),
create_scrolled_window($tree_kernels),
- gtkadd(new Gtk2::VBox(1,10),
- gtksignal_connect(new Gtk2::Button(N("Build Whole Kernel -->")), clicked => sub {
+ gtkadd(Gtk2::VBox->new(1,10),
+ gtksignal_connect(Gtk2::Button->new(N("Build Whole Kernel -->")), clicked => sub {
if ($kernel) {
$in->ask_warn(N("Information"), N("This will take a few minutes."));
- cursor_wait();
+ gtkset_mousecursor_wait();
build_n_update($list_model, "-k /boot/$kernel");
- cursor_norm();
+ gtkset_mousecursor_normal();
} else {
$in->ask_warn(N("Error"), N("No kernel selected!")) if !($kernel);
}
}),
- gtksignal_connect(new Gtk2::Button(N("Build Single NIC -->")), clicked => sub {
+ gtksignal_connect(Gtk2::Button->new(N("Build Single NIC -->")), clicked => sub {
if ($nic) {
build_n_update($list_model, "-k /boot/$kernel -r $nic");
} else {
$in->ask_warn(N("Error"), N("No NIC selected!"));
}
}),
- gtksignal_connect(new Gtk2::Button(N("Build All Kernels -->")), clicked => sub {
+ gtksignal_connect(Gtk2::Button->new(N("Build All Kernels -->")), clicked => sub {
$in->ask_warn(N("Information"), N("This will take a few minutes."));
- cursor_wait();
+ gtkset_mousecursor_wait();
build_n_update($list_model, "-k /boot/$_") foreach @kernels;
- cursor_norm();
+ gtkset_mousecursor_normal();
}),
$combo_default_kernel,
- new Gtk2::HBox(1,1),
- gtksignal_connect(new Gtk2::Button(N("<-- Delete")), clicked => sub {
+ Gtk2::HBox->new(1,1),
+ gtksignal_connect(Gtk2::Button->new(N("<-- Delete")), clicked => sub {
my $nbi = $tftpboot . "/" . $nbi;
my $result = unlink($nbi) or warn("Can't delete $nbi...");
if ($result == 1) {
$list_model->remove($nbi_iter);
}
}),
- gtksignal_connect(new Gtk2::Button(N("Delete All NBIs")), clicked => sub {
- cursor_wait();
+ gtksignal_connect(Gtk2::Button->new(N("Delete All NBIs")), clicked => sub {
+ gtkset_mousecursor_wait();
foreach (grep { /\.nbi/ } all($tftpboot)) {
my $nbi = $tftpboot . "/" . $_;
unlink($nbi) || warn("Can't delete $nbi...");
}
$list_model->clear;
- cursor_norm();
+ gtkset_mousecursor_normal();
}),
- new Gtk2::HBox(1,1),
+ Gtk2::HBox->new(1,1),
),
create_scrolled_window($list_nbis),
),),
@@ -797,12 +776,12 @@ sub make_nbi() {
sub update_list {
my ($list_model) = @_;
$list_model->clear;
- $list_model->append_set(undef, $_) foreach grep { /\.nbi/ } all($tftpboot);
+ $list_model->append_set(0, $_) foreach grep { /\.nbi/ } all($tftpboot);
}
sub build_n_update {
my ($list_model, $command) = @_;
- system("/usr/bin/mknbi-set $command");
+ system("/usr/bin/mknbi-set -v $command");
update_list($list_model);
}
@@ -828,7 +807,7 @@ sub maintain_users() {
foreach (@sys_users) {
my ($s_label) = split(/:/, $_, 2);
if (any { /$s_label/ } @homes) {
- $list_model->append_set(undef, $s_label);
+ $list_model->append_set(0, $s_label);
}
}
@@ -849,7 +828,7 @@ sub maintain_users() {
my ($t_label) = split(/:/, $_, 2);
my @system_entry = grep { /$t_label/ } @sys_users;
$t_label = $t_label . " !!!" if $_ ne $system_entry[0];
- $list_model->append_set(undef, $t_label);
+ $list_model->append_set(0, $t_label);
}
$list_ts_users->get_selection->signal_connect(changed => sub {
@@ -861,23 +840,23 @@ sub maintain_users() {
});
gtkpack($status_box,
- $user_box = gtkpack_(new Gtk2::VBox(0,10),
- 0, gtkadd(new Gtk2::Label(N("!!! Indicates the password in the system database is different than\n the one in the Terminal Server database.\nDelete/re-add the user to the Terminal Server to enable login."))),
- 0, gtkadd(new Gtk2::HBox(0,20),
+ $user_box = gtkpack_(Gtk2::VBox->new(0,10),
+ 0, gtkadd(Gtk2::Label->new(N("!!! Indicates the password in the system database is different than\n the one in the Terminal Server database.\nDelete/re-add the user to the Terminal Server to enable login."))),
+ 0, gtkadd(Gtk2::HBox->new(0,20),
create_scrolled_window($list_sys_users),
- gtkadd(new Gtk2::VBox(1,10),
- new Gtk2::HBox(0,10),
- gtksignal_connect(new Gtk2::Button(N("Add User -->")), clicked =>
- sub { my $result = adduser(0, $sys_user);
+ gtkadd(Gtk2::VBox->new(1,10),
+ Gtk2::HBox->new(0,10),
+ gtksignal_connect(Gtk2::Button->new(N("Add User -->")), clicked =>
+ sub { my $result = adduser($sys_user);
if ($result == 0) {
- $list_model->append_set(undef, $sys_user);
+ $list_model->append_set(0, $sys_user);
}
}),
- gtksignal_connect(new Gtk2::Button(N("<-- Del User")), clicked =>
- sub { deluser(0, $ts_user);
+ gtksignal_connect(Gtk2::Button->new(N("<-- Del User")), clicked =>
+ sub { deluser($ts_user);
$list_model->remove($titer);
}),
- new Gtk2::HBox(0,10),
+ Gtk2::HBox->new(0,10),
),
create_scrolled_window($list_ts_users),
),),
@@ -934,16 +913,16 @@ sub maintain_clients() {
});
#- entry boxes for client data entry
- my $label_host = new Gtk2::Label("Client Name:");
- my $entry_host = new Gtk2::Entry();
- my $label_mac = new Gtk2::Label("MAC Address:");
- my $entry_mac = new Gtk2::Entry();
- my $label_ip = new Gtk2::Label("IP Address:");
- my $entry_ip = new Gtk2::Entry();
- my $label_nbi = new Gtk2::Label("Kernel Netboot Image:");
- my $entry_nbi = new Gtk2::Combo();
-
- gtksignal_connect(my $check_hdw_config = new Gtk2::CheckButton(N("Allow local hardware\nconfiguration.")),
+ my $label_host = Gtk2::Label->new("Client Name:");
+ my $entry_host = Gtk2::Entry->new;
+ my $label_mac = Gtk2::Label->new("MAC Address:");
+ my $entry_mac = Gtk2::Entry->new;
+ my $label_ip = Gtk2::Label->new("IP Address:");
+ my $entry_ip = Gtk2::Entry->new;
+ my $label_nbi = Gtk2::Label->new("Kernel Netboot Image:");
+ my $entry_nbi = Gtk2::Combo->new;
+
+ gtksignal_connect(my $check_hdw_config = Gtk2::CheckButton->new(N("Allow local hardware\nconfiguration.")),
clicked => sub { invbool \$local_config });
my @images = grep { /\.nbi/ } all($tftpboot);
@@ -962,27 +941,27 @@ sub maintain_clients() {
my $is_thin = 0;
gtkpack($status_box,
- $client_box = gtkpack_(new Gtk2::VBox(0,10),
- 0, gtkadd(new Gtk2::HBox(1,5),
- gtkadd(new Gtk2::VBox(0,5),
+ $client_box = gtkpack_(Gtk2::VBox->new(0,10),
+ 0, gtkadd(Gtk2::HBox->new(1,5),
+ gtkadd(Gtk2::VBox->new(0,5),
gtkadd($label_host), gtkadd($entry_host),
gtkadd($label_mac), gtkadd($entry_mac),
gtkadd($label_ip), gtkadd($entry_ip),
gtkadd($label_nbi), gtkadd($entry_nbi),
gtkadd($check_hdw_config),
- gtksignal_connect($check_thin = new Gtk2::CheckButton(N("Thin Client")),
+ gtksignal_connect($check_thin = Gtk2::CheckButton->new(N("Thin Client")),
clicked => sub { invbool \$is_thin }),
),
- gtkadd(new Gtk2::VBox(1,10),
- $check_allow_thin = new Gtk2::CheckButton(N("Allow Thin Clients")),
- gtksignal_connect(new Gtk2::Button(N("Add Client -->")), clicked =>
+ gtkadd(Gtk2::VBox->new(1,10),
+ $check_allow_thin = Gtk2::CheckButton->new(N("Allow Thin Clients")),
+ gtksignal_connect(Gtk2::Button->new(N("Add Client -->")), clicked =>
sub { my $hostname = $entry_host->get_text;
my $mac = $entry_mac->get_text;
my $ip = $entry_ip->get_text;
my $nbi = $entry_nbi->entry->get_text;
if ($hostname && $mac && $ip) {
- my $result = addclient(0, $hostname, $mac, $ip, $nbi, $is_thin, $local_config);
+ my $result = addclient($hostname, $mac, $ip, $nbi, $is_thin, $local_config);
if ($result == 0) {
my $t_client = $model->append_set(undef, [ 0 => $hostname ]);
@@ -1006,7 +985,7 @@ sub maintain_clients() {
}
}
}),
- gtksignal_connect($button_edit = new Gtk2::Button(N("<-- Edit Client")), clicked =>
+ gtksignal_connect($button_edit = Gtk2::Button->new(N("<-- Edit Client")), clicked =>
sub { $entry_host->set_text($client);
$entry_mac->set_text($clients{$client}{hardware});
$entry_ip->set_text($clients{$client}{address});
@@ -1024,7 +1003,7 @@ sub maintain_clients() {
$check_hdw_config->set_active(0);
}
- my $result = delclient(0, $client);
+ my $result = delclient($client);
if ($result == 0) {
$model->remove($citer);
$button_edit->set_sensitive(0);
@@ -1032,15 +1011,15 @@ sub maintain_clients() {
$button_delete->set_sensitive(0);
}
}),
- gtksignal_connect($button_config = new Gtk2::Button(N("Disable Local Config")), clicked =>
+ gtksignal_connect($button_config = Gtk2::Button->new(N("Disable Local Config")), clicked =>
sub {
my $hdw_config = $clients{$client}{hdw_config};
if ($hdw_config eq "true") {
client_hdw_config($clients{$client}{address}, 0);
}
}),
- gtksignal_connect($button_delete = new Gtk2::Button(N("Delete Client")), clicked =>
- sub { my $result = delclient(0, $client);
+ gtksignal_connect($button_delete = Gtk2::Button->new(N("Delete Client")), clicked =>
+ sub { my $result = delclient($client);
if ($result == 0) {
$model->remove($citer);
$button_edit->set_sensitive(0);
@@ -1048,12 +1027,12 @@ sub maintain_clients() {
$button_delete->set_sensitive(0);
}
}),
- gtksignal_connect(new Gtk2::Button(N("dhcpd Config...")), clicked =>
+ gtksignal_connect(Gtk2::Button->new(N("dhcpd Config...")), clicked =>
sub { $client_box->destroy; dhcpd_config() }),
),
create_scrolled_window($tree_clients),
),
- 0, gtksignal_connect(new Gtk2::Button(N("Sync client X keyboard settings with server.")),
+ 0, gtksignal_connect(Gtk2::Button->new(N("Sync client X keyboard settings with server.")),
clicked => sub { client_X_keyboard() }),
),
);
@@ -1075,20 +1054,20 @@ sub maintain_clients() {
}
sub client_X_keyboard() {
- my $server_conf = "/etc/X11/XF86Config-4";
- my $client_conf = '/etc/X11/XF86Config-4$$CLIENT$$';
+ my $server_conf = "/etc/X11/xorg.conf";
+ my $client_conf = '/etc/X11/xorg.conf$$CLIENT$$';
my @server_X_config = cat_($server_conf);
foreach (@server_X_config) {
chomp;
if (/XkbModel/) {
- my $oldmodel = `grep XkbModel '/etc/X11/XF86Config-4\$\$CLIENT\$\$'`;
+ my $oldmodel = `grep XkbModel '/etc/X11/xorg.conf\$\$CLIENT\$\$'`;
chomp $oldmodel;
my $newmodel = $_;
substInFile { s/$oldmodel/$newmodel/ } $client_conf;
log::explanations("Sync XkbModel in $client_conf from $server_conf");
}
if (/XkbLayout/) {
- my $oldlayout = `grep XkbLayout '/etc/X11/XF86Config-4\$\$CLIENT\$\$'`;
+ my $oldlayout = `grep XkbLayout '/etc/X11/xorg.conf\$\$CLIENT\$\$'`;
chomp $oldlayout;
my $newlayout = $_;
substInFile { s/$oldlayout/$newlayout/ } $client_conf;
@@ -1100,7 +1079,7 @@ sub client_X_keyboard() {
sub client_set {
my ($default) = @_;
# we need to change some system files to allow the thin clients
- # to access the server - enabling xdmcp and modify hosts.deny/hosts.allow for some security
+ # to access the server - enabling XDMCP and modify hosts.deny/hosts.allow for some security
# we also need to set runlevel to 5 and restart the display manager
if ($conf{ALLOW_THIN} == 1) {
if (-f "/etc/sysconfig/autologin") {
@@ -1113,10 +1092,10 @@ sub client_set {
substInFile { s/id:3:initdefault:/id:5:initdefault:/ } "/etc/inittab";
substInFile { s/! DisplayManager.requestPort:/DisplayManager.requestPort:/ } "/etc/X11/xdm/xdm-config";
substInFile { s/Enable=false/Enable=true/ } "/usr/share/config/kdm/kdmrc";
- # This file had 2 "Enable=" entries, one for xdmcp and one for debug
+ # This file had 2 "Enable=" entries, one for XDMCP and one for debug
change_gdm_xdmcp("true");
log::explanations("Modified files /etc/inittab, /etc/X11/xdm/xdm-config, /usr/share/config/kdm/kdmrc, /etc/X11/gdm/gdm.conf");
- # just xdmcp in hosts.allow is enough for xdm & kdm, but gdm doesn't work - x11 doesn't help either
+ # just XDMCP in hosts.allow is enough for xdm & kdm, but gdm doesn't work - x11 doesn't help either
update_hosts_allow("enable");
if ($default eq "all") {
my $inittab = '/etc/initab$$CLIENT$$';
@@ -1151,65 +1130,65 @@ sub dhcpd_config() {
my $new_config = 0;
#- entry boxes for data entry
- my $box_subnet = new Gtk2::HBox(0,0);
- my $label_subnet = new Gtk2::Label(N("Subnet:"));
+ my $box_subnet = Gtk2::HBox->new(0,0);
+ my $label_subnet = Gtk2::Label->new(N("Subnet:"));
$label_subnet->set_justify('right');
- my $entry_subnet = new Gtk2::Entry();
+ my $entry_subnet = Gtk2::Entry->new;
$box_subnet->pack_end($entry_subnet, 0, 0, 10);
$box_subnet->pack_end($label_subnet, 0, 0, 10);
- my $box_netmask = new Gtk2::HBox(0,0);
- my $label_netmask = new Gtk2::Label(N("Netmask:"));
+ my $box_netmask = Gtk2::HBox->new(0,0);
+ my $label_netmask = Gtk2::Label->new(N("Netmask:"));
$label_netmask->set_justify('left');
- my $entry_netmask = new Gtk2::Entry();
+ my $entry_netmask = Gtk2::Entry->new;
$box_netmask->pack_end($entry_netmask, 0, 0, 10);
$box_netmask->pack_end($label_netmask, 0, 0, 10);
- my $box_routers = new Gtk2::HBox(0,0);
- my $label_routers = new Gtk2::Label(N("Routers:"));
+ my $box_routers = Gtk2::HBox->new(0,0);
+ my $label_routers = Gtk2::Label->new(N("Routers:"));
$label_routers->set_justify('left');
- my $entry_routers = new Gtk2::Entry();
+ my $entry_routers = Gtk2::Entry->new;
$box_routers->pack_end($entry_routers, 0, 0, 10);
$box_routers->pack_end($label_routers, 0, 0, 10);
- my $box_subnet_mask = new Gtk2::HBox(0,0);
- my $label_subnet_mask = new Gtk2::Label(N("Subnet Mask:"));
+ my $box_subnet_mask = Gtk2::HBox->new(0,0);
+ my $label_subnet_mask = Gtk2::Label->new(N("Subnet Mask:"));
$label_subnet_mask->set_justify('left');
- my $entry_subnet_mask = new Gtk2::Entry();
+ my $entry_subnet_mask = Gtk2::Entry->new;
$box_subnet_mask->pack_end($entry_subnet_mask, 0, 0, 10);
$box_subnet_mask->pack_end($label_subnet_mask, 0, 0, 10);
- my $box_broadcast = new Gtk2::HBox(0,0);
- my $label_broadcast = new Gtk2::Label(N("Broadcast Address:"));
+ my $box_broadcast = Gtk2::HBox->new(0,0);
+ my $label_broadcast = Gtk2::Label->new(N("Broadcast Address:"));
$label_broadcast->set_justify('left');
- my $entry_broadcast = new Gtk2::Entry();
+ my $entry_broadcast = Gtk2::Entry->new;
$box_broadcast->pack_end($entry_broadcast, 0, 0, 10);
$box_broadcast->pack_end($label_broadcast, 0, 0, 10);
- my $box_domain = new Gtk2::HBox(0,0);
- my $label_domain = new Gtk2::Label(N("Domain Name:"));
+ my $box_domain = Gtk2::HBox->new(0,0);
+ my $label_domain = Gtk2::Label->new(N("Domain Name:"));
$label_domain->set_justify('left');
- my $entry_domain = new Gtk2::Entry();
+ my $entry_domain = Gtk2::Entry->new;
$box_domain->pack_end($entry_domain, 0, 0, 10);
$box_domain->pack_end($label_domain, 0, 0, 10);
- my $box_name_servers = new Gtk2::HBox(0,0);
- my $box_name_servers_entry = new Gtk2::VBox(0,0);
- my $label_name_servers = new Gtk2::Label(N("Name Servers:"));
+ my $box_name_servers = Gtk2::HBox->new(0,0);
+ my $box_name_servers_entry = Gtk2::VBox->new(0,0);
+ my $label_name_servers = Gtk2::Label->new(N("Name Servers:"));
$label_name_servers->set_justify('left');
- my $entry_name_server1 = new Gtk2::Entry();
- my $entry_name_server2 = new Gtk2::Entry();
- my $entry_name_server3 = new Gtk2::Entry();
+ my $entry_name_server1 = Gtk2::Entry->new;
+ my $entry_name_server2 = Gtk2::Entry->new;
+ my $entry_name_server3 = Gtk2::Entry->new;
$box_name_servers_entry->pack_start($entry_name_server1, 0, 0, 0);
$box_name_servers_entry->pack_start($entry_name_server2, 0, 0, 0);
$box_name_servers_entry->pack_start($entry_name_server3, 0, 0, 0);
$box_name_servers->pack_end($box_name_servers_entry, 0, 0, 10);
$box_name_servers->pack_end($label_name_servers, 0, 0, 10);
- my $label_ip_range_start = new Gtk2::Label(N("IP Range Start:"));
- my $label_ip_range_end = new Gtk2::Label(N("IP Range End:"));
- my $entry_ip_range_start = new Gtk2::Entry();
- my $entry_ip_range_end = new Gtk2::Entry();
+ my $label_ip_range_start = Gtk2::Label->new(N("IP Range Start:"));
+ my $label_ip_range_end = Gtk2::Label->new(N("IP Range End:"));
+ my $entry_ip_range_start = Gtk2::Entry->new;
+ my $entry_ip_range_end = Gtk2::Entry->new;
#- grab some default entries from the running system
@@ -1256,8 +1235,8 @@ sub dhcpd_config() {
}
gtkpack($status_box,
- $dhcpd_box = gtkpack_(new Gtk2::HBox(1,10),
- 0, gtkadd(new Gtk2::VBox,
+ $dhcpd_box = gtkpack_(Gtk2::HBox->new(1,10),
+ 0, gtkadd(Gtk2::VBox->new,
gtkadd($box_subnet),
gtkadd($box_netmask),
gtkadd($box_routers),
@@ -1266,25 +1245,25 @@ sub dhcpd_config() {
gtkadd($box_domain),
gtkadd($box_name_servers),
),
- 0, gtkadd(new Gtk2::VBox(0,0),
- new Gtk2::Label(N("dhcpd Server Configuration") . "\n\n" .
+ 0, gtkadd(Gtk2::VBox->new(0,0),
+ Gtk2::Label->new(N("dhcpd Server Configuration") . "\n\n" .
N("Most of these values were extracted\nfrom your running system.\nYou can modify as needed.")),
- new Gtk2::HSeparator,
- gtkadd(new Gtk2::HBox,
- new Gtk2::Label(N("Dynamic IP Address Pool:")),
+ Gtk2::HSeparator->new,
+ gtkadd(Gtk2::HBox->new,
+ Gtk2::Label->new(N("Dynamic IP Address Pool:")),
),
- gtkadd(new Gtk2::HBox(0,0),
- gtkadd(new Gtk2::VBox,
+ gtkadd(Gtk2::HBox->new(0,0),
+ gtkadd(Gtk2::VBox->new,
gtkadd($label_ip_range_start),
gtkadd($entry_ip_range_start),
),
- gtkadd(new Gtk2::VBox,
+ gtkadd(Gtk2::VBox->new,
gtkadd($label_ip_range_end),
gtkadd($entry_ip_range_end),
),
),
- gtkadd(new Gtk2::HBox),
- gtksignal_connect(new Gtk2::Button($button_msg), clicked =>
+ gtkadd(Gtk2::HBox->new),
+ gtksignal_connect(Gtk2::Button->new($button_msg), clicked =>
sub {
if ($new_config == 1) {
write_dhcpd_config("full",
@@ -1304,7 +1283,7 @@ sub dhcpd_config() {
}
}
),
- new Gtk2::HBox(0,10),
+ Gtk2::HBox->new(0,10),
),
),
);
@@ -1314,7 +1293,7 @@ sub dhcpd_config() {
}
sub get_net_interface() {
- my @interfaces = `/sbin/route | grep -v lo | tail +3 | awk '{print \$8}' | uniq`;
+ my @interfaces = `/sbin/route | grep -v lo | grep -v vmnet | tail +3 | awk '{print \$8}' | uniq`;
chop @interfaces;
my $count = @interfaces;
if ($count == 1) {
@@ -1450,11 +1429,10 @@ sub write_eb_image {
}
}
-sub enable_ts {
+sub enable_ts() {
#- setup default config files for terminal server
- my $cmd_line = @_;
- check_gdm($cmd_line);
+ check_gdm();
@buff = ();
$buff[0] = "Enabling Terminal Server...\n\n";
@@ -1486,7 +1464,6 @@ sub enable_ts {
$squash = "no_root_squash" if $msec{SECURE_LEVEL} > 2;
my $exports = "#/etc/exports - generated by drakTermServ\n\n";
if ($nfs_subnet eq '') {
- $nfs_subnet = get_subnet_from_sys();
$nfs_mask = get_mask_from_sys();
my $sys_broadcast = get_broadcast_from_sys();
$nfs_subnet = get_subnet_from_sys($sys_broadcast, $nfs_mask);
@@ -1507,9 +1484,8 @@ sub enable_ts {
show_status(@buff);
}
-sub disable_ts {
+sub disable_ts() {
#- restore pre-terminal server configs
- my $cmd_line = @_;
@buff = ();
$buff[0] = "Disabling Terminal Server...\n\n";
@@ -1553,14 +1529,14 @@ sub service_change {
$buff_index;
}
-sub start_ts {
+sub start_ts() {
#- start the terminal server
- my $cmd_line = @_;
my $pcimap = "/etc/dhcpd.conf.etherboot-pcimap.include";
@buff = ();
if (-f $pcimap) {
$buff[0] = "Starting Terminal Server...\n\n";
+ `touch /etc/dhcpd.conf.etherboot.kernel` if ! -f "/etc/dhcpd.conf.etherboot.kernel";
my $buff_index = service_change("dhcpd", "start", 2);
$buff_index = service_change("clusternfs", "start", $buff_index);
$buff[$buff_index] = "\n\tDone!";
@@ -1576,9 +1552,8 @@ sub start_ts {
show_status(@buff);
}
-sub stop_ts {
+sub stop_ts() {
#- stop the terminal server
- my $cmd_line = @_;
@buff = ();
$buff[0] = "Stopping Terminal Server...\n\n";
@@ -1608,7 +1583,7 @@ sub show_status() {
}
sub adduser {
- my ($cmd_line, $username) = @_;
+ my ($username) = @_;
my @active_users = cat_("/etc/shadow");
my @passwd_users = cat_("/etc/passwd");
my @ts_users = cat_('/etc/shadow$$CLIENT$$');
@@ -1627,8 +1602,8 @@ sub adduser {
} else {
#in but password changed
print N("%s passwd bad in Terminal Server - rewriting...\n", $username);
- deluser($cmd_line, $username);
- adduser($cmd_line, $username);
+ deluser($username);
+ adduser($username);
}
} else {
# new ts user
@@ -1654,7 +1629,7 @@ sub adduser {
sub deluser {
# del a user from the shadow$$CLIENT$$ file
- my ($cmd_line, $username) = @_;
+ my ($username) = @_;
my $i;
my $user_deleted;
my @ts_users = cat_('/etc/shadow$$CLIENT$$');
@@ -1700,7 +1675,7 @@ sub deluser {
sub addclient {
#- add a new client entry after checking for dups
- my ($cmd_line, $hostname, $mac, $ip, $nbi, $is_thin, $local_config) = @_;
+ my ($hostname, $mac, $ip, $nbi, $is_thin, $local_config) = @_;
my $host_in_use = 0;
my $mac_in_use = 0;
@@ -1748,7 +1723,7 @@ sub addclient {
sub delclient {
#- find a client and delete the entry in dhcpd.conf
- my ($cmd_line, $hostname) = @_;
+ my ($hostname) = @_;
my $host_found;
my %ts_clients = read_dhcpd_conf();
@@ -1914,11 +1889,11 @@ sub client_hdw_config {
# make all the local config files
cp_af("/etc/sysconfig/mouse", "/etc/sysconfig/mouse$suffix") if -f "/etc/sysconfig/mouse";
cp_af("/etc/X11/XF86Config", "/etc/X11/XF86Config$suffix") if -f "/etc/X11/XF86Config";
- cp_af('/etc/X11/XF86Config-4$$CLIENT$$', "/etc/X11/XF86Config-4$suffix") if -f '/etc/X11/XF86Config-4$$CLIENT$$';
- cp_af("/dev/null", "/etc/modules.conf$suffix");
- cp_af("/dev/null", "/etc/modules$suffix");
- cp_af("/dev/null", "/etc/modprobe.conf$suffix");
- cp_af("/dev/null", "/etc/modprobe.preload$suffix");
+ cp_af('/etc/X11/xorg.conf$$CLIENT$$', "/etc/X11/xorg.conf$suffix") if -f '/etc/X11/xorg.conf$$CLIENT$$';
+ output("/etc/modules.conf$suffix", '');
+ output("/etc/modules$suffix", '');
+ output("/etc/modprobe.conf$suffix", '');
+ output("/etc/modprobe.preload$suffix", '');
# create mount points so they can be edited by the client
my $mnt_access = "$client_ip(rw,no_root_squash)";
append_to_file("/etc/exports", "/etc/sysconfig/mouse$suffix\t$mnt_access\n");
@@ -1927,7 +1902,7 @@ sub client_hdw_config {
append_to_file("/etc/exports", "/etc/modprobe.conf$suffix\t$mnt_access\n");
append_to_file("/etc/exports", "/etc/modprobe.preload$suffix\t$mnt_access\n");
append_to_file("/etc/exports", "/etc/X11/XF86Config$suffix\t$mnt_access\n");
- append_to_file("/etc/exports", "/etc/X11/XF86Config-4$suffix\t$mnt_access\n");
+ append_to_file("/etc/exports", "/etc/X11/xorg.conf$suffix\t$mnt_access\n");
} else {
log::explanations("Removing root access for $client_ip");
eval { rm_rf("/etc/shadow\$\$IP=$client_ip\$\$") };
@@ -1965,7 +1940,7 @@ sub clean_client_config {
eval { rm_rf("/etc/modprobe.conf$suffix") };
eval { rm_rf("/etc/modprobe.preload$suffix") };
eval { rm_rf("/etc/X11/XF86Config$suffix") };
- eval { rm_rf("/etc/X11/XF86Config-4$suffix") };
+ eval { rm_rf("/etc/X11/xorg.conf$suffix") };
eval { rm_rf("/etc/sysconfig/network$suffix") };
remove_client_mounts($client_ip);
}