Некоторые слова и выражения, употребимые в правилах
#|||
Имя
|
Стековая нотация
|
Комментарий
||
||
IP=
|
( "ip_address" -- flag )
| flag-истина, если клиент соединился с сервером по указанному IP e.g.: IP= 10.0.0.1
||
||
Port=
|
( "port" -- flag )
| flag-истина, если клиент соединился с сервером по указанному порту
||
||
IP:Port=
|
( "ip_address:port" -- flag )
| flag-истина, если клиент соединился с сервером по указанному IP и порту
||
||
PeerIP:Port=
|
( "ip_address:port" -- flag )
| flag-истина, если клиент соединился с указанного IP и порта
||
||
PeerIP=
|
( "ip_address" -- flag )
| flag-истина, если клиент соединился с указанного IP
||
||
PeerPort=
|
( "port" -- flag )
| flag-истина, если клиент соединился с сервером с указанного порта
||
||
PeerIP:Mask=
|
( "ip:mask" -- flag )
| flag-истина, если клиент соединился с сервером с указанного диапазона IP-адресов e.g.: PeerIP:Mask= 10.0.0.0:255.255.255.0
||
||
CLIENT
|
( -- addr u )
|
PeerIP NtoA (ip-адрес клиента в виде строки)
||
||
=~
|
( addr u "mask" -- flag )
| сравнение строки, представленой адресом и длиной, с маской. e.g.: ""URL =~ http://* ""
||
||
~
|
( str "mask" -- flag )
| сравнение по маске со строкой, представленой str
||
||
User
|
( -- addr u )
| возвращает имя пользователя ( u = 0, если имени нет) e.g.: User =~ admin даст true если пользователь admin.
||
||
URL
|
( -- addr u )
| возвращает запрашиваемый клиентом URL (для proxy)
||
||
TARGET-HOST
|
( -- addr u )
| возвращает целевой хост (для proxy)
||
||
IsGroupMember:
|
( "group" -- flag )
| принадлежит ли текущий юзер указанной группе. e.g.: IsGroupMember: "Advanced users"
Должен быть включен http-proxy\plugins\acl
||
||
IsMember
|
( group-a group-u -- flag )
| принадлежит ли текущий юзер указанной группе из списка Eserv/2. e.g.: ""S" MyGroup" IsMember ""
Должен быть включен plugins\groups_e2
||
||
IsMember:
|
( "group" -- flag )
| принадлежит ли текущий юзер указанной группе из списка Eserv/2. e.g.: IsMember: MyGroup
Должен быть включен plugins\groups_e2
||
||
NtIsMemberOf
|
( usera useru groupa groupu -- flag )
| принадлежит ли заданный юзер заданной группе NT e.g.: ""User S" MyGroup" NtIsMemberOf ""
Должен быть включен plugins\auth_lib
||
||
NtIsMemberOf:
|
( usera useru "group" -- flag )
| принадлежит ли заданный юзер заданной группе NT e.g.: User NtIsMemberOf: MyGroup
Должен быть включен plugins\auth_lib
||
||
DayOfWeek:
|
( "n1-n2" -- flag )
| flag=true, если текущий день недели в заданном диапазоне
(воскресенье — 0). e.g.: DayOfWeek: 1-5 ( понедельник-пятница )
||
||
TimeInterval:
|
( "hh:mm-hh:mm" -- flag )
| flag=true, если текущее время суток в заданном интервале. e.g.: TimeInterval: 8:30-17:00
||
||
Time:
|
( "hh:mm" -- flag )
| flag=true, если текущее время суток совпадает с заданным. e.g.: Time: 13:00
||
||
\EOF
|
( -- )
| закончить трансляцию текущего файла (не проверяя остальные правила)
||
||
AND
|
( flag1 flag2 -- flag )
| flag = flag1 AND flag2
Для флагов — логическое И, для чисел — побитовое.
||
||
OR
|
( flag1 flag2 -- flag )
| flag = flag1 OR flag2
Для флагов — логическое ИЛИ, для чисел — побитовое.
||
||
XOR
|
( flag1 flag2 -- flag )
| flag = flag1 XOR flag2
Для флагов — логическое ИсключающееИЛИ, для чисел — побитовое.
||
||
0=
|
( x -- flag )
| возвращает true(-1), если x=0 и false(0), если x<>0
||
||
0<>
|
( x -- flag )
| возвращает true(-1), если x<>0 и false(0), если x=0
||
|#