lilalo

diff l3-backend @ 98:4c02cf4123ee

l3-agent и l3-backend изменены так, что
все записанные команды теперь привязаны к контексту,
заданному в параметре
l3cd
агента

Их XML-представление теперь сохраняется не только в общем
файле backend.xml,
но и в файлах соответствующих контексту l3cd

$Config{backend_datadir}/$l3cd/data.xml

Параметр l3cd (пока что) меняется вручную в конфигурационном
файле агента ~/.l3rc

После того как параметр изменён необходимо перезапустить агент,
отправив ему сигнал HUP
killall -1 l3-agent




ЧТО НУЖНО СДЕЛАТЬ:

== Безопасность ==

* Сделать процедуру залогивинивания и проверки подлинности пользователя
* Ограничить доступ на запись в контекстные каталоги для пользователей

== Смена каталога ==
* Сделать команду l3, которая позволяет изменить и просмотреть
текущий l3-контекст

l3 pwd
l3 cd /devi/netflow
author devi
date Sun Jun 11 22:07:42 2006 +0300 (2006-06-11)
parents 098664cf339c
children 05e99d32f1f5
line diff
     1.1 --- a/l3-backend	Mon Nov 07 11:24:49 2005 +0200
     1.2 +++ b/l3-backend	Sun Jun 11 22:07:42 2006 +0300
     1.3 @@ -91,13 +91,35 @@
     1.4  		# Это наш ответвлённый клиент
     1.5  		close($server);
     1.6  
     1.7 +        my $saved_data = "";
     1.8 +
     1.9  		# Считываем данные и передаём их в точку получения
    1.10  		open(OUT, ">>", $Config{"backend_datafile"});
    1.11  		select OUT; $|=1;
    1.12  		while(<$client>) {
    1.13  			print OUT $_;
    1.14 +            $saved_data .= $_;
    1.15  		}
    1.16  		close(OUT);
    1.17 +
    1.18 +        while ($saved_data =~ m@<(session|command)>(.*)</$1>@sg) {
    1.19 +            my $element_name = $1;
    1.20 +            my $element = $2;
    1.21 +            if ($element =~ m@<l3cd>(.*?)</l3cd>@msg) {
    1.22 +# Обнаружен элемент l3cd
    1.23 +# Информация должна быть сохранена в соответствующий каталог
    1.24 +                my $l3cd = $1;
    1.25 +# Путь l3cd должен быть не пуст, 
    1.26 +# и в нём могут быть только символы латинского алфавита, цифры и знаки _ и -
    1.27 +                if ($l3cd && $l3cd =~ /^[a-zA-Z_\/0-9-]*/) {
    1.28 +                    system("mkdir -p $Config{backend_datadir}/$l3cd");
    1.29 +                    if (open(OUT, ">>", $Config{"backend_datadir"}."/$l3cd/data.xml")) {
    1.30 +                        print OUT "<$element_name>".$element."</$element_name>";
    1.31 +                        close(OUT);
    1.32 +                    };
    1.33 +                }
    1.34 +            }
    1.35 +        }
    1.36  	} 
    1.37  	continue {
    1.38  		# Наш родитель