Bonjour à tous,
J'ai remarqué un problème sous mon SME 6.0.1 avec cet applicatif...rappeller vous...
-->
viewtopic.php?t=19476&postdays=0&postorder=asc&start=15
Je résume, le service sme6adimd, ne fonctionnait pas correctement pour moi. Quand je l'arrêtais a partir du panel (ou par la console) ce service ne stopait pas!!
L'arrêt du service marchait avec la version 0.1 mais pas la 1.1 et suivante.
J'ai donc plongé mon nez dans le code et observé un truc étrange (car à priori ça marche chez les autres testeurs?!) . Lors de mes essais, j'ai isolé le fichier "/usr/bin/sme6admin" qui entraînait le problème, puis la portion de code qui me posait problème.
C'est la fonction "prop" de perl qui ne passait pas (par contre "get_prop" marche parfaitement) dans la sub "read_conf".
Pourquoi ...ben...une cacahuète pas fraîche?
J'ai modifié ainsi le code et ça marche:
- Code: Tout sélectionner
sub read_conf
{
my $smedb=esmith::ConfigDB->open;
my $record = $smedb->get('DomainName');
$DomainName = $record->value;
$record = $smedb->get('SystemName');
$SystemName = $record->value;
$HostName = "$SystemName.$DomainName";
#$record = $smedb->get('InternalInterface');
#$InternalInterface = $record->prop('Name') || 'eth0';
#$record = $smedb->get('ExternalInterface');
#$ExternalInterface = $record->prop('Name') || 'ppp0';
$InternalInterface = $smedb->get_prop('InternalInterface','Name') || 'eth0';
$ExternalInterface = $smedb->get_prop('ExternalInterface','Name') || 'ppp0';
#$record = $smedb->get($progname);
#$conf_database = $record->prop('db_database');
#$conf_username = $record->prop('db_username');
#$conf_password = $record->prop('db_password');
#$conf_mail_admin = $record->prop('mail_admin');
#$conf_mail_status = $record->prop('mail_status');
#$conf_ecart_mail_status = $record->prop('ecart_mail_status');
#$conf_max_mail_in = $record->prop('max_mail_in');
#$conf_max_mail_out = $record->prop('max_mail_out');
#$conf_max_hd_used = $record->prop('max_hd_used');
#$conf_max_cpu_total = $record->prop('max_cpu_total');
#$conf_max_temp_hard = $record->prop('max_temp_hard');
#$conf_max_temp_hd = $record->prop('max_temp_hd');
#$conf_max_net_samba = $record->prop('max_net_samba');
#$conf_max_sessions_ssh = $record->prop('max_sessions_ssh');
#$conf_max_sessions_ftp = $record->prop('max_sessions_ftp');
#$conf_max_sessions_vpn = $record->prop('max_sessions_vpn');
$conf_database = $smedb->get_prop($progname,'db_database');
$conf_username = $smedb->get_prop($progname,'db_username');
$conf_password = $smedb->get_prop($progname,'db_password');
$conf_mail_admin = $smedb->get_prop($progname,'mail_admin');
$conf_mail_status = $smedb->get_prop($progname,'mail_status');
$conf_ecart_mail_status = $smedb->get_prop($progname,'ecart_mail_status');
$conf_max_mail_in = $smedb->get_prop($progname,'max_mail_in');
$conf_max_mail_out = $smedb->get_prop($progname,'max_mail_out');
$conf_max_hd_used = $smedb->get_prop($progname,'max_hd_used');
$conf_max_cpu_total = $smedb->get_prop($progname,'max_cpu_total');
$conf_max_temp_hard = $smedb->get_prop($progname,'max_temp_hard');
$conf_max_temp_hd = $smedb->get_prop($progname,'max_temp_hd');
$conf_max_net_samba = $smedb->get_prop($progname,'max_net_samba');
$conf_max_sessions_ssh = $smedb->get_prop($progname,'max_sessions_ssh');
$conf_max_sessions_ftp = $smedb->get_prop($progname,'max_sessions_ftp');
$conf_max_sessions_vpn = $smedb->get_prop($progname,'max_sessions_vpn');
print "InternalInterface=$InternalInterface,ExternalInterface=$ExternalInterface\n";
print "conf_database=$conf_database,conf_username=$conf_username,conf_password=$conf_password\n";
print "conf_mail_status=$conf_mail_status,conf_mail_admin=$conf_mail_admin,conf_ecart_mail_status=$conf_ecart_mail_status\n";
print "conf_max_mail_in=$conf_max_mail_in,conf_max_mail_out=$conf_max_mail_out\n";
print "conf_max_hd_used=$conf_max_hd_used,conf_max_cpu_total=$conf_max_cpu_total,conf_max_temp_hard=$conf_max_temp_hard\n";
print "conf_max_temp_hd=$conf_max_temp_hd,conf_max_net_samba=$conf_max_net_samba,";
print "conf_max_sessions_ssh=$conf_max_sessions_ssh,conf_max_sessions_ftp=$conf_max_sessions_ftp,";
print "conf_max_sessions_vpn=$conf_max_sessions_vpn\n";
}
Au fait, Landry pourquoi avoir changé la forme de cette portion de code? (parce que ça m'arrange pas forcement moi
)
De plus, dans la fonction "get_sensors_hddtemp" du même fichier (/usr/bin/sme6admin), il manque un petit rien:
if (/temp:\s+(\+|-)?([0-9.]+)°C/) {$sensors_temp1=$2;}
if (/CPU Temp:\s+(\+|-)?([0-9.]+)°C/) {$sensors_temp1=$2;}
if (/temp1:\s+(\+|-)?([0-9.]+)°C/) {$sensors_temp1=$2;}
if (/temp2:\s+(\+|-)?([0-9.]+)°C/) {$sensors_temp2=$2;}
if (/SYS Temp:\s+(\+|-)?([0-9.]+)°C/) {$sensors_temp2=$2;}
if (/fan2:\s+(\d+) RPM/) {$sensors_fan_speed=$1;}
if (/CPU Fan:\s+(\d+) RPM/) {$sensors_fan_speed=$1;}
if (/Board:\s+(\+|-)?([0-9.]+)°C/) {$sensors_temp1=$1;}
if (/CPU:\s+(\+|-)?([0-9.]+)°C/) {$sensors_temp2=$2;}
J'espère que tout est clair.
Merci pour ton trés bon travail Landry
Bonne soirée.
Petit deviendra grand...