diff options
author | George Hazan <george.hazan@gmail.com> | 2023-12-01 18:31:36 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2023-12-01 18:31:40 +0300 |
commit | 22fb10cc778884cd1b80ba6231c2ade7cb9ec03c (patch) | |
tree | 28a4ba288ca78b0f554b4f3f6820870ef8a77719 /protocols/ICQ-WIM/src/proto.cpp | |
parent | 1d03e3af5e2b5f1ab80e250b11323a2c27fc1bcf (diff) |
fixes #4005 (ICQ + Newstory: Старые ссылки на файлы нельзя сконвертировать в оффлайн файлы)
Diffstat (limited to 'protocols/ICQ-WIM/src/proto.cpp')
-rw-r--r-- | protocols/ICQ-WIM/src/proto.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/protocols/ICQ-WIM/src/proto.cpp b/protocols/ICQ-WIM/src/proto.cpp index cf5c5763e0..915dbd0832 100644 --- a/protocols/ICQ-WIM/src/proto.cpp +++ b/protocols/ICQ-WIM/src/proto.cpp @@ -237,21 +237,25 @@ void __cdecl CIcqProto::OfflineFileThread(void *pParam) DB::EventInfo dbei(ofd->hDbEvent);
if (m_bOnline && dbei && !strcmp(dbei.szModule, m_szModuleName) && dbei.eventType == EVENTTYPE_FILE) {
DB::FILE_BLOB blob(dbei);
- MCONTACT hContact = db_event_getContact(ofd->hDbEvent);
- if (auto *pFileInfo = RetrieveFileInfo(hContact, fileText2url(blob.getUrl()))) {
- if (!ofd->bCopy) {
- auto *pReq = new AsyncHttpRequest(CONN_NONE, REQUEST_GET, pFileInfo->szUrl, &CIcqProto::OnFileRecv);
- pReq->pUserInfo = ofd;
- pReq->AddHeader("Sec-Fetch-User", "?1");
- pReq->AddHeader("Sec-Fetch-Site", "cross-site");
- pReq->AddHeader("Sec-Fetch-Mode", "navigate");
- Push(pReq);
- return; // ofd is used inside CIcqProto::OnFileRecv, don't remove it
- }
- ofd->wszPath.Empty();
- ofd->wszPath.Append(_A2T(pFileInfo->szUrl));
- ofd->pCallback->Invoke(*ofd);
+ CMStringW wszUrl;
+ if (fileText2url(blob.getUrl(), &wszUrl)) {
+ MCONTACT hContact = db_event_getContact(ofd->hDbEvent);
+ if (auto *pFileInfo = RetrieveFileInfo(hContact, wszUrl)) {
+ if (!ofd->bCopy) {
+ auto *pReq = new AsyncHttpRequest(CONN_NONE, REQUEST_GET, pFileInfo->szUrl, &CIcqProto::OnFileRecv);
+ pReq->pUserInfo = ofd;
+ pReq->AddHeader("Sec-Fetch-User", "?1");
+ pReq->AddHeader("Sec-Fetch-Site", "cross-site");
+ pReq->AddHeader("Sec-Fetch-Mode", "navigate");
+ Push(pReq);
+ return; // ofd is used inside CIcqProto::OnFileRecv, don't remove it
+ }
+
+ ofd->wszPath.Empty();
+ ofd->wszPath.Append(_A2T(pFileInfo->szUrl));
+ ofd->pCallback->Invoke(*ofd);
+ }
}
}
|