diff --git a/src/Makefile.am b/src/Makefile.am index f70b0c9b..cafbc7cf 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -62,6 +62,8 @@ utun_CORE_SOURCES = \ media_delivery/media_delivery.c \ media_delivery/media_download.c \ media_delivery/media_index.c \ + media_delivery/file_transfer.c \ + media_delivery/file_transfer.h \ media_async/media_async.c \ video/video.c \ transport_layer/dummynet.c \ @@ -167,6 +169,8 @@ libutun_a_SOURCES = \ media_delivery/media_delivery.c \ media_delivery/media_download.c \ media_delivery/media_index.c \ + media_delivery/file_transfer.c \ + media_delivery/file_transfer.h \ media_async/media_async.c \ video/video.c \ transport_layer/dummynet.c \ diff --git a/src/transport_layer/etcp_api.h b/src/transport_layer/etcp_api.h index 772bfc13..a5b9c4c6 100644 --- a/src/transport_layer/etcp_api.h +++ b/src/transport_layer/etcp_api.h @@ -43,7 +43,7 @@ extern "C" { // router: 0x00 DATA, 0x02 NAT, 0x04 TCP_PROXY_SERVER, 0x05 UDP_PROXY, // 0x06 ICMP_PROXY, 0x07 MEDIA_DELIVERY, 0x08 TCP_PROXY_CLIENT, // 0x11 CONN_MGR, 0x32 ADMIN_KEY, 0x33 JOIN, 0x34 DM, -// 0x35 DM_MAILBOX, 0x36 CALL +// 0x35 DM_MAILBOX, 0x36 CALL, 0x37 FILE_TRANSFER, 0x38 DM_MEDIA // // !!! Новый ID: впиши его в нужный реестр выше и убедись, что значение // не занято в том же пространстве. @@ -78,6 +78,8 @@ extern "C" { #define ETCP_RT_ID_DM 0x34 // dm_core — прямой p2p чат #define ETCP_RT_ID_DM_MAILBOX 0x35 // dm_mailbox — offline-хранение #define ETCP_RT_ID_CALL 0x36 // call — P2P аудио-звонок +#define ETCP_RT_ID_FILE_TRANSFER 0x37 // file_transfer — передача неизменяемых файлов +#define ETCP_RT_ID_DM_MEDIA 0x38 // dm_media — custody, location и подтверждения медиа // Connection status events (instance-level callback). // NEW начинает жизнь объекта, UP/DOWN отражают доступность, DELETE завершает её. diff --git a/src/utun_instance.h b/src/utun_instance.h index 70bef9d5..4e7b54fa 100644 --- a/src/utun_instance.h +++ b/src/utun_instance.h @@ -44,6 +44,8 @@ struct chat_sync; struct join_key_entry; /* chat_join.c */ struct dm_state; struct dm_mb_state; +struct dm_media_state; +struct file_transfer; struct call_ctx; /* call/call.c */ struct radio_instance; /* radio/radio.c */ struct radio_headless; /* radio/radio_headless.c */ @@ -224,6 +226,8 @@ struct UTUN_INSTANCE { struct chat_invite_build_req* invite_gui_request; // текущее построение ссылки для GUI struct dm_state* dm; // личные сообщения struct dm_mb_state* dm_mailbox; // хранилище личных сообщений для получателей + struct dm_media_state* dm_media; // собственные файлы и промежуточное ciphertext-хранилище DM + struct file_transfer* file_transfer; // общий движок передачи файлов с CM-владением struct call_ctx* call; // call/call.c — P2P audio call void* call_audio; // call/call_headless.c — audio stream socket struct radio_instance* radio; // radio/radio.c — PTT walkie-talkie (frame cb + counters)