Skip to content

Commit 5d3c963

Browse files
Merge pull request #30548 from RomanPudashkin/network_manager_crash
[4.6.3] Attempt to fix crash in NetworkManager
2 parents 116debc + ddf564f commit 5d3c963

4 files changed

Lines changed: 26 additions & 5 deletions

File tree

src/framework/network/internal/networkmanager.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ Ret NetworkManager::del(const QUrl& url, IncomingDevice* incomingData, const Req
8181
Ret NetworkManager::execRequest(RequestType requestType, const QUrl& url, IncomingDevice* incomingData, OutgoingDevice* outgoingData,
8282
const RequestHeaders& headers)
8383
{
84+
LOGI() << "Start: " << requestTypeToString(requestType) << ", url: " << url.toString();
85+
8486
if (outgoingData && outgoingData->device()) {
8587
if (!openDevice(outgoingData->device(), QIODevice::ReadOnly)) {
8688
return make_ret(Err::FiledOpenIODeviceRead);
@@ -129,13 +131,19 @@ Ret NetworkManager::execRequest(RequestType requestType, const QUrl& url, Incomi
129131

130132
m_progress.finish(ret);
131133

134+
if (reply) {
135+
reply->disconnect();
136+
}
137+
132138
if (outgoingData && outgoingData->device()) {
133139
closeDevice(outgoingData->device());
134140
}
135141

136142
closeDevice(m_incomingData);
137143
m_incomingData = nullptr;
138144

145+
LOGI() << "Finish: " << requestTypeToString(requestType) << ", url: " << url.toString();
146+
139147
return ret;
140148
}
141149

@@ -307,3 +315,17 @@ Ret NetworkManager::errorFromReply(const QNetworkReply* reply) const
307315

308316
return ret;
309317
}
318+
319+
String NetworkManager::requestTypeToString(RequestType type)
320+
{
321+
switch (type) {
322+
case GET_REQUEST: return u"GET";
323+
case HEAD_REQUEST: return u"HEAD";
324+
case POST_REQUEST: return u"POST";
325+
case PUT_REQUEST: return u"PUT";
326+
case PATCH_REQUEST: return u"PATCH";
327+
case DELETE_REQUEST: return u"DELETE";
328+
}
329+
330+
return String();
331+
}

src/framework/network/internal/networkmanager.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ class NetworkManager : public QObject, public INetworkManager, public Injectable
8484
Ret waitForReplyFinished(QNetworkReply* reply, int timeoutMs);
8585
Ret errorFromReply(const QNetworkReply* reply) const;
8686

87-
private:
87+
static String requestTypeToString(RequestType type);
88+
8889
QNetworkAccessManager* m_manager = nullptr;
8990
IncomingDevice* m_incomingData = nullptr;
9091
QNetworkReply* m_reply = nullptr;

src/musesounds/internal/musesoundscheckupdateservice.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ muse::RetVal<ReleaseInfo> MuseSoundsCheckUpdateService::checkForUpdate()
8383

8484
QBuffer buff;
8585
QUrl url = configuration()->checkForMuseSoundsUpdateUrl();
86-
m_networkManager = networkManagerCreator()->makeNetworkManager();
86+
INetworkManagerPtr networkManager = networkManagerCreator()->makeNetworkManager();
8787

88-
Ret getUpdateInfo = m_networkManager->get(url, &buff);
88+
Ret getUpdateInfo = networkManager->get(url, &buff);
8989

9090
if (!getUpdateInfo) {
9191
LOGE() << getUpdateInfo.toString();

src/musesounds/internal/musesoundscheckupdateservice.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ class MuseSoundsCheckUpdateService : public IMuseSoundsCheckUpdateService, publi
6464

6565
muse::RetVal<muse::update::ReleaseInfo> m_lastCheckResult;
6666
muse::io::path_t m_installatorPath;
67-
68-
muse::network::INetworkManagerPtr m_networkManager;
6967
muse::Progress m_updateProgress;
7068
};
7169
}

0 commit comments

Comments
 (0)