qnetworkrequest.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/network/access/qnetworkrequest.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2class QNetworkRequestPrivate: public QSharedData, public QNetworkHeadersPrivate-
3{-
4public:-
5 static const int maxRedirectCount = 50;-
6 inline QNetworkRequestPrivate()-
7 : priority(QNetworkRequest::NormalPriority)-
8-
9 , sslConfiguration(0)-
10-
11 , maxRedirectsAllowed(maxRedirectCount)-
12 { qRegisterMetaType<QNetworkRequest>(); }-
13 ~QNetworkRequestPrivate()-
14 {-
15-
16 delete sslConfiguration;-
17-
18 }-
19-
20-
21 QNetworkRequestPrivate(const QNetworkRequestPrivate &other)-
22 : QSharedData(other), QNetworkHeadersPrivate(other)-
23 {-
24 url = other.url;-
25 priority = other.priority;-
26 maxRedirectsAllowed = other.maxRedirectsAllowed;-
27-
28 sslConfiguration = 0;-
29 if (other.sslConfiguration)-
30 sslConfiguration = new QSslConfiguration(*other.sslConfiguration);-
31-
32 }-
33-
34 inline bool operator==(const QNetworkRequestPrivate &other) const-
35 {-
36 return url == other.url &&-
37 priority == other.priority &&-
38 rawHeaders == other.rawHeaders &&-
39 attributes == other.attributes &&-
40 maxRedirectsAllowed == other.maxRedirectsAllowed;-
41-
42 }-
43-
44 QUrl url;-
45 QNetworkRequest::Priority priority;-
46-
47 mutable QSslConfiguration *sslConfiguration;-
48-
49 int maxRedirectsAllowed;-
50};-
51-
52-
53-
54-
55-
56-
57-
58QNetworkRequest::QNetworkRequest(const QUrl &url)-
59 : d(new QNetworkRequestPrivate)-
60{-
61 d->url = url;-
62}-
63-
64-
65-
66-
67QNetworkRequest::QNetworkRequest(const QNetworkRequest &other)-
68 : d(other.d)-
69{-
70}-
71-
72-
73-
74-
75QNetworkRequest::~QNetworkRequest()-
76{-
77-
78 d = 0;-
79}-
80-
81-
82-
83-
84-
85-
86-
87bool QNetworkRequest::operator==(const QNetworkRequest &other) const-
88{-
89 return d == other.d || *d == *other.d;-
90}-
91QNetworkRequest &QNetworkRequest::operator=(const QNetworkRequest &other)-
92{-
93 d = other.d;-
94 return *this;-
95}-
96QUrl QNetworkRequest::url() const-
97{-
98 return d->url;-
99}-
100-
101-
102-
103-
104-
105-
106void QNetworkRequest::setUrl(const QUrl &url)-
107{-
108 d->url = url;-
109}-
110QVariant QNetworkRequest::header(KnownHeaders header) const-
111{-
112 return d->cookedHeaders.value(header);-
113}-
114void QNetworkRequest::setHeader(KnownHeaders header, const QVariant &value)-
115{-
116 d->setCookedHeader(header, value);-
117}-
118-
119-
120-
121-
122-
123-
124-
125bool QNetworkRequest::hasRawHeader(const QByteArray &headerName) const-
126{-
127 return d->findRawHeader(headerName) != d->rawHeaders.constEnd();-
128}-
129QByteArray QNetworkRequest::rawHeader(const QByteArray &headerName) const-
130{-
131 QNetworkHeadersPrivate::RawHeadersList::ConstIterator it =-
132 d->findRawHeader(headerName);-
133 if (it != d->rawHeaders.constEnd())-
134 return it->second;-
135 return QByteArray();-
136}-
137-
138-
139-
140-
141-
142-
143-
144QList<QByteArray> QNetworkRequest::rawHeaderList() const-
145{-
146 return d->rawHeadersKeys();-
147}-
148void QNetworkRequest::setRawHeader(const QByteArray &headerName, const QByteArray &headerValue)-
149{-
150 d->setRawHeader(headerName, headerValue);-
151}-
152QVariant QNetworkRequest::attribute(Attribute code, const QVariant &defaultValue) const-
153{-
154 return d->attributes.value(code, defaultValue);-
155}-
156void QNetworkRequest::setAttribute(Attribute code, const QVariant &value)-
157{-
158 if (value.isValid())-
159 d->attributes.insert(code, value);-
160 else-
161 d->attributes.remove(code);-
162}-
163QSslConfiguration QNetworkRequest::sslConfiguration() const-
164{-
165 if (!d->sslConfiguration)-
166 d->sslConfiguration = new QSslConfiguration(QSslConfiguration::defaultConfiguration());-
167 return *d->sslConfiguration;-
168}-
169void QNetworkRequest::setSslConfiguration(const QSslConfiguration &config)-
170{-
171 if (!d->sslConfiguration)-
172 d->sslConfiguration = new QSslConfiguration(config);-
173 else-
174 *d->sslConfiguration = config;-
175}-
176void QNetworkRequest::setOriginatingObject(QObject *object)-
177{-
178 d->originatingObject = object;-
179}-
180QObject *QNetworkRequest::originatingObject() const-
181{-
182 return d->originatingObject.data();-
183}-
184QNetworkRequest::Priority QNetworkRequest::priority() const-
185{-
186 return d->priority;-
187}-
188void QNetworkRequest::setPriority(Priority priority)-
189{-
190 d->priority = priority;-
191}-
192int QNetworkRequest::maximumRedirectsAllowed() const-
193{-
194 return d->maxRedirectsAllowed;-
195}-
196void QNetworkRequest::setMaximumRedirectsAllowed(int maxRedirectsAllowed)-
197{-
198 d->maxRedirectsAllowed = maxRedirectsAllowed;-
199}-
200-
201static QByteArray headerName(QNetworkRequest::KnownHeaders header)-
202{-
203 switch (header) {-
204 case QNetworkRequest::ContentTypeHeader:-
205 return "Content-Type";-
206-
207 case QNetworkRequest::ContentLengthHeader:-
208 return "Content-Length";-
209-
210 case QNetworkRequest::LocationHeader:-
211 return "Location";-
212-
213 case QNetworkRequest::LastModifiedHeader:-
214 return "Last-Modified";-
215-
216 case QNetworkRequest::CookieHeader:-
217 return "Cookie";-
218-
219 case QNetworkRequest::SetCookieHeader:-
220 return "Set-Cookie";-
221-
222 case QNetworkRequest::ContentDispositionHeader:-
223 return "Content-Disposition";-
224-
225 case QNetworkRequest::UserAgentHeader:-
226 return "User-Agent";-
227-
228 case QNetworkRequest::ServerHeader:-
229 return "Server";-
230-
231-
232-
233 }-
234-
235 return QByteArray();-
236}-
237-
238static QByteArray headerValue(QNetworkRequest::KnownHeaders header, const QVariant &value)-
239{-
240 switch (header) {-
241 case
executed 93 times by 4 tests: case QNetworkRequest::ContentTypeHeader:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
QNetworkRequest::ContentTypeHeader:
executed 93 times by 4 tests: case QNetworkRequest::ContentTypeHeader:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
93
242 case
executed 251 times by 5 tests: case QNetworkRequest::ContentLengthHeader:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
QNetworkRequest::ContentLengthHeader:
executed 251 times by 5 tests: case QNetworkRequest::ContentLengthHeader:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
251
243 case
executed 36 times by 2 tests: case QNetworkRequest::ContentDispositionHeader:
Executed by:
  • tst_QNetworkReply
  • tst_Spdy
QNetworkRequest::ContentDispositionHeader:
executed 36 times by 2 tests: case QNetworkRequest::ContentDispositionHeader:
Executed by:
  • tst_QNetworkReply
  • tst_Spdy
36
244 case
executed 1 time by 1 test: case QNetworkRequest::UserAgentHeader:
Executed by:
  • tst_QNetworkReply
QNetworkRequest::UserAgentHeader:
executed 1 time by 1 test: case QNetworkRequest::UserAgentHeader:
Executed by:
  • tst_QNetworkReply
1
245 case
never executed: case QNetworkRequest::ServerHeader:
QNetworkRequest::ServerHeader:
never executed: case QNetworkRequest::ServerHeader:
0
246 return
executed 381 times by 5 tests: return value.toByteArray();
Executed by:
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
value.toByteArray();
executed 381 times by 5 tests: return value.toByteArray();
Executed by:
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
381
247-
248 case
executed 3 times by 1 test: case QNetworkRequest::LocationHeader:
Executed by:
  • tst_qnetworkrequest - unknown status
QNetworkRequest::LocationHeader:
executed 3 times by 1 test: case QNetworkRequest::LocationHeader:
Executed by:
  • tst_qnetworkrequest - unknown status
3
249 switch (value.userType()) {-
250 case
executed 1 time by 1 test: case QMetaType::QUrl:
Executed by:
  • tst_qnetworkrequest - unknown status
QMetaType::QUrl:
executed 1 time by 1 test: case QMetaType::QUrl:
Executed by:
  • tst_qnetworkrequest - unknown status
1
251 return
executed 1 time by 1 test: return value.toUrl().toEncoded();
Executed by:
  • tst_qnetworkrequest - unknown status
value.toUrl().toEncoded();
executed 1 time by 1 test: return value.toUrl().toEncoded();
Executed by:
  • tst_qnetworkrequest - unknown status
1
252-
253 default
executed 2 times by 1 test: default:
Executed by:
  • tst_qnetworkrequest - unknown status
:
executed 2 times by 1 test: default:
Executed by:
  • tst_qnetworkrequest - unknown status
2
254 return
executed 2 times by 1 test: return value.toByteArray();
Executed by:
  • tst_qnetworkrequest - unknown status
value.toByteArray();
executed 2 times by 1 test: return value.toByteArray();
Executed by:
  • tst_qnetworkrequest - unknown status
2
255 }-
256-
257 case
executed 57 times by 3 tests: case QNetworkRequest::LastModifiedHeader:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlStream
  • tst_qnetworkrequest - unknown status
QNetworkRequest::LastModifiedHeader:
executed 57 times by 3 tests: case QNetworkRequest::LastModifiedHeader:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlStream
  • tst_qnetworkrequest - unknown status
57
258 switch (value.userType()) {-
259 case
executed 1 time by 1 test: case QMetaType::QDate:
Executed by:
  • tst_qnetworkrequest - unknown status
QMetaType::QDate:
executed 1 time by 1 test: case QMetaType::QDate:
Executed by:
  • tst_qnetworkrequest - unknown status
1
260 case
executed 56 times by 3 tests: case QMetaType::QDateTime:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlStream
  • tst_qnetworkrequest - unknown status
QMetaType::QDateTime:
executed 56 times by 3 tests: case QMetaType::QDateTime:
Executed by:
  • tst_QNetworkReply
  • tst_QXmlStream
  • tst_qnetworkrequest - unknown status
56
261-
262 return
executed 57 times by 3 tests: return QNetworkHeadersPrivate::toHttpDate(value.toDateTime());
Executed by:
  • tst_QNetworkReply
  • tst_QXmlStream
  • tst_qnetworkrequest - unknown status
QNetworkHeadersPrivate::toHttpDate(value.toDateTime());
executed 57 times by 3 tests: return QNetworkHeadersPrivate::toHttpDate(value.toDateTime());
Executed by:
  • tst_QNetworkReply
  • tst_QXmlStream
  • tst_qnetworkrequest - unknown status
57
263-
264 default
never executed: default:
:
never executed: default:
0
265 return
never executed: return value.toByteArray();
value.toByteArray();
never executed: return value.toByteArray();
0
266 }-
267-
268 case
executed 11 times by 2 tests: case QNetworkRequest::CookieHeader:
Executed by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
QNetworkRequest::CookieHeader:
executed 11 times by 2 tests: case QNetworkRequest::CookieHeader:
Executed by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
{
11
269 QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(value);-
270 if (cookies.isEmpty()
cookies.isEmpty()Description
TRUEnever evaluated
FALSEevaluated 11 times by 2 tests
Evaluated by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
&& value.userType() == qMetaTypeId<QNetworkCookie>()
value.userType...tworkCookie>()Description
TRUEnever evaluated
FALSEnever evaluated
)
0-11
271 cookies << qvariant_cast<QNetworkCookie>(value);
never executed: cookies << qvariant_cast<QNetworkCookie>(value);
0
272-
273 QByteArray result;-
274 bool first = true;-
for (QForeachContainer<typename QtPrivate::remove_reference<decltype(cookies)>::type> _container_((cookies)); _container_.control && _container_.i != _container_.e;
275 ++_container_.i, _container_.control ^= 1)for (const QNetworkCookie &cookie = *_container_.i; _container_.control; _container_.control = 0): qAsConst(cookies)) {-
276 if (!first
!firstDescription
TRUEevaluated 3 times by 2 tests
Evaluated by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
FALSEevaluated 11 times by 2 tests
Evaluated by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
)
3-11
277 result += "; ";
executed 3 times by 2 tests: result += "; ";
Executed by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
3
278 first = false;-
279 result += cookie.toRawForm(QNetworkCookie::NameAndValueOnly);-
280 }
executed 14 times by 2 tests: end of block
Executed by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
14
281 return
executed 11 times by 2 tests: return result;
Executed by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
result;
executed 11 times by 2 tests: return result;
Executed by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
11
282 }-
283-
284 case
executed 3 times by 1 test: case QNetworkRequest::SetCookieHeader:
Executed by:
  • tst_qnetworkrequest - unknown status
QNetworkRequest::SetCookieHeader:
executed 3 times by 1 test: case QNetworkRequest::SetCookieHeader:
Executed by:
  • tst_qnetworkrequest - unknown status
{
3
285 QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(value);-
286 if (cookies.isEmpty()
cookies.isEmpty()Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qnetworkrequest - unknown status
&& value.userType() == qMetaTypeId<QNetworkCookie>()
value.userType...tworkCookie>()Description
TRUEnever evaluated
FALSEnever evaluated
)
0-3
287 cookies << qvariant_cast<QNetworkCookie>(value);
never executed: cookies << qvariant_cast<QNetworkCookie>(value);
0
288-
289 QByteArray result;-
290 bool first = true;-
for (QForeachContainer<typename QtPrivate::remove_reference<decltype(cookies)>::type> _container_((cookies)); _container_.control && _container_.i != _container_.e;
291 ++_container_.i, _container_.control ^= 1)for (const QNetworkCookie &cookie = *_container_.i; _container_.control; _container_.control = 0): qAsConst(cookies)) {-
292 if (!first
!firstDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • tst_qnetworkrequest - unknown status
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qnetworkrequest - unknown status
)
1-3
293 result += ", ";
executed 1 time by 1 test: result += ", ";
Executed by:
  • tst_qnetworkrequest - unknown status
1
294 first = false;-
295 result += cookie.toRawForm(QNetworkCookie::Full);-
296 }
executed 4 times by 1 test: end of block
Executed by:
  • tst_qnetworkrequest - unknown status
4
297 return
executed 3 times by 1 test: return result;
Executed by:
  • tst_qnetworkrequest - unknown status
result;
executed 3 times by 1 test: return result;
Executed by:
  • tst_qnetworkrequest - unknown status
3
298 }-
299 }-
300-
301 return
never executed: return QByteArray();
QByteArray();
never executed: return QByteArray();
0
302}-
303-
304static int parseHeaderName(const QByteArray &headerName)-
305{-
306 if (headerName.isEmpty())-
307 return -1;-
308-
309 switch (tolower(headerName.at(0))) {-
310 case 'c':-
311 if (qstricmp(headerName.constData(), "content-type") == 0)-
312 return QNetworkRequest::ContentTypeHeader;-
313 else if (qstricmp(headerName.constData(), "content-length") == 0)-
314 return QNetworkRequest::ContentLengthHeader;-
315 else if (qstricmp(headerName.constData(), "cookie") == 0)-
316 return QNetworkRequest::CookieHeader;-
317 break;-
318-
319 case 'l':-
320 if (qstricmp(headerName.constData(), "location") == 0)-
321 return QNetworkRequest::LocationHeader;-
322 else if (qstricmp(headerName.constData(), "last-modified") == 0)-
323 return QNetworkRequest::LastModifiedHeader;-
324 break;-
325-
326 case 's':-
327 if (qstricmp(headerName.constData(), "set-cookie") == 0)-
328 return QNetworkRequest::SetCookieHeader;-
329 else if (qstricmp(headerName.constData(), "server") == 0)-
330 return QNetworkRequest::ServerHeader;-
331 break;-
332-
333 case 'u':-
334 if (qstricmp(headerName.constData(), "user-agent") == 0)-
335 return QNetworkRequest::UserAgentHeader;-
336 break;-
337 }-
338-
339 return -1;-
340}-
341-
342static QVariant parseHttpDate(const QByteArray &raw)-
343{-
344 QDateTime dt = QNetworkHeadersPrivate::fromHttpDate(raw);-
345 if (dt.isValid())-
346 return dt;-
347 return QVariant();-
348}-
349-
350static QVariant parseCookieHeader(const QByteArray &raw)-
351{-
352 QList<QNetworkCookie> result;-
353 const QList<QByteArray> cookieList = raw.split(';');-
354 for (QForeachContainer<typename QtPrivate::remove_reference<decltype(cookieList)>::type> _container_((cookieList)); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1)for (const QByteArray &cookie = *_container_.i; _container_.control; _container_.control = 0: cookieList) {-
355 QList<QNetworkCookie> parsed = QNetworkCookie::parseCookies(cookie.trimmed());-
356 if (parsed.count() != 1
parsed.count() != 1Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • tst_qnetworkrequest - unknown status
)
0-3
357 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
358-
359 result += parsed;-
360 }
executed 3 times by 1 test: end of block
Executed by:
  • tst_qnetworkrequest - unknown status
3
361-
362 return
executed 2 times by 1 test: return QVariant::fromValue(result);
Executed by:
  • tst_qnetworkrequest - unknown status
QVariant::fromValue(result);
executed 2 times by 1 test: return QVariant::fromValue(result);
Executed by:
  • tst_qnetworkrequest - unknown status
2
363}-
364-
365static QVariant parseHeaderValue(QNetworkRequest::KnownHeaders header, const QByteArray &value)-
366{-
367-
368 switch (header) {-
369 case QNetworkRequest::UserAgentHeader:-
370 case QNetworkRequest::ServerHeader:-
371 case QNetworkRequest::ContentTypeHeader:-
372-
373 return QString::fromLatin1(value);-
374-
375 case QNetworkRequest::ContentLengthHeader: {-
376 bool ok;-
377 qint64 result = value.trimmed().toLongLong(&ok);-
378 if (ok)-
379 return result;-
380 return QVariant();-
381 }-
382-
383 case QNetworkRequest::LocationHeader: {-
384 QUrl result = QUrl::fromEncoded(value, QUrl::StrictMode);-
385 if (result.isValid() && !result.scheme().isEmpty())-
386 return result;-
387 return QVariant();-
388 }-
389-
390 case QNetworkRequest::LastModifiedHeader:-
391 return parseHttpDate(value);-
392-
393 case QNetworkRequest::CookieHeader:-
394 return parseCookieHeader(value);-
395-
396 case QNetworkRequest::SetCookieHeader:-
397 return QVariant::fromValue(QNetworkCookie::parseCookies(value));-
398-
399 default:-
400 ((!(0)) ? qt_assert("0",__FILE__,899907) : qt_noop());-
401 }-
402 return QVariant();-
403}-
404-
405QNetworkHeadersPrivate::RawHeadersList::ConstIterator-
406QNetworkHeadersPrivate::findRawHeader(const QByteArray &key) const-
407{-
408 RawHeadersList::ConstIterator it = rawHeaders.constBegin();-
409 RawHeadersList::ConstIterator end = rawHeaders.constEnd();-
410 for ( ; it != end; ++it)-
411 if (qstricmp(it->first.constData(), key.constData()) == 0)-
412 return it;-
413-
414 return end;-
415}-
416-
417QNetworkHeadersPrivate::RawHeadersList QNetworkHeadersPrivate::allRawHeaders() const-
418{-
419 return rawHeaders;-
420}-
421-
422QList<QByteArray> QNetworkHeadersPrivate::rawHeadersKeys() const-
423{-
424 QList<QByteArray> result;-
425 result.reserve(rawHeaders.size());-
426 RawHeadersList::ConstIterator it = rawHeaders.constBegin(),-
427 end = rawHeaders.constEnd();-
428 for ( ; it != end; ++it)-
429 result << it->first;-
430-
431 return result;-
432}-
433-
434void QNetworkHeadersPrivate::setRawHeader(const QByteArray &key, const QByteArray &value)-
435{-
436 if (key.isEmpty())-
437-
438 return;-
439-
440 setRawHeaderInternal(key, value);-
441 parseAndSetHeader(key, value);-
442}-
443void QNetworkHeadersPrivate::setAllRawHeaders(const RawHeadersList &list)-
444{-
445 cookedHeaders.clear();-
446 rawHeaders = list;-
447-
448 RawHeadersList::ConstIterator it = rawHeaders.constBegin();-
449 RawHeadersList::ConstIterator end = rawHeaders.constEnd();-
450 for ( ; it != end; ++it)-
451 parseAndSetHeader(it->first, it->second);-
452}-
453-
454void QNetworkHeadersPrivate::setCookedHeader(QNetworkRequest::KnownHeaders header,-
455 const QVariant &value)-
456{-
457 QByteArray name = headerName(header);-
458 if (name.isEmpty()) {-
459-
460 QMessageLogger(__FILE__, 968976, __PRETTY_FUNCTION__).warning("QNetworkRequest::setHeader: invalid header value KnownHeader(%d) received", header);-
461 return;-
462 }-
463-
464 if (value.isNull()) {-
465 setRawHeaderInternal(name, QByteArray());-
466 cookedHeaders.remove(header);-
467 } else {-
468 QByteArray rawValue = headerValue(header, value);-
469 if (rawValue.isEmpty()) {-
470 QMessageLogger(__FILE__, 978986, __PRETTY_FUNCTION__).warning("QNetworkRequest::setHeader: QVariant of type %s cannot be used with header %s",-
471 value.typeName(), name.constData());-
472 return;-
473 }-
474-
475 setRawHeaderInternal(name, rawValue);-
476 cookedHeaders.insert(header, value);-
477 }-
478}-
479-
480void QNetworkHeadersPrivate::setRawHeaderInternal(const QByteArray &key, const QByteArray &value)-
481{-
482 RawHeadersList::Iterator itauto firstEqualsKey = rawHeaders.begin();-
while (it != rawHeaders.end())[&key](const RawHeaderPair &header) {
483 if (return
executed 17730 times by 9 tests: return qstricmp(header.first.constData(), key.constData()) == 0;
Executed by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
executed 17730 times by 9 tests: return qstricmp(header.first.constData(), key.constData()) == 0;
Executed by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
qstricmp(it->header.first.constData(), key.constData()) == 0)
executed 17730 times by 9 tests: return qstricmp(header.first.constData(), key.constData()) == 0;
Executed by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
17730
it =
executed 17730 times by 9 tests: return qstricmp(header.first.constData(), key.constData()) == 0;
Executed by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
executed 17730 times by 9 tests: return qstricmp(header.first.constData(), key.constData()) == 0;
Executed by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
;
executed 17730 times by 9 tests: return qstricmp(header.first.constData(), key.constData()) == 0;
Executed by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
484 };-
485 rawHeaders.erase(it);-
else
++it;
}std::remove_if(rawHeaders.begin(), rawHeaders.end(),
486 firstEqualsKey),-
487 rawHeaders.end());-
488-
489 if (value.isNull()
value.isNull()Description
TRUEevaluated 9 times by 2 tests
Evaluated by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
FALSEevaluated 6148 times by 9 tests
Evaluated by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
)
9-6148
490 return;
executed 9 times by 2 tests: return;
Executed by:
  • tst_QNetworkReply
  • tst_qnetworkrequest - unknown status
