Coverage Report

Created: 2026-01-25 07:18

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qtbase/src/network/access/qhttpnetworkheader.cpp
Line
Count
Source
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#include "qhttpnetworkheader_p.h"
6
7
QT_BEGIN_NAMESPACE
8
9
0
QHttpNetworkHeader::~QHttpNetworkHeader()
10
    = default;
11
12
QHttpNetworkHeaderPrivate::QHttpNetworkHeaderPrivate(const QUrl &newUrl)
13
0
    :url(newUrl)
14
0
{
15
0
}
16
17
qint64 QHttpNetworkHeaderPrivate::contentLength() const
18
0
{
19
0
    bool ok = false;
20
    // We are not using the headerField() method here because servers might send us multiple content-length
21
    // headers which is crap (see QTBUG-15311). Therefore just take the first content-length header field.
22
0
    QByteArray value = parser.firstHeaderField("content-length");
23
0
    qint64 length = value.toULongLong(&ok);
24
0
    if (ok)
25
0
        return length;
26
0
    return -1; // the header field is not set
27
0
}
28
29
void QHttpNetworkHeaderPrivate::setContentLength(qint64 length)
30
0
{
31
0
    setHeaderField("Content-Length", QByteArray::number(length));
32
0
}
33
34
QByteArray QHttpNetworkHeaderPrivate::headerField(QByteArrayView name, const QByteArray &defaultValue) const
35
0
{
36
0
    QList<QByteArray> allValues = headerFieldValues(name);
37
0
    if (allValues.isEmpty())
38
0
        return defaultValue;
39
0
    else
40
0
        return allValues.join(", ");
41
0
}
42
43
QList<QByteArray> QHttpNetworkHeaderPrivate::headerFieldValues(QByteArrayView name) const
44
0
{
45
0
    return parser.headerFieldValues(name);
46
0
}
47
48
void QHttpNetworkHeaderPrivate::setHeaderField(const QByteArray &name, const QByteArray &data)
49
0
{
50
0
    parser.setHeaderField(name, data);
51
0
}
52
53
void QHttpNetworkHeaderPrivate::prependHeaderField(const QByteArray &name, const QByteArray &data)
54
0
{
55
0
    parser.prependHeaderField(name, data);
56
0
}
57
58
QHttpHeaders QHttpNetworkHeaderPrivate::headers() const
59
0
{
60
0
    return parser.headers();
61
0
}
62
63
void QHttpNetworkHeaderPrivate::clearHeaders()
64
0
{
65
0
    parser.clearHeaders();
66
0
}
67
68
bool QHttpNetworkHeaderPrivate::operator==(const QHttpNetworkHeaderPrivate &other) const
69
0
{
70
0
   return (url == other.url);
71
0
}
72
73
74
QT_END_NAMESPACE