lilalo

diff l3-agent @ 28:450b6ac9b657

Незначительные исправления:
* Исправлена обработка diff-файлов. Теперь они обрабатываются
в реальном времени
* Указан путь к mywi-client
* Исправлен путь к иконкам google/freebsd/linux
author devi
date Mon Nov 07 12:23:13 2005 +0200 (2005-11-07)
parents 098664cf339c
children f5f07049bd4f
line diff
     1.1 --- a/l3-agent	Mon Nov 07 11:24:49 2005 +0200
     1.2 +++ b/l3-agent	Mon Nov 07 12:23:13 2005 +0200
     1.3 @@ -18,7 +18,7 @@
     1.4  
     1.5  our @Command_Lines;
     1.6  our @Command_Lines_Index;
     1.7 -our @Diffs;
     1.8 +our %Diffs;
     1.9  our %Sessions;
    1.10  
    1.11  our %Commands_Stat;		# Statistics about commands usage
    1.12 @@ -57,6 +57,9 @@
    1.13  		my @files = <$path/$template>;
    1.14  		my $i=0;
    1.15  		for my $file (@files) {
    1.16 +
    1.17 +			next if defined($Diffs{$file});
    1.18 +			
    1.19  			my %diff;
    1.20  			
    1.21  			$diff{"path"}=$path;
    1.22 @@ -98,7 +101,8 @@
    1.23  			$diff{"text"}=$text;
    1.24  			#print "$file loaded ($diff{day})\n";
    1.25  
    1.26 -			push @Diffs, \%diff;
    1.27 +			#push @Diffs, \%diff;
    1.28 +			$Diffs{$file} = \%diff;
    1.29  			$i++;
    1.30  		}
    1.31  	}	
    1.32 @@ -121,7 +125,8 @@
    1.33  
    1.34  	my $min_dt = 10000;
    1.35  
    1.36 -	for my $diff (@Diffs) {
    1.37 +	for my $diff_key (keys %Diffs) {
    1.38 +			my $diff = $Diffs{$diff_key};
    1.39  			# Check here date, time and user
    1.40  			next if ($diff->{"day"} && $cl->{"day"} && ($cl->{"day"} ne $diff->{"day"}));
    1.41  			#next if (!$diff->{"uid"} && $cl->{"euid"} != $diff->{"uid"});
    1.42 @@ -135,7 +140,8 @@
    1.43  				$diff->{"time_range"}=$dt;
    1.44  				$diff->{"bind_to"}=$cl;
    1.45  
    1.46 -				$cl->{"diff"} = $diff->{"index"};
    1.47 +				#$cl->{"diff"} = $diff->{"index"};
    1.48 +				$cl->{"diff"} = $diff_key;
    1.49  				$min_dt = $dt;	
    1.50  			}
    1.51  		
    1.52 @@ -262,7 +268,7 @@
    1.53  						$session{$1} = $2;
    1.54  					}
    1.55  					$local_session_id = $session{"local_session_id"} if $session{"local_session_id"};
    1.56 -					$Sessions{$session_id}=\%session;
    1.57 +					$Sessions{$local_session_id}=\%session;
    1.58  				}
    1.59  
    1.60  				#Загруженную информацию сразу же отправляем в поток
    1.61 @@ -816,7 +822,7 @@
    1.62  		print OUT "</output>\n";
    1.63  		if ($cl->{"diff"}) {
    1.64  			print OUT "<diff>";
    1.65 -				printq(\*OUT,${$Diffs[$cl->{"diff"}]}{"text"});
    1.66 +				printq(\*OUT,${$Diffs{$cl->{"diff"}}}{"text"});
    1.67  			print OUT "</diff>\n";
    1.68  		}
    1.69  		print OUT "</command>\n";
    1.70 @@ -846,9 +852,6 @@
    1.71  
    1.72  sub send_cache
    1.73  {
    1.74 -	`logger "step 0"`;
    1.75 -	`logger "step 1"`;
    1.76 -
    1.77  	# Если в кэше что-то накопилось, 
    1.78  	# попытаемся отправить это на сервер
    1.79  	#
    1.80 @@ -913,9 +916,6 @@
    1.81  	init_variables();
    1.82  	init_config();
    1.83  
    1.84 -	for my $lab_log (split (/\s+/, $Config{"diffs"} || $Config{"input"})) {
    1.85 -		load_diff_files($lab_log);
    1.86 -	}
    1.87  
    1.88  	if ($Config{"mode"} ne "daemon") {
    1.89  
    1.90 @@ -925,6 +925,9 @@
    1.91  	результат выполнения в результриующий файл.
    1.92  	После этого завершить работу.
    1.93  =cut
    1.94 +		for my $lab_log (split (/\s+/, $Config{"diffs"} || $Config{"input"})) {
    1.95 +			load_diff_files($lab_log);
    1.96 +		}
    1.97  		load_command_lines($Config{"input"}, $Config{"input_mask"});
    1.98  		sort_command_lines;
    1.99  		process_command_lines;
   1.100 @@ -970,6 +973,9 @@
   1.101  		while (not $Killed) {
   1.102  			@Command_Lines = ();
   1.103  			@Command_Lines_Index = ();
   1.104 +			for my $lab_log (split (/\s+/, $Config{"diffs"} || $Config{"input"})) {
   1.105 +				load_diff_files($lab_log);
   1.106 +			}
   1.107  			load_cache_stat();
   1.108  			load_command_lines($Config{"input"}, $Config{"input_mask"});
   1.109  			if (@Command_Lines) {