diff options
Diffstat (limited to 'sshd_wizard')
-rwxr-xr-x | sshd_wizard/Sshd.pm | 65 |
1 files changed, 61 insertions, 4 deletions
diff --git a/sshd_wizard/Sshd.pm b/sshd_wizard/Sshd.pm index e8c3b21d..96e4299e 100755 --- a/sshd_wizard/Sshd.pm +++ b/sshd_wizard/Sshd.pm @@ -25,22 +25,79 @@ use strict; use common; use services; use MDK::Wizard::Wizcommon; - use Libconf::Templates; use Libconf::Glueconf::Ssh::Sshd_config; my $wiz = new MDK::Wizard::Wizcommon; - my $conf = "/etc/ssh/sshd_config"; + # remove anoying \t in /etc/ssh/sshd_config to permit Glueconf to read it substInFile { s/\t/ /gi } $conf; - # we ask glueconf to give us the structure representing /etc/ssh/sshd_config my $sshd = new Libconf::Glueconf::Ssh::Sshd_config({ filename => '/etc/ssh/sshd_config' }); -#debug +# ------ debug use Data::Dumper; print Dumper($sshd); +my $o = { + name => 'Samba wizard', + var => { + wiz_ => '', + }, + init => sub { + test_host_domain($SHORTHOSTNAME, $DOMAINNAME); + }, + needed_rpm => [ 'openssh-server' ], + defaultimage => "/usr/share/wizards/sshd_wizard/images/sshd.png" + }; + +my @yesorno = qw(yes no); push @yesorno, ""; + + +$o->{pages} = { + welcome => { + name => N(''), + }, + end => { + name => N('Congratulations') . "\n\n" . N('The wizard successfully configured your Ssh server.'), + no_back => 1, + end => 1, + next => 0 + }, + error_end => { + name => N("Failed"), + data => [ { label => N("Please relaunch drakwizard, and try to change some parameters.") } ], + no_back => 1, + end => 1, + next => 0, + }, + }; + +sub new { + my ($class, $conf) = @_; + bless { + o => $o, + }, $class; +} + +sub write_conf_restart_ssh { + $sshd->write_conf($conf); + if (services::is_service_running('sshd')) { + services::restart('sshd') + } else { services::start('sshd') } +} + +sub do_it { + $::testing and return; + # display a wait dialog box + my $in = 'interactive'->vnew('su', 'Ssh'); + my $w = $in->wait_message(N("Ssh server"), N("Configuring your Ssh server...")); + write_conf_restart_sshd(); + # remove wait message + undef $w; + check_started('sshd'); +} + 1; |