diff -ruN smeserver-affa-3.3.1.old/root/sbin/affa smeserver-affa-3.3.1/root/sbin/affa --- smeserver-affa-3.3.1.old/root/sbin/affa 2021-09-21 17:52:05.129189459 +0200 +++ smeserver-affa-3.3.1/root/sbin/affa 2021-09-21 17:52:27.836562454 +0200 @@ -184,6 +184,7 @@ my $configDB = esmith::ConfigDB->open or die "Error: Couldn't open config db."; my $LocalIP = $configDB->get("LocalIP")->value; my $DomainName = $configDB->get("DomainName")->value; +my $SystemName = $configDB->get("SystemName")->value; my $rpmlist = "/home/e-smith/db/affa-rpmlist"; # list of installed RPMs @@ -195,22 +196,9 @@ my $ServerBasename = "AFFA.$SystemName.$DomainName-$LocalIP"; -############## fin ajouts -#################################################################################### - my $allow_retry = 0; my $defaultEmail = 'admin'; -my $SystemName = hostname(); -( my $Domain = $SystemName ) =~ s/([^\.]*)\.//; - -#################################################################################### -############# début modifs -#my $hostname=$1; -my $hostname = $SystemName; -############# fin modifs -#################################################################################### - my $affaTitle = "Affa version $VERSION on $SystemName"; my $smbconf = '/etc/samba/smb.conf'; @@ -1909,7 +1897,7 @@ return -1; } if ( $nrpeStatus ne 'enabled' ) { - lg("NRPE service is not running.") + lg("NRPE service is not running.") ; return; } open( FO, ">$af" ); @@ -2661,9 +2649,9 @@ $needed = int( $needed * 0.1 ) if $job{'DiskSpaceWarn'} eq 'risky'; if ( $avail < $needed ) { my $msg = new Mail::Send; - $msg->subject("Warning: Affa server $hostname running out of disk space!"); + $msg->subject("Warning: Affa server $SystemName running out of disk space!"); $msg->to( $job{'_EmailAddress'} ); - $msg->set( "From", "\"Affa Server $hostname\" " ); + $msg->set( "From", "\"Affa Server $SystemName\" " ); my $s; my $fh = $msg->open; print $fh "This message was sent by job '$jobname'.\n"; @@ -3582,9 +3570,9 @@ if ( $job{'sendStatus'} || '' =~ /^(daily|weekly|monthly)$/ ) { $job{'sendStatus'} = ucfirst( $job{'sendStatus'} ); my $msg = new Mail::Send; - $msg->subject("$job{'sendStatus'} status from Affa server $hostname"); + $msg->subject("$job{'sendStatus'} status from Affa server $SystemName"); $msg->to( $job{'_EmailAddress'} ); - $msg->set( "From", "\"Affa Server $hostname\" " ); + $msg->set( "From", "\"Affa Server $SystemName\" " ); my $fh = $msg->open; print $fh "Status:\n"; print $fh getStatus(); @@ -3607,9 +3595,9 @@ } my %job = getJobConfig($jobname); my $msg = new Mail::Send; - $msg->subject("Testmail from job '$jobname' on Affa server $hostname"); + $msg->subject("Testmail from job '$jobname' on Affa server $SystemName"); $msg->to( $job{'_EmailAddress'} ); - $msg->set( "From", "\"Affa Server $hostname\" " ); + $msg->set( "From", "\"Affa Server $SystemName\" " ); my $fh = $msg->open; print $fh "It works!\n\n"; $fh->close; @@ -3635,65 +3623,81 @@ sub setupSamba() { lg("Configuring Samba"); - if ( $smbdStatus ne 'enabled' ) lg("Samba service is not installed or not properly configured."); - return; -} -my %inc; -foreach my $jobname ( $cfg->Sections() ) { - next if $jobname eq 'GlobalAffaConfig'; - my %job = getJobConfig($jobname); - if ( not $job{'_SambaValidUser'} and $job{'SambaShare'} eq 'yes' ) { - lg("Job $jobname: No Valid Users defined. Samba has been access disabled."); - } - my $affasmb = "/etc/samba/Affa-Job-$jobname.conf"; - if ( $job{'SambaShare'} eq 'yes' and $job{'_SambaValidUser'} ) { - open( FD, ">$affasmb" ) or affaErrorExit("Could not create $affasmb"); - print FD "[$jobname]\n"; - print FD "path = $job{'RootDir'}/$jobname\n"; - print FD "comment = Affa archive: $job{'Description'}\n"; - print FD "valid users = $job{'_SambaValidUser'}\n"; - print FD "force user = root\n"; - print FD "read only = yes\n"; - print FD "writable = no\n"; - print FD "veto files = /.$jobname-setup.ini/,/.doneDates/,/.AFFA3-REPORT/,/.AFFA-REPORT/.AFFA-TRASH/\n\n"; - close(FD); - $inc{"include = $affasmb"} = 1; - } - else { - unlink($affasmb); + if ( $smbdStatus ne 'enabled' ) { + lg("Samba service is not installed or not properly configured."); + return; } -} -open( FD, "<$smbconf" ) or affaErrorExit("Could not open $smbconf"); -open( FW, ">$smbconf.$$" ) or affaErrorExit("Could not create $smbconf.$$"); -while () { - $_ = trim($_); - if ( $_ =~ /include = (\/etc\/samba\/Affa-Job.*conf)/ and not $inc{$_} ) { - unlink $1; + my %inc; + foreach my $jobname ( $cfg->Sections() ) { + next if $jobname eq 'GlobalAffaConfig'; + my %job = getJobConfig($jobname); + if ( not $job{'_SambaValidUser'} and $job{'SambaShare'} eq 'yes' ) { + lg( "Job $jobname: No Valid Users defined. Samba has been access disabled." + ); + } + my $affasmb = "/etc/samba/Affa-Job-$jobname.conf"; + if ( $job{'SambaShare'} eq 'yes' and $job{'_SambaValidUser'} ) { + open( FD, ">$affasmb" ) + or affaErrorExit("Could not create $affasmb"); + print FD "[$jobname]\n"; + print FD "path = $job{'RootDir'}/$jobname\n"; + print FD "comment = Affa archive: $job{'Description'}\n"; + print FD "valid users = $job{'_SambaValidUser'}\n"; + print FD "force user = root\n"; + print FD "read only = yes\n"; + print FD "writable = no\n"; + print FD + "veto files = /.$jobname-setup.ini/,/.doneDates/,/.AFFA3-REPORT/,/.AFFA-REPORT/.AFFA-TRASH/\n\n"; + close(FD); + $inc{"include = $affasmb"} = 1; + } + else { + unlink($affasmb); + } } - print FW "$_\n" if not $_ =~ /(include = \/etc\/samba\/Affa-Job|# Affa archives. Updated on)/; - # ligne d'origine - Bug 9298 - if( $_ =~ /^\[global\]$/i ) { - if ( $_ =~ /^#\[Affa-jobs\]$/i ) { - printf FW "# Affa archives. Updated on " . formatHTime( Date::Format::time2str( "%Y%m%d%H%M", time() ) ) . "\n"; - print FW join( "\n", sort keys %inc ) . "\n"; + open( FD, "<$smbconf" ) or affaErrorExit("Could not open $smbconf"); + open( FW, ">$smbconf.$$" ) + or affaErrorExit("Could not create $smbconf.$$"); + while () { + $_ = trim($_); + if ( $_ =~ /include = (\/etc\/samba\/Affa-Job.*conf)/ + and not $inc{$_} ) + { + unlink $1; + } + print FW "$_\n" + if not $_ + =~ /(include = \/etc\/samba\/Affa-Job|# Affa archives. Updated on)/; + + # ligne d'origine - Bug 9298 - if( $_ =~ /^\[global\]$/i ) { + if ( $_ =~ /^#\[Affa-jobs\]$/i ) { + printf FW "# Affa archives. Updated on " + . formatHTime( + Date::Format::time2str( "%Y%m%d%H%M", time() ) ) + . "\n"; + print FW join( "\n", sort keys %inc ) . "\n"; + } } -} -close(FD); -close(FW); + close(FD); + close(FW); + + rename( "$smbconf.$$", "$smbconf" ) + or affaErrorExit("Moving $smbconf.$$ to $smbconf failed"); -rename( "$smbconf.$$", "$smbconf" ) or affaErrorExit("Moving $smbconf.$$ to $smbconf failed"); #my @cmd = ( $servicecommand, 'smb', 'reload' ); # reetp changed to restart #ExecCmd( @cmd, 0 ); # Reload Samba config -$systemD->{'serviceName'} = 'smbd'; + $systemD->{'serviceName'} = 'smbd'; -my $smbdStatus = ( $systemD->reload() ); # reetp - failure?? + my $smbdStatus = ( $systemD->reload() ); # reetp - failure?? -print "Status $smbdStatus\n"; + print "Status $smbdStatus\n"; } + sub sendErrorMesssage() { return if not $jobname or not $Command; my %job; @@ -3702,9 +3706,9 @@ } return if not $job{'_EmailAddress'}; my $msg = new Mail::Send; - $msg->subject("Error on Affa server $hostname: Job '$jobname' failed."); + $msg->subject("Error on Affa server $SystemName: Job '$jobname' failed."); $msg->to( $job{'_EmailAddress'} ); - $msg->set( "From", "\"Affa Server $hostname\" " ); + $msg->set( "From", "\"Affa Server $SystemName\" " ); my $fh = $msg->open; print $fh "Excerpt from log file $logfile:\n"; @@ -3730,9 +3734,9 @@ if ( not $err ); } my $msg = new Mail::Send; - $msg->subject("Success on Affa server $hostname: Job '$jobname' completed."); + $msg->subject("Success on Affa server $SystemName: Job '$jobname' completed."); $msg->to( $job{'_EmailAddress'} ); - $msg->set( "From", "\"Affa Server $hostname\" " ); + $msg->set( "From", "\"Affa Server $SystemName\" " ); my $fh = $msg->open; print $fh "Affa job '$jobname' successfully completed.\n\n"; print $fh listArchives() . "\n";