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