{ use MIME::Base64 qw(encode_base64); my $smeadmindb = $DB->get('smeadmind') || $DB->new_record("smeadmind",{type=>'service'}); $pw = "not set due to error"; if ( open( RANDOM, "/dev/urandom" ) ){ my $buf; if ( read( RANDOM, $buf, 25 ) != 25 ){ warn("Short read from /dev/random: $!"); } else{ $pw = encode_base64($buf); chomp $pw; } close RANDOM; } else{ warn "Could not open /dev/urandom: $!"; } # let's migrate sme9admind values to smeadmind if ( defined $sme9admind && ! defined $smeadmind ) { for my $propertie (keys %sme9admind) { next if $propertie eq "DbName" || $propertie eq "DbUser"; $smeadmindb->set_prop($propertie, $sme9admind{$propertie}); } } $smeadmindb->set_prop('DbPassword', $pw) if not $smeadmindb->prop('DbPassword'); if ( -e "/etc/e-smith/web/panels/manager/html/smeadmin/_smeadmin.conf" ){ open(CONF,"; close(CONF); foreach (@confs){ foreach my $key (qw( db_database db_password db_username img_format img_width img_height other_mail_address_domains ping_target hddtemp_first_hd hddtemp_second_hd du_enabled sensors_first_temp_tag sensors_second_temp_tag sensors_fan_tag limit_pppoe_disconnection limit_pppoe_duration limit_vpn_duration mail_alert_recipient mail_status_recipient mail_status_delay_between max_mail_in max_mail_out max_hd_used max_cpu_total max_temp_hard max_temp_hd max_sessions_samba max_sessions_ssh max_sessions_ftp max_sessions_vpn )){ # valeur = partie droite de la ligne contenant $key dans le fichier if ($_ =~ /\s*$key\s*=\s*(.*)/){ $params{$key} = $1; } } } # Si la valeur dans la db est diférente de la valeur trouve dans le fichier, alors on met a jour la db $smeadmindb->set_prop('DbName',$params{'db_database'}); # if ($smeadmindb->prop('DbName') ne $params{'db_database'}); $smeadmindb->set_prop('DbPassword',$params{'db_password'}); # if ($smeadmindb->prop('DbPassword') ne $params{'db_password'}); $smeadmindb->set_prop('DbUser',$params{'db_username'}); # if ($smeadmindb->prop('DbUser') ne $params{'db_username'}); $smeadmindb->set_prop('ImgFormat',$params{'img_format'}); # if ($smeadmindb->prop('ImgFormat') ne $params{'img_format'}); $smeadmindb->set_prop('ImgWidth',$params{'img_width'}); # if ($smeadmindb->prop('ImgWidth') ne $params{'img_width'}); $smeadmindb->set_prop('ImgHeight',$params{'img_height'}); # if ($smeadmindb->prop('ImgHeight') ne $params{'img_height'}); $smeadmindb->set_prop('OtherMailDomains',$params{'other_mail_address_domains'}); # if ($smeadmindb->prop('OtherMailDomains') ne $params{'other_mail_address_domains'}); $smeadmindb->set_prop('PingTarget',$params{'ping_target'}); # if ($smeadmindb->prop('PingTarget') ne $params{'ping_target'}); $smeadmindb->set_prop('hd1',$params{'hddtemp_first_hd'}); # if ($smeadmindb->prop('hd1') ne $params{'hddtemp_first_hd'}); $smeadmindb->set_prop('hd2',$params{'hddtemp_second_hd'}); # if ($smeadmindb->prop('hd2') ne $params{'hddtemp_second_hd'}); $smeadmindb->set_prop('UseDu',$params{'du_enabled'}); # if ($smeadmindb->prop('UseDu') ne $params{'du_enabled'}); $smeadmindb->set_prop('SensorsTag1',$params{'sensors_first_temp_tag'}); # if ($smeadmindb->prop('SensorsTag1') ne $params{'sensors_first_temp_tag'}); $smeadmindb->set_prop('SensorsTag2',$params{'sensors_second_temp_tag'}); # if ($smeadmindb->prop('SensorsTag2') ne $params{'sensors_second_temp_tag'}); $smeadmindb->set_prop('SensorsTagFan',$params{'sensors_fan_tag'}); # if ($smeadmindb->prop('SensorsTagFan') ne $params{'sensors_fan_tag'}); $smeadmindb->set_prop('LimitPppoeDisconnect',$params{'limit_pppoe_disconnection'}); # if ($smeadmindb->prop('LimitPppoeDisconnect') ne $params{'limit_pppoe_disconnection'}); $smeadmindb->set_prop('LimitPppoeDuration',$params{'limit_pppoe_duration'}); # if ($smeadmindb->prop('LimitPppoeDuration') ne $params{'limit_pppoe_duration'}); $smeadmindb->set_prop('LimitVpnDuration',$params{'limit_vpn_duration'}); # if ($smeadmindb->prop('LimitVpnDuration') ne $params{'limit_vpn_duration'}); $smeadmindb->set_prop('AlertMailRecipient',$params{'mail_alert_recipient'}); # if ($smeadmindb->prop('AlertMailRecipient') ne $params{'mail_alert_recipient'}); $smeadmindb->set_prop('StatusMailRecipient',$params{'mail_status_recipient'}); # if ($smeadmindb->prop('StatusMailRecipient') ne $params{'mail_status_recipient'}); $smeadmindb->set_prop('StatusInterval',$params{'mail_status_delay_between'}); # if ($smeadmindb->prop('StatusInterval') ne $params{'mail_status_delay_between'}); $smeadmindb->set_prop('MaxMailIn',$params{'max_mail_in'}); # if ($smeadmindb->prop('MaxMailIn') ne $params{'max_mail_in'}); $smeadmindb->set_prop('MaxMailOut',$params{'max_mail_out'}); # if ($smeadmindb->prop('MaxMailOut') ne $params{'max_mail_out'}); $smeadmindb->set_prop('MaxDiskSpace',$params{'max_hd_used'}); # if ($smeadmindb->prop('MaxDiskSpace') ne $params{'max_hd_used'}); $smeadmindb->set_prop('MaxCpu',$params{'max_cpu_total'}); # if ($smeadmindb->prop('MaxCpu') ne $params{'max_cpu_total'}); $smeadmindb->set_prop('MaxHwTemp',$params{'max_temp_hard'}); # if ($smeadmindb->prop('MaxHwTemp') ne $params{'max_temp_hard'}); $smeadmindb->set_prop('MaxSamba',$params{'max_sessions_samba'}); # if ($smeadmindb->prop('MaxSamba') ne $params{'max_sessions_samba'}); $smeadmindb->set_prop('MaxSsh',$params{'max_sessions_ssh'}); # if ($smeadmindb->prop('MaxSsh') ne $params{'max_sessions_ssh'}); $smeadmindb->set_prop('MaxFtp',$params{'max_sessions_ftp'}); # if ($smeadmindb->prop('MaxFtp') ne $params{'max_sessions_ftp'}); $smeadmindb->set_prop('MaxVpn',$params{'max_sessions_vpn'}); # if ($smeadmindb->prop('MaxVpn') ne $params{'max_sessions_vpn'}); system("/bin/mv /etc/e-smith/web/panels/manager/html/smeadmin/_smeadmin.conf /etc/e-smith/web/panels/manager/html/smeadmin/smeadmin.conf.old"); } }