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:
Evgeny committed 2026-01-20 18:28:25 +03:00
1 parent 50e59bb835
commit fe9eba14cd
4 files changed
+8 -8

No files matched your search

+1 -1
View File
@@ -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);
+2 -3
View File
@@ -33,9 +33,8 @@
Установка подключения для канала (реализщуется в etcp_connections):
когда etcp пытается отправить пакет через линк, то
если в линке не инициализировано подключение и он клиент то он отбрасывает этот пакет и запускает процесс установки соединения.
также процесс установки соединения инициируется при добавлении канала если это client.
когда etcp пытается отправить пакет через линк, то если в линке не инициализировано подключение и он клиент - то он отбрасывает этот пакет и запускает процесс установки соединения.
также процесс установки соединения инициируется при добавлении канала (в etcp_link_new) если это client.
процесс установки соединения:
- отправляем init запрос и выставляем таймаут (сохраняем его в struct ETCP_LINK)
+4 -3
View File
@@ -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");