mail.eserv.ruВойти

SomeWordsForRules

support
(v2)
  • v2 support· · Открыта
  • v1 RuvimPinka·

Некоторые слова и выражения, употребимые в правилах


Имя

Стековая нотация

Комментарий

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