MCPcopy Create free account
hub / github.com/ElyPrismLauncher/Launcher / executeTask

Method executeTask

launcher/net/NetRequest.cpp:71–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71void NetRequest::executeTask()
72{
73 setStatus(tr("Requesting %1").arg(StringUtils::truncateUrlHumanFriendly(m_url, 80)));
74
75 if (getState() == Task::State::AbortedByUser) {
76 qCWarning(logCat) << getUid().toString() << "Attempt to start an aborted Request:" << m_url.toString();
77 emit aborted();
78 emit finished();
79 return;
80 }
81
82 QNetworkRequest request(m_url);
83 m_state = m_sink->init(request);
84 switch (m_state) {
85 case State::Succeeded:
86 qCDebug(logCat) << getUid().toString() << "Request cache hit" << m_url.toString();
87 emit succeeded();
88 emit finished();
89 return;
90 case State::Running:
91 qCDebug(logCat) << getUid().toString() << "Running" << m_url.toString();
92 break;
93 case State::Inactive:
94 case State::Failed:
95 m_failReason = m_sink->failReason();
96 emit failed(m_sink->failReason());
97 emit finished();
98 return;
99 case State::AbortedByUser:
100 emit aborted();
101 emit finished();
102 return;
103 }
104
105#if defined(LAUNCHER_APPLICATION)
106 auto user_agent = APPLICATION->getUserAgent();
107#else
108 auto user_agent = BuildConfig.USER_AGENT;
109#endif
110
111 request.setHeader(QNetworkRequest::UserAgentHeader, user_agent.toUtf8());
112 for (auto& header_proxy : m_headerProxies) {
113 header_proxy->writeHeaders(request);
114 }
115
116#if defined(LAUNCHER_APPLICATION)
117 request.setTransferTimeout(APPLICATION->settings()->get("RequestTimeout").toInt() * 1000);
118#else
119 request.setTransferTimeout();
120#endif
121
122 request.setAttribute(QNetworkRequest::Http2AllowedAttribute, false);
123
124 m_last_progress_time = m_clock.now();
125 m_last_progress_bytes = 0;
126
127 auto rep = getReply(request);
128 if (rep == nullptr) // it failed

Callers

nothing calls this directly

Calls 8

getUserAgentMethod · 0.80
writeHeadersMethod · 0.80
toStringMethod · 0.45
initMethod · 0.45
failReasonMethod · 0.45
getMethod · 0.45
settingsMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected