diff --git a/src/chat/chat_local.h b/src/chat/chat_local.h index 0820a402..64e80159 100644 --- a/src/chat/chat_local.h +++ b/src/chat/chat_local.h @@ -1,6 +1,9 @@ /* Адаптер LAN discovery: готовые invite-ссылки и подписанные адреса известных узлов, без запуска JOIN. * Адреса подтверждаются nonce-ответом только при отсутствии прямого UP и BGP-путей во всех группах. - * Ключи берутся из registry/SQLite и не передаются в открытых объявлениях; NODEINFO не изменяется. */ + * Ключи берутся из registry/SQLite и не передаются в открытых объявлениях; NODEINFO не изменяется. + * Весь API и callbacks работают в uasync-потоке живого instance; stop — до освобождения ядра. + * LOCAL_INVITE передаёт проверенную ссылку обработчику chat_event; получение не запускает JOIN. + * LOCAL_DELIVERY подтверждает доставку ссылки устройству, а не вступление в канал. */ #ifndef CHAT_LOCAL_H #define CHAT_LOCAL_H @@ -16,7 +19,8 @@ int chat_local_start(struct UTUN_INSTANCE* inst); /* Снять подписку и уничтожить транспорт чат-сервиса; NULL/repeat допустимы. */ void chat_local_stop(struct UTUN_INSTANCE* inst); /* Применить local_invites_enabled/local_broadcasts_enabled из chat_setting без рестарта. - * При отсутствии транспорта ничего не делает. Возвращает 0/-1. */ + * Receive проверяется при каждой доставке, broadcasts применяется к транспорту. + * При отсутствии транспорта ничего не делает. Возвращает 0/-1; сохранённые настройки не откатывает. */ int chat_local_apply_settings(struct UTUN_INSTANCE* inst); /* Трамплины uasync. peers получает заимствованный inst; send освобождает u_malloc request. */ void chat_local_peers_trampoline(void* inst);