Fixed typos and logic errors
This commit is contained in:
19
README.md
19
README.md
@@ -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(...)`)
|
||||
|
||||
Reference in New Issue
Block a user