9
491-
492 RawHeaderPair pair;-
493 pair.first = key;-
494 pair.second = value;-
495 rawHeaders.append(pair);-
496}
executed 6148 times by 9 tests: end of block
Executed by:
  • tst_QAbstractNetworkCache
  • tst_QNetworkAccessManager_And_QProgressDialog
  • tst_QNetworkDiskCache
  • tst_QNetworkProxyFactory
  • tst_QNetworkReply
  • tst_QXmlInputSource
  • tst_QXmlStream
  • tst_Spdy
  • tst_qnetworkrequest - unknown status
6148
497-
498void QNetworkHeadersPrivate::parseAndSetHeader(const QByteArray &key, const QByteArray &value)-
499{-
500-
501 const int parsedKeyAsInt = parseHeaderName(key);-
502 if (parsedKeyAsInt != -1) {-
503 const QNetworkRequest::KnownHeaders parsedKey-
504 = static_cast<QNetworkRequest::KnownHeaders>(parsedKeyAsInt);-
505 if (value.isNull()) {-
506 cookedHeaders.remove(parsedKey);-
507 } else if (parsedKey == QNetworkRequest::ContentLengthHeader-
508 && cookedHeaders.contains(QNetworkRequest::ContentLengthHeader)) {-
509-
510-
511 } else {-
512 cookedHeaders.insert(parsedKey, parseHeaderValue(parsedKey, value));-
513 }-
514-
515 }-
516}-
517-
518-
519-
520-
521static int name_to_month(const char* month_str)-
522{-
523 switch (month_str[0]) {-
524 case 'J':-
525 switch (month_str[1]) {-
526 case 'a':-
527 return 1;-
528 case 'u':-
529 switch (month_str[2] ) {-
530 case 'n':-
531 return 6;-
532 case 'l':-
533 return 7;-
534 }-
535 }-
536 break;-
537 case 'F':-
538 return 2;-
539 case 'M':-
540 switch (month_str[2] ) {-
541 case 'r':-
542 return 3;-
543 case 'y':-
544 return 5;-
545 }-
546 break;-
547 case 'A':-
548 switch (month_str[1]) {-
549 case 'p':-
550 return 4;-
551 case 'u':-
552 return 8;-
553 }-
554 break;-
555 case 'O':-
556 return 10;-
557 case 'S':-
558 return 9;-
559 case 'N':-
560 return 11;-
561 case 'D':-
562 return 12;-
563 }-
564-
565 return 0;-
566}-
567-
568QDateTime QNetworkHeadersPrivate::fromHttpDate(const QByteArray &value)-
569{-
570-
571-
572-
573-
574-
575-
576 int pos = value.indexOf(',');-
577 QDateTime dt;-
578-
579 if (pos == -1) {-
580-
581 dt = QDateTime::fromString(QString::fromLatin1(value), Qt::TextDate);-
582 } else {-
583-
584-
585 if (pos == 3) {-
586 char month_name[4];-
587 int day, year, hour, minute, second;-
588-
589-
590-
591-
592-
593-
594 if (sscanf(value.constData(), "%*3s, %d %3s %d %d:%d:%d 'GMT'", &day, month_name, &year, &hour, &minute, &second) == 6)-
595-
596 dt = QDateTime(QDate(year, name_to_month(month_name), day), QTime(hour, minute, second));-
597 } else {-
598 QLocale c = QLocale::c();-
599-
600 QString sansWeekday = QString::fromLatin1(value.constData() + pos + 2);-
601-
602 dt = c.toDateTime(sansWeekday, QLatin1String("dd-MMM-yy hh:mm:ss 'GMT'"));-
603 }-
604 }-
605-
606-
607 if (dt.isValid())-
608 dt.setTimeSpec(Qt::UTC);-
609 return dt;-
610}-
611-
612QByteArray QNetworkHeadersPrivate::toHttpDate(const QDateTime &dt)-
613{-
614 return QLocale::c().toString(dt, QLatin1String("ddd, dd MMM yyyy hh:mm:ss 'GMT'"))-
615 .toLatin1();-
616}-
617-
618-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9