Update: Build script, ETCP protocol docs, and TUN interface
- Modified build.sh for better compilation flow - Updated etcp.h with connection structures - Refined etcp_protocol.txt documentation - Enhanced tun_if.c implementation
This commit is contained in:
1 parent
50e59bb835
commit
fe9eba14cd
4 files changed
+8
-8
No files matched your search
+1
-1
@@ -124,7 +124,7 @@ struct ETCP_CONN* etcp_connection_create(struct UTUN_INSTANCE* instance);
|
||||
void etcp_connection_close(struct ETCP_CONN* etcp);
|
||||
|
||||
// Обработать входящий пакет (вызывается из etcp_connections)
|
||||
void etcp_conn_input(struct ETCP_CONN* etcp, struct ETCP_DGRAM* pkt);
|
||||
void etcp_conn_input(struct ETCP_DGRAM* pkt);
|
||||
|
||||
// Сброс соединения (переинициализация)
|
||||
void etcp_conn_reset(struct ETCP_CONN* etcp);
|
||||
|
||||
@@ -33,9 +33,8 @@
|
||||
|
||||
Установка подключения для канала (реализщуется в etcp_connections):
|
||||
|
||||
когда etcp пытается отправить пакет через линк, то
|
||||
если в линке не инициализировано подключение и он клиент то он отбрасывает этот пакет и запускает процесс установки соединения.
|
||||
также процесс установки соединения инициируется при добавлении канала если это client.
|
||||
когда etcp пытается отправить пакет через линк, то если в линке не инициализировано подключение и он клиент - то он отбрасывает этот пакет и запускает процесс установки соединения.
|
||||
также процесс установки соединения инициируется при добавлении канала (в etcp_link_new) если это client.
|
||||
|
||||
процесс установки соединения:
|
||||
- отправляем init запрос и выставляем таймаут (сохраняем его в struct ETCP_LINK)
|
||||
|
||||
+4
-3
@@ -291,9 +291,10 @@ static void tun_read_callback(int fd, void* user_arg) {
|
||||
memset(&dest_addr, 0, sizeof(dest_addr));
|
||||
dest_addr.sin_family = AF_INET;
|
||||
dest_addr.sin_addr.s_addr = route.next_hop_ip;
|
||||
if (etcp_connections_send(route.next_hop, buffer, nread, (struct sockaddr*)&dest_addr, sizeof(dest_addr)) < 0) {
|
||||
DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "Failed to send packet via route");
|
||||
}
|
||||
// todo: отправлять в модуль роутинга все входящие пакеты. когда этот модуль будет. модуль роутинга это не роутинг таблица (routing.h)
|
||||
// if (etcp_connections_send(route.next_hop, buffer, nread, (struct sockaddr*)&dest_addr, sizeof(dest_addr)) < 0) {
|
||||
// DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "Failed to send packet via route");
|
||||
// }
|
||||
} else {
|
||||
// Local route - no forwarding needed
|
||||
DEBUG_DEBUG(DEBUG_CATEGORY_ROUTING, "Local packet, no forwarding");
|
||||
|
||||
Reference in new issue
Block a user