summaryrefslogtreecommitdiffstats
path: root/sshd_wizard/Sshd.pm
blob: 96e4299e7233332fa1bd7c680f8c24ce38571f7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/perl

# Drakwizard
# Copyright (C) 2002,2005 Mandriva
#
# Authors: antoine Ginies <aginies@mandriva>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

package MDK::Wizard::Sshd;
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
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;