ghazan,
Спасибо за доверие
К сожалению у меня нет на это достаточно времени.
Вот на допиливание openfire 3.10.3+MirandaNg иногда нахожу
Есть еще несколько вопросов:
1. Предыдущее предложение:
Spoiler
--- Orig/jabber_archive.cpp 2015-07-21 19:55:00.000000000 +0300
+++ Davis\jabber_archive.cpp 2016-05-26 12:03:40.180875000 +0300
@@ -293,11 +270,18 @@
DBEVENTINFO dbei = { sizeof(DBEVENTINFO) };
dbei.eventType = EVENTTYPE_MESSAGE;
dbei.szModule = m_szModuleName;
- dbei.cbBlob = (DWORD)mir_strlen(szEventText);
+ dbei.cbBlob = (DWORD)mir_strlen(szEventText) + 1;
dbei.flags = DBEF_READ + DBEF_UTF + from;
dbei.pBlob = szEventText;
не понравилось что ли?
2. Где-то тут на форуме уже было. Свежеустановленная миранда, которая создает профиль согласно указаниям INI файлов и оттуда же подгружает первоначальные настройки, так и не запрашивает с сервера VCard пользователя.
Карточки других пользователей я при запуске запрашиваю вызовом сервиса WhenWasIt/Birthdays/RefreshDetails из планировщика. А вот собственная подгружается только если открыть "Личные Данные..."
И раз я наладил автовход в конференции с ником, то я тут же обнаружил, что ников у половины юзеров нет именно по вышеприведенной причине.
Вот фикс для этого:
Spoiler
--- Orig/jabber_iqid.cpp 2015-08-28 16:22:40.000000000 +0300
+++ Davis\jabber_iqid.cpp 2016-05-27 11:42:55.587125000 +0300
@@ -193,7 +199,9 @@
QueryPrivacyLists(m_ThreadInfo);
ptrA szServerName(getStringA("LastLoggedServer"));
- if (szServerName == NULL || mir_strcmp(m_ThreadInfo->conn.server, szServerName))
+
+ ptrT FN( getTStringA(NULL, "FullName"));
+ if (szServerName == NULL || mir_strcmp(m_ThreadInfo->conn.server, szServerName) || FN == NULL)
SendGetVcard(m_szJabberJID);
setString("LastLoggedServer", m_ThreadInfo->conn.server);
При подключении к серверу проверяется наличие собственного FullName, если нет - запрос VCard.
UPD: смотрите дальше более элегантный способ