Browse Source

Start and stop attachment key owner with chat service

stream-multiview
evgeny 1 week ago
parent
commit
e5a1fc5a48
  1. 12
      src/Makefile.am
  2. 2
      src/chat/chat_channel.c
  3. 2
      src/chat/chat_core.c
  4. 3
      src/utun_instance.c

12
src/Makefile.am

@ -124,6 +124,10 @@ utun_CORE_SOURCES = \
member_files/worker.h \
media_async/media_async.c \
media_async/attachment.c \
media_async/media_crypto.c \
media_async/media_crypto.h \
media_async/encrypted_file.c \
media_async/encrypted_file.h \
media_async/attachment.h \
media_async/voice_file.c \
media_async/voice_file.h \
@ -152,6 +156,8 @@ utun_CORE_SOURCES = \
chat/chat_event.c \
chat/chat_setting.c \
chat/chat_core.c \
chat/chat_attachment.c \
chat/chat_attachment.h \
chat/chat_member.c \
chat/chat_msg.c \
chat/chat_feedback.c \
@ -292,6 +298,10 @@ libutun_a_SOURCES = \
member_files/worker.h \
media_async/media_async.c \
media_async/attachment.c \
media_async/media_crypto.c \
media_async/media_crypto.h \
media_async/encrypted_file.c \
media_async/encrypted_file.h \
media_async/attachment.h \
media_async/voice_file.c \
media_async/voice_file.h \
@ -320,6 +330,8 @@ libutun_a_SOURCES = \
chat/chat_event.c \
chat/chat_setting.c \
chat/chat_core.c \
chat/chat_attachment.c \
chat/chat_attachment.h \
chat/chat_member.c \
chat/chat_msg.c \
chat/chat_feedback.c \

2
src/chat/chat_channel.c

@ -5,6 +5,7 @@
*/
#include "chat_core_priv.h"
#include "chat_attachment.h"
#include "group_avatar.h"
#include "chat_event.h"
#include "chat_feedback.h"
@ -346,6 +347,7 @@ void chat_core_delete_channel(struct UTUN_INSTANCE* inst, const char* ch_id) {
/* 1. отмена медиа-загрузок/релэев/суперузлов канала (держат conn_mgr handle группы) */
media_delivery_cancel_channel(inst, gid);
chat_attachment_delete_channel(inst, ch_id);
member_files_cancel_group(inst, gid);
group_avatar_cancel_group(inst, gid);

2
src/chat/chat_core.c

@ -11,6 +11,7 @@
*/
#include "chat_core_priv.h"
#include "chat_attachment.h"
#include "group_avatar.h"
#include "chat_event.h"
#include "chat_setting.h"
@ -244,6 +245,7 @@ void chat_core_destroy(struct UTUN_INSTANCE* inst) {
struct chat_core_ctx* cc = CC(inst);
if (!cc || !cc->initialized) return;
cc->initialized = 0;
chat_attachment_destroy(inst);
member_sync_destroy(inst); /* Also releases callback lists after partial startup. */
if (cc->db && !cc->shared_db) { sqlite3_close(cc->db); }

3
src/utun_instance.c

@ -18,6 +18,7 @@
#include "conn_mgr.h"
#include "chat/db_sync.h"
#include "chat/chat_core.h"
#include "chat/chat_attachment.h"
#include "chat/chat_sync.h"
#include "chat/chat_headless_control.h"
#include "dm/dm_core.h"
@ -791,6 +792,7 @@ int chat_service_start(struct UTUN_INSTANCE* instance) {
if (chat_core_init(instance, db_file) < 0 || chat_sync_init(instance) < 0 || stream_service_init(instance) < 0) goto fail;
instance->media_async = media_async_create();
if (!instance->media_async || media_delivery_init(instance) < 0) goto fail;
if (chat_attachment_init(instance) < 0) goto fail;
if (member_files_init(instance) < 0 || dm_mailbox_init(instance) < 0 || dm_core_init(instance) < 0 ||
dm_media_init(instance) < 0 || call_init(instance) < 0) goto fail;
chat_media_backfill(instance);
@ -853,6 +855,7 @@ void chat_service_stop(struct UTUN_INSTANCE* instance) {
stream_service_destroy(instance);
chat_media_startup_backfill_destroy(instance);
dm_media_quiesce(instance);
chat_attachment_quiesce(instance);
member_files_quiesce(instance);
media_async_destroy(instance->media_async); instance->media_async = NULL;
member_files_destroy(instance);

Loading…
Cancel
Save