mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
update docs
This commit is contained in:
@@ -1673,7 +1673,7 @@ function csum_udp_fix(raw_ip_header, raw_udp_header, payload)
|
||||
Но если у вас особый случай, например вам нужно сконструировать icmp, то вам придется собирать его по частям и использовать rawsend для отсылки.
|
||||
csum_ip4_fix вам наверняка понадобится.
|
||||
|
||||
### Отсылка пакетов
|
||||
### Прием и отсылка пакетов
|
||||
|
||||
```
|
||||
function rawsend(raw_data, rawsend_opts)
|
||||
@@ -1684,6 +1684,13 @@ function rawsend_dissect(dissect, rawsend_opts, reconstruct_opts)
|
||||
* rawsend_dissect собирает пакет из диссекта и отправляет
|
||||
* dissect представляет собой таблицу, описанную в соответствующем разделе
|
||||
|
||||
```
|
||||
function raw_packet(ctx)
|
||||
```
|
||||
|
||||
LUA функции получают готовый диссект текущего пакета при вызове. raw представление требуется редко, поэтому
|
||||
в целях экономии ресурсов оно не выдается в desync.
|
||||
Его можно получить по запросу через функцию raw_packet.
|
||||
|
||||
### Работа с пейлоадами
|
||||
|
||||
@@ -1721,3 +1728,59 @@ function resolve_range(blob,l7payload_type,marker_list[,strict,zero_based_pos])
|
||||
* resolve_range ресолвит список из ровно 2 маркеров, представляющих собой диапазон внутри пейлоада. Если strict = true, и любой маркер не ресолвится, возвращается nil. Иначе если первый маркер не ресолвится - он заменяется на 0. Если не ресолвится второй маркер - он заменяется на длину пейлоада. Если не ресолвятся оба - возвращается nil.
|
||||
* если задано zero_based_pos=true, все позиции начинаются с 0, иначе с 1, как это принято в LUA.
|
||||
* при невалидных значениях l7payload_type, marker, marker_list, если количество маркеров не равно 2 для resolve_range - вызывается error
|
||||
|
||||
### Управление выполнением инстансов
|
||||
|
||||
```
|
||||
function instance_cutoff(ctx, direction)
|
||||
```
|
||||
|
||||
Добровольное само-отсечение инстанса по выбранному направлению.
|
||||
Инстанс перестает вызываться в рамках текущего потока.
|
||||
* direction = true - исходящее направление
|
||||
* direction = false - входящее направление
|
||||
* direction = nil - оба направления
|
||||
|
||||
```
|
||||
function instance_cutoff(ctx, direction)
|
||||
```
|
||||
|
||||
Аналогично `instance_cutoff`, но от потока отсекается весь профиль.
|
||||
При смене профиля после получения hostname или обнаружения протокола потока lua cutoff сбрасывается,
|
||||
поскольку в новом профиле совершенно другой набор инстансов, которые не просили их отсекать.
|
||||
|
||||
```
|
||||
function execution_plan(ctx)
|
||||
```
|
||||
|
||||
Получить массив информации о всех последующих , еще не выполненных, инстансах текущего профиля,
|
||||
их внутрипрофильных фильтрах и аргументах.
|
||||
|
||||
Содержимое элемента plan
|
||||
| Поле | Тип | Описание |
|
||||
|:------|:----|:---------|
|
||||
| func | string | имя desync функции |
|
||||
| func_n | number | номер инстанса внутри профиля |
|
||||
| func_instance | string | название инстанса | производная имени функции, номера инстанса и номера профиля |
|
||||
| range | table | эффективный диапазон счетчиков `--in-range` или `--out-range` в зависимости от текущего направления |
|
||||
| payload_filter | string | эффективный `--payload-filter` . список названий пейлоадов через запятую |
|
||||
|
||||
range
|
||||
| Поле | Тип | Описание |
|
||||
|:------|:------|:---------|
|
||||
| from | table | позиция нижней границы |
|
||||
| to | table | позиция верхней границы |
|
||||
| upper_cutoff | bool | true = верхняя граница невключительна, false = включительна |
|
||||
|
||||
pos - from,to
|
||||
| Поле | Тип | Описание |
|
||||
|:------|:-------|:---------|
|
||||
| mode | string | режим счетчика - a, x, n, d, b, s, p |
|
||||
| pos | number | значение счетчика |
|
||||
|
||||
```
|
||||
function execution_plan_cancel(ctx)
|
||||
```
|
||||
|
||||
Однократная отмена выполнения всех следующих инстансов внутри профиля.
|
||||
Инстанс, выполняющий отмену, берет на себя координацию дальнейших действий и называется оркестратором.
|
||||
|
||||
Reference in New Issue
Block a user