|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Dmitriy Kyrhlarov 2:5020/400 29 Jan 2002 05:47:40 To : Lev Walkin Subject : Re: sendmail.cf -------------------------------------------------------------------------------- Hi! Lev Walkin wrote: > > ask! Большое спасибо. Теперь у меня начинают появляться вопросы... :-) > > R< $=w > $@ OK > > > Если внутри скобок локальный домен (localhost, или что там в Cw или Fw), > то вернем OK. > Чего-то не пойму. Откуда мы узнали, что в w живет Cw? Hе могу найти в доке... Вот, по аналогии, попробую разобрать кусок живого конфига. По ходу дела -- комментарии с непонятками. Поправь, плз, если налажаю... # handle null input (translate to <@> special case) R$@$@ <@> Если хедер пустой, то запихиваем в имя хоста ($@) значение <@> и довольные выходим. # strip group: syntax (not inside angle brackets!) and trailing semicolon R$*$: $1 <@>mark addresses Для всех элементов $1 -- все, что левее <@> в адресе и пихаем это в левую часть. С чем и выходим. # Каков признак комментария, в данном случае? Все, что не понятно сендмылу и находится справа? Фигня получилась. Правило сработает только на адрес типа Eto YA <@> и вывалится со строкой Eto YA. :-( А где точки с запятой? А как же нормальные адреса типа Eto YA <user@domain.zone>? R$* < $* > $* <@>$: $1 < $2 > $3unmark <addr> Для всех токенов, если есть нечто подобное: <blah1> blah2 <@> Присвоить: $1 -- все, что левее <, $2 -- все, что внутри <>, $3 -- все, что правей > и проверять дальше. # Получается, что $1 -- пустой, $2 -- blah1, $3 -- blah2 <@>. Опять фигня. R@ $* <@>$: @ $1unmark @host:... # Все. Тут я теряюсь. Что такое R@? И что означает вся строка целиком? R$* :: $* <@>$: $1 :: $2unmark node::addr Для всех элементов, где есть ::blah<@> присвоить $1 -- все, что левее ::; $2 -- все, что правее :: перекинуть это в левую часть и продолжить проверку. R:include: $* <@>$: :include: $1unmark :include:... Если есть элемент :include:blah<@> втыкает в начале еще один :include: и продолжает проверку. R$* [ IPv6 $- ] <@>$: $1 [ IPv6 $2 ]unmark IPv6 addr # Опять не понял. [], а должно быть $[ $]. Или это тоже просто текст? Тогда ищем строку [IPv6, ... Все. Дальше не понимаю. R$* : $* [ $* ]$: $1 : $2 [ $3 ] <@>remark if leading colon Это чуть понятней. Если есть : blah [ blah ] то раскидать по переменным $1 : $2 [$3] <@> # Странно, что слева нет проверки на <@> или это избыточно? R$* : $* <@>$: $2strip colon if marked Если есть символы после : -- подставить $2 R$* <@>$: $1unmark Блин. Понял, что всю дорогу ерунду городил... :-( Если начинается с R$* то дальше условий в LHS быть не может. А что тогда <@> означает? R$* ; $1strip trailing semi RHS вообще нету. И как оно работает? R$* < $+ :; > $*$@ $2 :; <@>catch <list:;> R$* < $* ; > $1 < $2 >bogus bracketed semi Все. Чего-то башка в 5 утра вообще не варит... :-( Ох, нелегкая это работа -- из болота тащить бегемота... By. Dmitriy --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/8054be3d2492.html, оценка из 5, голосов 10
|