Fixed typos and logic errors

This commit is contained in:
2026-03-24 00:44:52 +03:00
parent 5e387ead32
commit b0a38edaad

View File

@@ -1,6 +1,6 @@
# Internet Protocol over Incidental Medium
**IPoIM** - это средство для туннелирования SOCKS5 соединения через среду передачи, которая не предназначена для туннелирования таких соединений. IPoIM разрабатывается в рассчётом на то, что к нему можно без больших усилий дописывать расширения на языке C.
**IPoIM** - это средство для туннелирования SOCKS5 соединения через среду передачи, которая не предназначена для туннелирования таких соединений. IPoIM разрабатывается в расчёте на то, что к нему можно без больших усилий дописывать расширения на языке C.
## Терминология
@@ -37,7 +37,7 @@
IPoIM реализует функции, которые позволяют расширению общаться с остальным приложением:
- **`void medium_epoll_ctl(int op, int fd, struct epoll_event *ev)`**
- **Что делает:**
- Вызывает `epoll_ctl` для дискриптора epoll, который отвечает за событийный цикл
- Вызывает `epoll_ctl` для дескриптора epoll, который отвечает за событийный цикл
- **Когда вызывать:**
- Когда нужно добавить, модифицировать или удалить описание файлового дескриптора в epoll
- **Заметки:**
@@ -48,27 +48,28 @@ IPoIM реализует функции, которые позволяют ра
- **Когда вызывать:**
- Инициализация расширения
- **Заметки:** нет
- **`void medium_on_recv_data(const void *data, uint32_t size)`**
- **`void medium_on_recv_data(const void *data, int32_t size)`**
- **Что делает:**
- Сообщает IPoIM, что из среды передачи были получены данные
- **Когда вызывать:**
- При получении данных из среды передачи
- **Заметки:**
- No-op, если `data == NULL` или `size == 0`
- No-op, если `data == NULL` или `size <= 0`
- **`void medium_set_ready_to_send(bool state)`**
- **Что делает:**
- Сообщает IPoIM, готово ли расширение к вызову `cbmed_on_send_data(...)`
- **Когда вызывать:**
- При изменении готовности к вызову `cbmed_on_send_data(...)` и при инициализации
- **Заметки:**
- Изначально IPoIM предполагает, что среда передачи недоступна. Поэтому эта функция должна быть вызвана, как только расширение становиться готовым к вызову `cbmed_on_send_data(...)` после инициализации
- **`void medium_set_max_send_size(uint32_t size)`**
- Изначально IPoIM предполагает, что среда передачи недоступна. Поэтому эта функция должна быть вызвана, как только расширение становится готовым к вызову `cbmed_on_send_data(...)` после инициализации
- **`void medium_set_max_send_size(int32_t size)`**
- **Что делает:**
- Сообщает IPoIM, какое максимальное количество байтов можно передать `cbmed_on_send_data(...)`
- **Когда вызывать:**
- При изменении максимального количества байтов `cbmed_on_send_data(...)`
- **Заметки:**
- Изначально IPoIM предполагает, что среда передачи может передать 1024 Б за один вызов `cbmed_on_send_data(...)`
- Не допускается `size <= 0`
### Необходимые колбеки
@@ -85,7 +86,7 @@ IPoIM реализует функции, которые позволяют ра
- `events` - битовая маска событий (см `man epoll_ctl`)
- **Возвращаемое значение:** нет
- **Заметки**: нет
- **`int32_t cbmed_on_send_data(const void *data, uint32_t size)`**
- **`int32_t cbmed_on_send_data(const void *data, int32_t size)`**
- **Когда вызвается:**
- IPoIM хочет отправить данные через среду передачи
- **Желаемый исход:**
@@ -94,8 +95,8 @@ IPoIM реализует функции, которые позволяют ра
- `data` - двоичные данные, которые нужно отправить через среду передачи
- `size` - размер двоичный данных в байтах
- **Возвращаемое значение:**
- В случае успеха колбек должен вернуть `size`
- Если передача провалена, то колбек должен вернуть любое другое значение
- В случае успеха колбек должен вернуть число байтов, ушедших в среду передачи
- Если передача провалена, то колбек должен -1
- **Заметки**:
- Гарантируется `size > 0`
- Гарантируется `size <= max_send_size` (см. `medium_set_max_send_size(...)`)