Line | Source Code | Coverage |
---|
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | QHttpSocketEngine::QHttpSocketEngine(QObject *parent) | - |
9 | : QAbstractSocketEngine(*new QHttpSocketEnginePrivate, parent) | - |
10 | { | - |
11 | } executed: } Execution Count:17 | 17 |
12 | | - |
13 | QHttpSocketEngine::~QHttpSocketEngine() | - |
14 | { | - |
15 | } | - |
16 | | - |
17 | bool QHttpSocketEngine::initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol) | - |
18 | { | - |
19 | QHttpSocketEnginePrivate * const d = d_func(); | - |
20 | if (type != QAbstractSocket::TcpSocket) partially evaluated: type != QAbstractSocket::TcpSocket no Evaluation Count:0 | yes Evaluation Count:17 |
| 0-17 |
21 | return false; never executed: return false; | 0 |
22 | | - |
23 | setProtocol(protocol); | - |
24 | setSocketType(type); | - |
25 | d->socket = new QTcpSocket(this); | - |
26 | d->reply = new QHttpNetworkReply(QUrl(), this); | - |
27 | | - |
28 | d->socket->setProperty("_q_networkSession", property("_q_networkSession")); | - |
29 | | - |
30 | | - |
31 | | - |
32 | | - |
33 | d->socket->setProxy(QNetworkProxy::NoProxy); | - |
34 | | - |
35 | | - |
36 | connect(d->socket, "2""connected()", | - |
37 | this, "1""slotSocketConnected()", | - |
38 | Qt::DirectConnection); | - |
39 | connect(d->socket, "2""disconnected()", | - |
40 | this, "1""slotSocketDisconnected()", | - |
41 | Qt::DirectConnection); | - |
42 | connect(d->socket, "2""readyRead()", | - |
43 | this, "1""slotSocketReadNotification()", | - |
44 | Qt::DirectConnection); | - |
45 | connect(d->socket, "2""bytesWritten(qint64)", | - |
46 | this, "1""slotSocketBytesWritten()", | - |
47 | Qt::DirectConnection); | - |
48 | connect(d->socket, "2""error(QAbstractSocket::SocketError)", | - |
49 | this, "1""slotSocketError(QAbstractSocket::SocketError)", | - |
50 | Qt::DirectConnection); | - |
51 | connect(d->socket, "2""stateChanged(QAbstractSocket::SocketState)", | - |
52 | this, "1""slotSocketStateChanged(QAbstractSocket::SocketState)", | - |
53 | Qt::DirectConnection); | - |
54 | | - |
55 | return true; executed: return true; Execution Count:17 | 17 |
56 | } | - |
57 | | - |
58 | bool QHttpSocketEngine::initialize(qintptr, QAbstractSocket::SocketState) | - |
59 | { | - |
60 | return false; never executed: return false; | 0 |
61 | } | - |
62 | | - |
63 | void QHttpSocketEngine::setProxy(const QNetworkProxy &proxy) | - |
64 | { | - |
65 | QHttpSocketEnginePrivate * const d = d_func(); | - |
66 | d->proxy = proxy; | - |
67 | QString user = proxy.user(); | - |
68 | if (!user.isEmpty()) partially evaluated: !user.isEmpty() no Evaluation Count:0 | yes Evaluation Count:17 |
| 0-17 |
69 | d->authenticator.setUser(user); never executed: d->authenticator.setUser(user); | 0 |
70 | QString password = proxy.password(); | - |
71 | if (!password.isEmpty()) partially evaluated: !password.isEmpty() no Evaluation Count:0 | yes Evaluation Count:17 |
| 0-17 |
72 | d->authenticator.setPassword(password); never executed: d->authenticator.setPassword(password); | 0 |
73 | } executed: } Execution Count:17 | 17 |
74 | | - |
75 | qintptr QHttpSocketEngine::socketDescriptor() const | - |
76 | { | - |
77 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
78 | return d->socket ? d->socket->socketDescriptor() : 0; executed: return d->socket ? d->socket->socketDescriptor() : 0; Execution Count:32 | 32 |
79 | } | - |
80 | | - |
81 | bool QHttpSocketEngine::isValid() const | - |
82 | { | - |
83 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
84 | return d->socket; executed: return d->socket; Execution Count:368 | 368 |
85 | } | - |
86 | | - |
87 | bool QHttpSocketEngine::connectInternal() | - |
88 | { | - |
89 | QHttpSocketEnginePrivate * const d = d_func(); | - |
90 | | - |
91 | d->credentialsSent = false; | - |
92 | | - |
93 | | - |
94 | if (d->state == Connected) { partially evaluated: d->state == Connected no Evaluation Count:0 | yes Evaluation Count:17 |
| 0-17 |
95 | QMessageLogger("socket/qhttpsocketengine.cpp", 144, __PRETTY_FUNCTION__).warning("QHttpSocketEngine::connectToHost: called when already connected"); | - |
96 | setState(QAbstractSocket::ConnectedState); | - |
97 | return true; never executed: return true; | 0 |
98 | } | - |
99 | | - |
100 | if (d->state == ConnectSent && d->socketState != QAbstractSocket::ConnectedState) partially evaluated: d->state == ConnectSent no Evaluation Count:0 | yes Evaluation Count:17 |
never evaluated: d->socketState != QAbstractSocket::ConnectedState | 0-17 |
101 | setState(QAbstractSocket::UnconnectedState); never executed: setState(QAbstractSocket::UnconnectedState); | 0 |
102 | | - |
103 | | - |
104 | if (d->state == None && d->socket->state() == QAbstractSocket::UnconnectedState) { partially evaluated: d->state == None yes Evaluation Count:17 | no Evaluation Count:0 |
partially evaluated: d->socket->state() == QAbstractSocket::UnconnectedState yes Evaluation Count:17 | no Evaluation Count:0 |
| 0-17 |
105 | setState(QAbstractSocket::ConnectingState); | - |
106 | | - |
107 | d->socket->setReadBufferSize(65536); | - |
108 | d->socket->connectToHost(d->proxy.hostName(), d->proxy.port()); | - |
109 | } executed: } Execution Count:17 | 17 |
110 | | - |
111 | | - |
112 | | - |
113 | if (bytesAvailable()) partially evaluated: bytesAvailable() no Evaluation Count:0 | yes Evaluation Count:17 |
| 0-17 |
114 | slotSocketReadNotification(); never executed: slotSocketReadNotification(); | 0 |
115 | | - |
116 | return d->socketState == QAbstractSocket::ConnectedState; executed: return d->socketState == QAbstractSocket::ConnectedState; Execution Count:17 | 17 |
117 | } | - |
118 | | - |
119 | bool QHttpSocketEngine::connectToHost(const QHostAddress &address, quint16 port) | - |
120 | { | - |
121 | QHttpSocketEnginePrivate * const d = d_func(); | - |
122 | | - |
123 | setPeerAddress(address); | - |
124 | setPeerPort(port); | - |
125 | d->peerName.clear(); | - |
126 | | - |
127 | return connectInternal(); executed: return connectInternal(); Execution Count:6 | 6 |
128 | } | - |
129 | | - |
130 | bool QHttpSocketEngine::connectToHostByName(const QString &hostname, quint16 port) | - |
131 | { | - |
132 | QHttpSocketEnginePrivate * const d = d_func(); | - |
133 | | - |
134 | setPeerAddress(QHostAddress()); | - |
135 | setPeerPort(port); | - |
136 | d->peerName = hostname; | - |
137 | | - |
138 | return connectInternal(); executed: return connectInternal(); Execution Count:11 | 11 |
139 | } | - |
140 | | - |
141 | bool QHttpSocketEngine::bind(const QHostAddress &, quint16) | - |
142 | { | - |
143 | return false; never executed: return false; | 0 |
144 | } | - |
145 | | - |
146 | bool QHttpSocketEngine::listen() | - |
147 | { | - |
148 | return false; never executed: return false; | 0 |
149 | } | - |
150 | | - |
151 | int QHttpSocketEngine::accept() | - |
152 | { | - |
153 | return 0; never executed: return 0; | 0 |
154 | } | - |
155 | | - |
156 | void QHttpSocketEngine::close() | - |
157 | { | - |
158 | QHttpSocketEnginePrivate * const d = d_func(); | - |
159 | if (d->socket) { partially evaluated: d->socket yes Evaluation Count:17 | no Evaluation Count:0 |
| 0-17 |
160 | d->socket->close(); | - |
161 | delete d->socket; | - |
162 | d->socket = 0; | - |
163 | } executed: } Execution Count:17 | 17 |
164 | } executed: } Execution Count:17 | 17 |
165 | | - |
166 | qint64 QHttpSocketEngine::bytesAvailable() const | - |
167 | { | - |
168 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
169 | return d->socket ? d->socket->bytesAvailable() : 0; executed: return d->socket ? d->socket->bytesAvailable() : 0; Execution Count:108 | 108 |
170 | } | - |
171 | | - |
172 | qint64 QHttpSocketEngine::read(char *data, qint64 maxlen) | - |
173 | { | - |
174 | QHttpSocketEnginePrivate * const d = d_func(); | - |
175 | qint64 bytesRead = d->socket->read(data, maxlen); | - |
176 | | - |
177 | if (d->socket->state() == QAbstractSocket::UnconnectedState partially evaluated: d->socket->state() == QAbstractSocket::UnconnectedState no Evaluation Count:0 | yes Evaluation Count:55 |
| 0-55 |
178 | && d->socket->bytesAvailable() == 0) { never evaluated: d->socket->bytesAvailable() == 0 | 0 |
179 | emitReadNotification(); | - |
180 | } | 0 |
181 | | - |
182 | if (bytesRead == -1) { partially evaluated: bytesRead == -1 no Evaluation Count:0 | yes Evaluation Count:55 |
| 0-55 |
183 | | - |
184 | | - |
185 | | - |
186 | close(); | - |
187 | setError(QAbstractSocket::RemoteHostClosedError, | - |
188 | QLatin1String("Remote host closed")); | - |
189 | setState(QAbstractSocket::UnconnectedState); | - |
190 | return -1; never executed: return -1; | 0 |
191 | } | - |
192 | return bytesRead; executed: return bytesRead; Execution Count:55 | 55 |
193 | } | - |
194 | | - |
195 | qint64 QHttpSocketEngine::write(const char *data, qint64 len) | - |
196 | { | - |
197 | QHttpSocketEnginePrivate * const d = d_func(); | - |
198 | return d->socket->write(data, len); executed: return d->socket->write(data, len); Execution Count:58 | 58 |
199 | } | - |
200 | | - |
201 | | - |
202 | | - |
203 | bool QHttpSocketEngine::joinMulticastGroup(const QHostAddress &, | - |
204 | const QNetworkInterface &) | - |
205 | { | - |
206 | setError(QAbstractSocket::UnsupportedSocketOperationError, | - |
207 | QLatin1String("Operation on socket is not supported")); | - |
208 | return false; never executed: return false; | 0 |
209 | } | - |
210 | | - |
211 | bool QHttpSocketEngine::leaveMulticastGroup(const QHostAddress &, | - |
212 | const QNetworkInterface &) | - |
213 | { | - |
214 | setError(QAbstractSocket::UnsupportedSocketOperationError, | - |
215 | QLatin1String("Operation on socket is not supported")); | - |
216 | return false; never executed: return false; | 0 |
217 | } | - |
218 | | - |
219 | QNetworkInterface QHttpSocketEngine::multicastInterface() const | - |
220 | { | - |
221 | return QNetworkInterface(); never executed: return QNetworkInterface(); | 0 |
222 | } | - |
223 | | - |
224 | bool QHttpSocketEngine::setMulticastInterface(const QNetworkInterface &) | - |
225 | { | - |
226 | setError(QAbstractSocket::UnsupportedSocketOperationError, | - |
227 | QLatin1String("Operation on socket is not supported")); | - |
228 | return false; never executed: return false; | 0 |
229 | } | - |
230 | | - |
231 | | - |
232 | qint64 QHttpSocketEngine::readDatagram(char *, qint64, QHostAddress *, | - |
233 | quint16 *) | - |
234 | { | - |
235 | return 0; never executed: return 0; | 0 |
236 | } | - |
237 | | - |
238 | qint64 QHttpSocketEngine::writeDatagram(const char *, qint64, const QHostAddress &, | - |
239 | quint16) | - |
240 | { | - |
241 | return 0; never executed: return 0; | 0 |
242 | } | - |
243 | | - |
244 | bool QHttpSocketEngine::hasPendingDatagrams() const | - |
245 | { | - |
246 | return false; never executed: return false; | 0 |
247 | } | - |
248 | | - |
249 | qint64 QHttpSocketEngine::pendingDatagramSize() const | - |
250 | { | - |
251 | return 0; never executed: return 0; | 0 |
252 | } | - |
253 | | - |
254 | | - |
255 | qint64 QHttpSocketEngine::bytesToWrite() const | - |
256 | { | - |
257 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
258 | if (d->socket) { partially evaluated: d->socket yes Evaluation Count:192 | no Evaluation Count:0 |
| 0-192 |
259 | return d->socket->bytesToWrite(); executed: return d->socket->bytesToWrite(); Execution Count:192 | 192 |
260 | } else { | - |
261 | return 0; never executed: return 0; | 0 |
262 | } | - |
263 | } | - |
264 | | - |
265 | int QHttpSocketEngine::option(SocketOption option) const | - |
266 | { | - |
267 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
268 | if (d->socket) { never evaluated: d->socket | 0 |
269 | | - |
270 | if (option == QAbstractSocketEngine::LowDelayOption) never evaluated: option == QAbstractSocketEngine::LowDelayOption | 0 |
271 | return d->socket->socketOption(QAbstractSocket::LowDelayOption).toInt(); never executed: return d->socket->socketOption(QAbstractSocket::LowDelayOption).toInt(); | 0 |
272 | if (option == QAbstractSocketEngine::KeepAliveOption) never evaluated: option == QAbstractSocketEngine::KeepAliveOption | 0 |
273 | return d->socket->socketOption(QAbstractSocket::KeepAliveOption).toInt(); never executed: return d->socket->socketOption(QAbstractSocket::KeepAliveOption).toInt(); | 0 |
274 | } | 0 |
275 | return -1; never executed: return -1; | 0 |
276 | } | - |
277 | | - |
278 | bool QHttpSocketEngine::setOption(SocketOption option, int value) | - |
279 | { | - |
280 | QHttpSocketEnginePrivate * const d = d_func(); | - |
281 | if (d->socket) { partially evaluated: d->socket yes Evaluation Count:15 | no Evaluation Count:0 |
| 0-15 |
282 | | - |
283 | if (option == QAbstractSocketEngine::LowDelayOption) partially evaluated: option == QAbstractSocketEngine::LowDelayOption no Evaluation Count:0 | yes Evaluation Count:15 |
| 0-15 |
284 | d->socket->setSocketOption(QAbstractSocket::LowDelayOption, value); never executed: d->socket->setSocketOption(QAbstractSocket::LowDelayOption, value); | 0 |
285 | if (option == QAbstractSocketEngine::KeepAliveOption) partially evaluated: option == QAbstractSocketEngine::KeepAliveOption yes Evaluation Count:15 | no Evaluation Count:0 |
| 0-15 |
286 | d->socket->setSocketOption(QAbstractSocket::KeepAliveOption, value); executed: d->socket->setSocketOption(QAbstractSocket::KeepAliveOption, value); Execution Count:15 | 15 |
287 | return true; executed: return true; Execution Count:15 | 15 |
288 | } | - |
289 | return false; never executed: return false; | 0 |
290 | } | - |
291 | | - |
292 | | - |
293 | | - |
294 | | - |
295 | | - |
296 | static int qt_timeout_value(int msecs, int elapsed) | - |
297 | { | - |
298 | if (msecs == -1) never evaluated: msecs == -1 | 0 |
299 | return -1; never executed: return -1; | 0 |
300 | | - |
301 | int timeout = msecs - elapsed; | - |
302 | return timeout < 0 ? 0 : timeout; never executed: return timeout < 0 ? 0 : timeout; | 0 |
303 | } | - |
304 | | - |
305 | bool QHttpSocketEngine::waitForRead(int msecs, bool *timedOut) | - |
306 | { | - |
307 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
308 | | - |
309 | if (!d->socket || d->socket->state() == QAbstractSocket::UnconnectedState) never evaluated: !d->socket never evaluated: d->socket->state() == QAbstractSocket::UnconnectedState | 0 |
310 | return false; never executed: return false; | 0 |
311 | | - |
312 | QElapsedTimer stopWatch; | - |
313 | stopWatch.start(); | - |
314 | | - |
315 | | - |
316 | if (!d->socket->bytesAvailable()) { never evaluated: !d->socket->bytesAvailable() | 0 |
317 | if (!d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) { never evaluated: !d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed())) | 0 |
318 | if (d->socket->state() == QAbstractSocket::UnconnectedState) never evaluated: d->socket->state() == QAbstractSocket::UnconnectedState | 0 |
319 | return true; never executed: return true; | 0 |
320 | setError(d->socket->error(), d->socket->errorString()); | - |
321 | if (timedOut && d->socket->error() == QAbstractSocket::SocketTimeoutError) never evaluated: timedOut never evaluated: d->socket->error() == QAbstractSocket::SocketTimeoutError | 0 |
322 | *timedOut = true; never executed: *timedOut = true; | 0 |
323 | return false; never executed: return false; | 0 |
324 | } | - |
325 | } | 0 |
326 | | - |
327 | | - |
328 | | - |
329 | while (d->state != Connected && d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) { never evaluated: d->state != Connected never evaluated: d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed())) | 0 |
330 | | - |
331 | } | 0 |
332 | | - |
333 | | - |
334 | if (d->state != Connected) { never evaluated: d->state != Connected | 0 |
335 | setError(d->socket->error(), d->socket->errorString()); | - |
336 | if (timedOut && d->socket->error() == QAbstractSocket::SocketTimeoutError) never evaluated: timedOut never evaluated: d->socket->error() == QAbstractSocket::SocketTimeoutError | 0 |
337 | *timedOut = true; never executed: *timedOut = true; | 0 |
338 | return false; never executed: return false; | 0 |
339 | } | - |
340 | return true; never executed: return true; | 0 |
341 | } | - |
342 | | - |
343 | bool QHttpSocketEngine::waitForWrite(int msecs, bool *timedOut) | - |
344 | { | - |
345 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
346 | | - |
347 | | - |
348 | if (d->state == Connected) { never evaluated: d->state == Connected | 0 |
349 | if (d->socket->bytesToWrite()) { never evaluated: d->socket->bytesToWrite() | 0 |
350 | if (!d->socket->waitForBytesWritten(msecs)) { never evaluated: !d->socket->waitForBytesWritten(msecs) | 0 |
351 | if (d->socket->error() == QAbstractSocket::SocketTimeoutError && timedOut) never evaluated: d->socket->error() == QAbstractSocket::SocketTimeoutError never evaluated: timedOut | 0 |
352 | *timedOut = true; never executed: *timedOut = true; | 0 |
353 | return false; never executed: return false; | 0 |
354 | } | - |
355 | } | 0 |
356 | return true; never executed: return true; | 0 |
357 | } | - |
358 | | - |
359 | QElapsedTimer stopWatch; | - |
360 | stopWatch.start(); | - |
361 | | - |
362 | | - |
363 | | - |
364 | | - |
365 | while (d->state != Connected && d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) { never evaluated: d->state != Connected never evaluated: d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed())) | 0 |
366 | | - |
367 | } | 0 |
368 | | - |
369 | | - |
370 | if (d->state != Connected) { never evaluated: d->state != Connected | 0 |
371 | | - |
372 | if (timedOut && d->socket->error() == QAbstractSocket::SocketTimeoutError) never evaluated: timedOut never evaluated: d->socket->error() == QAbstractSocket::SocketTimeoutError | 0 |
373 | *timedOut = true; never executed: *timedOut = true; | 0 |
374 | } | 0 |
375 | | - |
376 | return true; never executed: return true; | 0 |
377 | } | - |
378 | | - |
379 | bool QHttpSocketEngine::waitForReadOrWrite(bool *readyToRead, bool *readyToWrite, | - |
380 | bool checkRead, bool checkWrite, | - |
381 | int msecs, bool *timedOut) | - |
382 | { | - |
383 | (void)checkRead;; | - |
384 | | - |
385 | if (!checkWrite) { never evaluated: !checkWrite | 0 |
386 | | - |
387 | bool canRead = waitForRead(msecs, timedOut); | - |
388 | if (readyToRead) never evaluated: readyToRead | 0 |
389 | *readyToRead = canRead; never executed: *readyToRead = canRead; | 0 |
390 | return canRead; never executed: return canRead; | 0 |
391 | } | - |
392 | | - |
393 | | - |
394 | bool canWrite = waitForWrite(msecs, timedOut); | - |
395 | if (readyToWrite) never evaluated: readyToWrite | 0 |
396 | *readyToWrite = canWrite; never executed: *readyToWrite = canWrite; | 0 |
397 | return canWrite; never executed: return canWrite; | 0 |
398 | } | - |
399 | | - |
400 | bool QHttpSocketEngine::isReadNotificationEnabled() const | - |
401 | { | - |
402 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
403 | return d->readNotificationEnabled; executed: return d->readNotificationEnabled; Execution Count:141 | 141 |
404 | } | - |
405 | | - |
406 | void QHttpSocketEngine::setReadNotificationEnabled(bool enable) | - |
407 | { | - |
408 | QHttpSocketEnginePrivate * const d = d_func(); | - |
409 | if (d->readNotificationEnabled == enable) evaluated: d->readNotificationEnabled == enable yes Evaluation Count:20 | yes Evaluation Count:72 |
| 20-72 |
410 | return; executed: return; Execution Count:20 | 20 |
411 | | - |
412 | d->readNotificationEnabled = enable; | - |
413 | if (enable) { evaluated: enable yes Evaluation Count:36 | yes Evaluation Count:36 |
| 36 |
414 | | - |
415 | if (bytesAvailable()) partially evaluated: bytesAvailable() no Evaluation Count:0 | yes Evaluation Count:36 |
| 0-36 |
416 | slotSocketReadNotification(); never executed: slotSocketReadNotification(); | 0 |
417 | } executed: } Execution Count:36 | 36 |
418 | } executed: } Execution Count:72 | 72 |
419 | | - |
420 | bool QHttpSocketEngine::isWriteNotificationEnabled() const | - |
421 | { | - |
422 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
423 | return d->writeNotificationEnabled; executed: return d->writeNotificationEnabled; Execution Count:83 | 83 |
424 | } | - |
425 | | - |
426 | void QHttpSocketEngine::setWriteNotificationEnabled(bool enable) | - |
427 | { | - |
428 | QHttpSocketEnginePrivate * const d = d_func(); | - |
429 | d->writeNotificationEnabled = enable; | - |
430 | if (enable && d->state == Connected && d->socket->state() == QAbstractSocket::ConnectedState) evaluated: enable yes Evaluation Count:62 | yes Evaluation Count:97 |
evaluated: d->state == Connected yes Evaluation Count:56 | yes Evaluation Count:6 |
partially evaluated: d->socket->state() == QAbstractSocket::ConnectedState yes Evaluation Count:56 | no Evaluation Count:0 |
| 0-97 |
431 | QMetaObject::invokeMethod(this, "writeNotification", Qt::QueuedConnection); executed: QMetaObject::invokeMethod(this, "writeNotification", Qt::QueuedConnection); Execution Count:56 | 56 |
432 | } executed: } Execution Count:159 | 159 |
433 | | - |
434 | bool QHttpSocketEngine::isExceptionNotificationEnabled() const | - |
435 | { | - |
436 | const QHttpSocketEnginePrivate * const d = d_func(); | - |
437 | return d->exceptNotificationEnabled; executed: return d->exceptNotificationEnabled; Execution Count:31 | 31 |
438 | } | - |
439 | | - |
440 | void QHttpSocketEngine::setExceptionNotificationEnabled(bool enable) | - |
441 | { | - |
442 | QHttpSocketEnginePrivate * const d = d_func(); | - |
443 | d->exceptNotificationEnabled = enable; | - |
444 | } executed: } Execution Count:62 | 62 |
445 | | - |
446 | void QHttpSocketEngine::slotSocketConnected() | - |
447 | { | - |
448 | QHttpSocketEnginePrivate * const d = d_func(); | - |
449 | | - |
450 | | - |
451 | const char method[] = "CONNECT "; | - |
452 | QByteArray peerAddress = d->peerName.isEmpty() ? evaluated: d->peerName.isEmpty() yes Evaluation Count:6 | yes Evaluation Count:19 |
| 6-19 |
453 | d->peerAddress.toString().toLatin1() : | - |
454 | QUrl::toAce(d->peerName); | - |
455 | QByteArray path = peerAddress + ':' + QByteArray::number(d->peerPort); | - |
456 | QByteArray data = method; | - |
457 | data += path; | - |
458 | data += " HTTP/1.1\r\n"; | - |
459 | data += "Proxy-Connection: keep-alive\r\n"; | - |
460 | data += "Host: " + peerAddress + "\r\n"; | - |
461 | if (!d->proxy.hasRawHeader("User-Agent")) evaluated: !d->proxy.hasRawHeader("User-Agent") yes Evaluation Count:13 | yes Evaluation Count:12 |
| 12-13 |
462 | data += "User-Agent: Mozilla/5.0\r\n"; executed: data += "User-Agent: Mozilla/5.0\r\n"; Execution Count:13 | 13 |
463 | for (QForeachContainer<__typeof__(d->proxy.rawHeaderList())> _container_(d->proxy.rawHeaderList()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QByteArray &header = *_container_.i;; __extension__ ({--_container_.brk; break;})) { | - |
464 | data += header + ": " + d->proxy.rawHeader(header) + "\r\n"; | - |
465 | } executed: } Execution Count:12 | 12 |
466 | QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(d->authenticator); | - |
467 | | - |
468 | if (priv && priv->method != QAuthenticatorPrivate::None) { evaluated: priv yes Evaluation Count:8 | yes Evaluation Count:17 |
partially evaluated: priv->method != QAuthenticatorPrivate::None yes Evaluation Count:8 | no Evaluation Count:0 |
| 0-17 |
469 | d->credentialsSent = true; | - |
470 | data += "Proxy-Authorization: " + priv->calculateResponse(method, path); | - |
471 | data += "\r\n"; | - |
472 | } executed: } Execution Count:8 | 8 |
473 | data += "\r\n"; | - |
474 | | - |
475 | | - |
476 | | - |
477 | d->socket->write(data); | - |
478 | d->state = ConnectSent; | - |
479 | } executed: } Execution Count:25 | 25 |
480 | | - |
481 | void QHttpSocketEngine::slotSocketDisconnected() | - |
482 | { | - |
483 | } | - |
484 | | - |
485 | void QHttpSocketEngine::slotSocketReadNotification() | - |
486 | { | - |
487 | QHttpSocketEnginePrivate * const d = d_func(); | - |
488 | if (d->state != Connected && d->socket->bytesAvailable() == 0) evaluated: d->state != Connected yes Evaluation Count:25 | yes Evaluation Count:55 |
partially evaluated: d->socket->bytesAvailable() == 0 no Evaluation Count:0 | yes Evaluation Count:25 |
| 0-55 |
489 | return; | 0 |
490 | | - |
491 | if (d->state == Connected) { evaluated: d->state == Connected yes Evaluation Count:55 | yes Evaluation Count:25 |
| 25-55 |
492 | | - |
493 | if (d->readNotificationEnabled) partially evaluated: d->readNotificationEnabled yes Evaluation Count:55 | no Evaluation Count:0 |
| 0-55 |
494 | emitReadNotification(); executed: emitReadNotification(); Execution Count:55 | 55 |
495 | return; executed: return; Execution Count:55 | 55 |
496 | } | - |
497 | | - |
498 | readResponseContent: code before this statement executed: readResponseContent: Execution Count:25 | 25 |
499 | if (d->state == ReadResponseContent) { partially evaluated: d->state == ReadResponseContent no Evaluation Count:0 | yes Evaluation Count:25 |
| 0-25 |
500 | char dummybuffer[4096]; | - |
501 | while (d->pendingResponseData) { never evaluated: d->pendingResponseData | 0 |
502 | int read = d->socket->read(dummybuffer, qMin(sizeof(dummybuffer), (size_t)d->pendingResponseData)); | - |
503 | if (read >= 0) never evaluated: read >= 0 | 0 |
504 | dummybuffer[read] = 0; never executed: dummybuffer[read] = 0; | 0 |
505 | | - |
506 | if (read == 0) never evaluated: read == 0 | 0 |
507 | return; | 0 |
508 | if (read == -1) { never evaluated: read == -1 | 0 |
509 | d->socket->disconnectFromHost(); | - |
510 | emitWriteNotification(); | - |
511 | return; | 0 |
512 | } | - |
513 | d->pendingResponseData -= read; | - |
514 | } | 0 |
515 | if (d->pendingResponseData > 0) never evaluated: d->pendingResponseData > 0 | 0 |
516 | return; | 0 |
517 | d->state = SendAuthentication; | - |
518 | slotSocketConnected(); | - |
519 | return; | 0 |
520 | } | - |
521 | | - |
522 | bool ok = true; | - |
523 | if (d->reply->d_func()->state == QHttpNetworkReplyPrivate::NothingDoneState) partially evaluated: d->reply->d_func()->state == QHttpNetworkReplyPrivate::NothingDoneState yes Evaluation Count:25 | no Evaluation Count:0 |
| 0-25 |
524 | d->reply->d_func()->state = QHttpNetworkReplyPrivate::ReadingStatusState; executed: d->reply->d_func()->state = QHttpNetworkReplyPrivate::ReadingStatusState; Execution Count:25 | 25 |
525 | if (d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingStatusState) { partially evaluated: d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingStatusState yes Evaluation Count:25 | no Evaluation Count:0 |
| 0-25 |
526 | ok = d->reply->d_func()->readStatus(d->socket) != -1; | - |
527 | if (ok && d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingStatusState) partially evaluated: ok yes Evaluation Count:25 | no Evaluation Count:0 |
partially evaluated: d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingStatusState no Evaluation Count:0 | yes Evaluation Count:25 |
| 0-25 |
528 | return; | 0 |
529 | } executed: } Execution Count:25 | 25 |
530 | if (ok && d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingHeaderState) { partially evaluated: ok yes Evaluation Count:25 | no Evaluation Count:0 |
partially evaluated: d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingHeaderState yes Evaluation Count:25 | no Evaluation Count:0 |
| 0-25 |
531 | ok = d->reply->d_func()->readHeader(d->socket) != -1; | - |
532 | if (ok && d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingHeaderState) partially evaluated: ok yes Evaluation Count:25 | no Evaluation Count:0 |
partially evaluated: d->reply->d_func()->state == QHttpNetworkReplyPrivate::ReadingHeaderState no Evaluation Count:0 | yes Evaluation Count:25 |
| 0-25 |
533 | return; | 0 |
534 | } executed: } Execution Count:25 | 25 |
535 | if (!ok) { partially evaluated: !ok no Evaluation Count:0 | yes Evaluation Count:25 |
| 0-25 |
536 | | - |
537 | d->socket->close(); | - |
538 | setState(QAbstractSocket::UnconnectedState); | - |
539 | setError(QAbstractSocket::ProxyProtocolError, tr("Did not receive HTTP response from proxy")); | - |
540 | emitConnectionNotification(); | - |
541 | return; | 0 |
542 | } | - |
543 | | - |
544 | int statusCode = d->reply->statusCode(); | - |
545 | QAuthenticatorPrivate *priv = 0; | - |
546 | if (statusCode == 200) { evaluated: statusCode == 200 yes Evaluation Count:15 | yes Evaluation Count:10 |
| 10-15 |
547 | d->state = Connected; | - |
548 | setLocalAddress(d->socket->localAddress()); | - |
549 | setLocalPort(d->socket->localPort()); | - |
550 | setState(QAbstractSocket::ConnectedState); | - |
551 | d->authenticator.detach(); | - |
552 | priv = QAuthenticatorPrivate::getPrivate(d->authenticator); | - |
553 | priv->hasFailed = false; | - |
554 | } else if (statusCode == 407) { partially evaluated: statusCode == 407 yes Evaluation Count:10 | no Evaluation Count:0 |
executed: } Execution Count:15 | 0-15 |
555 | if (d->credentialsSent) { evaluated: d->credentialsSent yes Evaluation Count:2 | yes Evaluation Count:8 |
| 2-8 |
556 | | - |
557 | d->authenticator = QAuthenticator(); | - |
558 | d->authenticator.detach(); | - |
559 | priv = QAuthenticatorPrivate::getPrivate(d->authenticator); | - |
560 | priv->hasFailed = true; | - |
561 | } executed: } Execution Count:2 | 2 |
562 | else if (d->authenticator.isNull()) partially evaluated: d->authenticator.isNull() yes Evaluation Count:8 | no Evaluation Count:0 |
| 0-8 |
563 | d->authenticator.detach(); executed: d->authenticator.detach(); Execution Count:8 | 8 |
564 | priv = QAuthenticatorPrivate::getPrivate(d->authenticator); | - |
565 | | - |
566 | priv->parseHttpResponse(d->reply->header(), true); | - |
567 | | - |
568 | if (priv->phase == QAuthenticatorPrivate::Invalid) { partially evaluated: priv->phase == QAuthenticatorPrivate::Invalid no Evaluation Count:0 | yes Evaluation Count:10 |
| 0-10 |
569 | | - |
570 | d->socket->close(); | - |
571 | setState(QAbstractSocket::UnconnectedState); | - |
572 | setError(QAbstractSocket::ProxyProtocolError, tr("Error parsing authentication request from proxy")); | - |
573 | emitConnectionNotification(); | - |
574 | return; | 0 |
575 | } | - |
576 | | - |
577 | bool willClose; | - |
578 | QByteArray proxyConnectionHeader = d->reply->headerField("Proxy-Connection"); | - |
579 | | - |
580 | | - |
581 | if (proxyConnectionHeader.isEmpty()) partially evaluated: proxyConnectionHeader.isEmpty() no Evaluation Count:0 | yes Evaluation Count:10 |
| 0-10 |
582 | proxyConnectionHeader = d->reply->headerField("Connection"); never executed: proxyConnectionHeader = d->reply->headerField("Connection"); | 0 |
583 | proxyConnectionHeader = proxyConnectionHeader.toLower(); | - |
584 | if (proxyConnectionHeader == "close") { partially evaluated: proxyConnectionHeader == "close" yes Evaluation Count:10 | no Evaluation Count:0 |
| 0-10 |
585 | willClose = true; | - |
586 | } else if (proxyConnectionHeader == "keep-alive") { executed: } Execution Count:10 never evaluated: proxyConnectionHeader == "keep-alive" | 0-10 |
587 | willClose = false; | - |
588 | } else { | 0 |
589 | | - |
590 | | - |
591 | | - |
592 | willClose = (d->reply->majorVersion() * 0x100 + d->reply->minorVersion()) <= 0x0100; | - |
593 | } | 0 |
594 | | - |
595 | if (willClose) { partially evaluated: willClose yes Evaluation Count:10 | no Evaluation Count:0 |
| 0-10 |
596 | | - |
597 | | - |
598 | d->socket->disconnectFromHost(); | - |
599 | d->socket->readAll(); | - |
600 | | - |
601 | delete d->reply; | - |
602 | d->reply = new QHttpNetworkReply; | - |
603 | } executed: } Execution Count:10 | 10 |
604 | | - |
605 | if (priv->phase == QAuthenticatorPrivate::Done) partially evaluated: priv->phase == QAuthenticatorPrivate::Done yes Evaluation Count:10 | no Evaluation Count:0 |
| 0-10 |
606 | proxyAuthenticationRequired(d->proxy, &d->authenticator); executed: proxyAuthenticationRequired(d->proxy, &d->authenticator); Execution Count:10 | 10 |
607 | | - |
608 | if (priv->phase == QAuthenticatorPrivate::Done) { evaluated: priv->phase == QAuthenticatorPrivate::Done yes Evaluation Count:2 | yes Evaluation Count:8 |
| 2-8 |
609 | setError(QAbstractSocket::ProxyAuthenticationRequiredError, tr("Authentication required")); | - |
610 | d->socket->disconnectFromHost(); | - |
611 | } else { executed: } Execution Count:2 | 2 |
612 | | - |
613 | d->state = SendAuthentication; | - |
614 | if (willClose) { partially evaluated: willClose yes Evaluation Count:8 | no Evaluation Count:0 |
| 0-8 |
615 | d->socket->connectToHost(d->proxy.hostName(), d->proxy.port()); | - |
616 | } else { executed: } Execution Count:8 | 8 |
617 | bool ok; | - |
618 | int contentLength = d->reply->headerField("Content-Length").toInt(&ok); | - |
619 | if (ok && contentLength > 0) { never evaluated: contentLength > 0 | 0 |
620 | d->state = ReadResponseContent; | - |
621 | d->pendingResponseData = contentLength; | - |
622 | goto readResponseContent; never executed: goto readResponseContent; | 0 |
623 | } else { | - |
624 | d->state = SendAuthentication; | - |
625 | slotSocketConnected(); | - |
626 | } | 0 |
627 | } | - |
628 | return; executed: return; Execution Count:8 | 8 |
629 | } | - |
630 | } else { | - |
631 | d->socket->close(); | - |
632 | setState(QAbstractSocket::UnconnectedState); | - |
633 | if (statusCode == 403 || statusCode == 405) { never evaluated: statusCode == 403 never evaluated: statusCode == 405 | 0 |
634 | | - |
635 | | - |
636 | setError(QAbstractSocket::SocketAccessError, tr("Proxy denied connection")); | - |
637 | } else if (statusCode == 404) { never evaluated: statusCode == 404 | 0 |
638 | | - |
639 | setError(QAbstractSocket::HostNotFoundError, QAbstractSocket::tr("Host not found")); | - |
640 | } else if (statusCode == 503) { never evaluated: statusCode == 503 | 0 |
641 | | - |
642 | setError(QAbstractSocket::ConnectionRefusedError, QAbstractSocket::tr("Connection refused")); | - |
643 | } else { | 0 |
644 | | - |
645 | | - |
646 | setError(QAbstractSocket::ProxyProtocolError, tr("Error communicating with HTTP proxy")); | - |
647 | } | 0 |
648 | } | - |
649 | | - |
650 | | - |
651 | emitConnectionNotification(); | - |
652 | } executed: } Execution Count:17 | 17 |
653 | | - |
654 | void QHttpSocketEngine::slotSocketBytesWritten() | - |
655 | { | - |
656 | QHttpSocketEnginePrivate * const d = d_func(); | - |
657 | if (d->state == Connected && d->writeNotificationEnabled) evaluated: d->state == Connected yes Evaluation Count:35 | yes Evaluation Count:25 |
partially evaluated: d->writeNotificationEnabled yes Evaluation Count:35 | no Evaluation Count:0 |
| 0-35 |
658 | emitWriteNotification(); executed: emitWriteNotification(); Execution Count:35 | 35 |
659 | } executed: } Execution Count:60 | 60 |
660 | | - |
661 | void QHttpSocketEngine::slotSocketError(QAbstractSocket::SocketError error) | - |
662 | { | - |
663 | QHttpSocketEnginePrivate * const d = d_func(); | - |
664 | | - |
665 | if (d->state != Connected) { partially evaluated: d->state != Connected no Evaluation Count:0 | yes Evaluation Count:6 |
| 0-6 |
666 | | - |
667 | if (error == QAbstractSocket::HostNotFoundError) never evaluated: error == QAbstractSocket::HostNotFoundError | 0 |
668 | setError(QAbstractSocket::ProxyNotFoundError, tr("Proxy server not found")); never executed: setError(QAbstractSocket::ProxyNotFoundError, tr("Proxy server not found")); | 0 |
669 | else if (error == QAbstractSocket::ConnectionRefusedError) never evaluated: error == QAbstractSocket::ConnectionRefusedError | 0 |
670 | setError(QAbstractSocket::ProxyConnectionRefusedError, tr("Proxy connection refused")); never executed: setError(QAbstractSocket::ProxyConnectionRefusedError, tr("Proxy connection refused")); | 0 |
671 | else if (error == QAbstractSocket::SocketTimeoutError) never evaluated: error == QAbstractSocket::SocketTimeoutError | 0 |
672 | setError(QAbstractSocket::ProxyConnectionTimeoutError, tr("Proxy server connection timed out")); never executed: setError(QAbstractSocket::ProxyConnectionTimeoutError, tr("Proxy server connection timed out")); | 0 |
673 | else if (error == QAbstractSocket::RemoteHostClosedError) never evaluated: error == QAbstractSocket::RemoteHostClosedError | 0 |
674 | setError(QAbstractSocket::ProxyConnectionClosedError, tr("Proxy connection closed prematurely")); never executed: setError(QAbstractSocket::ProxyConnectionClosedError, tr("Proxy connection closed prematurely")); | 0 |
675 | else | - |
676 | setError(error, d->socket->errorString()); never executed: setError(error, d->socket->errorString()); | 0 |
677 | emitConnectionNotification(); | - |
678 | return; | 0 |
679 | } | - |
680 | | - |
681 | | - |
682 | if (error == QAbstractSocket::SocketTimeoutError) partially evaluated: error == QAbstractSocket::SocketTimeoutError no Evaluation Count:0 | yes Evaluation Count:6 |
| 0-6 |
683 | return; | 0 |
684 | | - |
685 | d->state = None; | - |
686 | setError(error, d->socket->errorString()); | - |
687 | if (error != QAbstractSocket::RemoteHostClosedError) partially evaluated: error != QAbstractSocket::RemoteHostClosedError no Evaluation Count:0 | yes Evaluation Count:6 |
| 0-6 |
688 | QMessageLogger("socket/qhttpsocketengine.cpp", 737, __PRETTY_FUNCTION__).debug() << "QHttpSocketEngine::slotSocketError: got weird error =" << error; never executed: QMessageLogger("socket/qhttpsocketengine.cpp", 737, __PRETTY_FUNCTION__).debug() << "QHttpSocketEngine::slotSocketError: got weird error =" << error; | 0 |
689 | | - |
690 | emitReadNotification(); | - |
691 | } executed: } Execution Count:6 | 6 |
692 | | - |
693 | void QHttpSocketEngine::slotSocketStateChanged(QAbstractSocket::SocketState state) | - |
694 | { | - |
695 | (void)state;; | - |
696 | } executed: } Execution Count:125 | 125 |
697 | | - |
698 | void QHttpSocketEngine::emitPendingReadNotification() | - |
699 | { | - |
700 | QHttpSocketEnginePrivate * const d = d_func(); | - |
701 | d->readNotificationPending = false; | - |
702 | if (d->readNotificationEnabled) partially evaluated: d->readNotificationEnabled yes Evaluation Count:55 | no Evaluation Count:0 |
| 0-55 |
703 | readNotification(); executed: readNotification(); Execution Count:55 | 55 |
704 | } executed: } Execution Count:55 | 55 |
705 | | - |
706 | void QHttpSocketEngine::emitPendingWriteNotification() | - |
707 | { | - |
708 | QHttpSocketEnginePrivate * const d = d_func(); | - |
709 | d->writeNotificationPending = false; | - |
710 | if (d->writeNotificationEnabled) partially evaluated: d->writeNotificationEnabled yes Evaluation Count:35 | no Evaluation Count:0 |
| 0-35 |
711 | writeNotification(); executed: writeNotification(); Execution Count:35 | 35 |
712 | } executed: } Execution Count:35 | 35 |
713 | | - |
714 | void QHttpSocketEngine::emitPendingConnectionNotification() | - |
715 | { | - |
716 | QHttpSocketEnginePrivate * const d = d_func(); | - |
717 | d->connectionNotificationPending = false; | - |
718 | connectionNotification(); | - |
719 | } executed: } Execution Count:17 | 17 |
720 | | - |
721 | void QHttpSocketEngine::emitReadNotification() | - |
722 | { | - |
723 | QHttpSocketEnginePrivate * const d = d_func(); | - |
724 | d->readNotificationActivated = true; | - |
725 | | - |
726 | | - |
727 | | - |
728 | if ((d->readNotificationEnabled && !d->readNotificationPending) || d->connectionNotificationPending) { partially evaluated: d->readNotificationEnabled yes Evaluation Count:61 | no Evaluation Count:0 |
partially evaluated: !d->readNotificationPending yes Evaluation Count:61 | no Evaluation Count:0 |
never evaluated: d->connectionNotificationPending | 0-61 |
729 | d->readNotificationPending = true; | - |
730 | QMetaObject::invokeMethod(this, "emitPendingReadNotification", Qt::QueuedConnection); | - |
731 | } executed: } Execution Count:61 | 61 |
732 | } executed: } Execution Count:61 | 61 |
733 | | - |
734 | void QHttpSocketEngine::emitWriteNotification() | - |
735 | { | - |
736 | QHttpSocketEnginePrivate * const d = d_func(); | - |
737 | d->writeNotificationActivated = true; | - |
738 | if (d->writeNotificationEnabled && !d->writeNotificationPending) { partially evaluated: d->writeNotificationEnabled yes Evaluation Count:35 | no Evaluation Count:0 |
partially evaluated: !d->writeNotificationPending yes Evaluation Count:35 | no Evaluation Count:0 |
| 0-35 |
739 | d->writeNotificationPending = true; | - |
740 | QMetaObject::invokeMethod(this, "emitPendingWriteNotification", Qt::QueuedConnection); | - |
741 | } executed: } Execution Count:35 | 35 |
742 | } executed: } Execution Count:35 | 35 |
743 | | - |
744 | void QHttpSocketEngine::emitConnectionNotification() | - |
745 | { | - |
746 | QHttpSocketEnginePrivate * const d = d_func(); | - |
747 | if (!d->connectionNotificationPending) { partially evaluated: !d->connectionNotificationPending yes Evaluation Count:17 | no Evaluation Count:0 |
| 0-17 |
748 | d->connectionNotificationPending = true; | - |
749 | QMetaObject::invokeMethod(this, "emitPendingConnectionNotification", Qt::QueuedConnection); | - |
750 | } executed: } Execution Count:17 | 17 |
751 | } executed: } Execution Count:17 | 17 |
752 | | - |
753 | QHttpSocketEnginePrivate::QHttpSocketEnginePrivate() | - |
754 | : readNotificationEnabled(false) | - |
755 | , writeNotificationEnabled(false) | - |
756 | , exceptNotificationEnabled(false) | - |
757 | , readNotificationActivated(false) | - |
758 | , writeNotificationActivated(false) | - |
759 | , readNotificationPending(false) | - |
760 | , writeNotificationPending(false) | - |
761 | , connectionNotificationPending(false) | - |
762 | , credentialsSent(false) | - |
763 | , pendingResponseData(0) | - |
764 | { | - |
765 | socket = 0; | - |
766 | reply = 0; | - |
767 | state = QHttpSocketEngine::None; | - |
768 | } executed: } Execution Count:17 | 17 |
769 | | - |
770 | QHttpSocketEnginePrivate::~QHttpSocketEnginePrivate() | - |
771 | { | - |
772 | } | - |
773 | | - |
774 | QAbstractSocketEngine *QHttpSocketEngineHandler::createSocketEngine(QAbstractSocket::SocketType socketType, | - |
775 | const QNetworkProxy &proxy, | - |
776 | QObject *parent) | - |
777 | { | - |
778 | if (socketType != QAbstractSocket::TcpSocket) evaluated: socketType != QAbstractSocket::TcpSocket yes Evaluation Count:306 | yes Evaluation Count:2600 |
| 306-2600 |
779 | return 0; executed: return 0; Execution Count:306 | 306 |
780 | | - |
781 | | - |
782 | if (proxy.type() != QNetworkProxy::HttpProxy) evaluated: proxy.type() != QNetworkProxy::HttpProxy yes Evaluation Count:2583 | yes Evaluation Count:17 |
| 17-2583 |
783 | return 0; executed: return 0; Execution Count:2583 | 2583 |
784 | | - |
785 | | - |
786 | if (!qobject_cast<QAbstractSocket *>(parent)) partially evaluated: !qobject_cast<QAbstractSocket *>(parent) no Evaluation Count:0 | yes Evaluation Count:17 |
| 0-17 |
787 | return 0; never executed: return 0; | 0 |
788 | | - |
789 | QHttpSocketEngine *engine = new QHttpSocketEngine(parent); | - |
790 | engine->setProxy(proxy); | - |
791 | return engine; executed: return engine; Execution Count:17 | 17 |
792 | } | - |
793 | | - |
794 | QAbstractSocketEngine *QHttpSocketEngineHandler::createSocketEngine(qintptr, QObject *) | - |
795 | { | - |
796 | return 0; executed: return 0; Execution Count:616 | 616 |
797 | } | - |
798 | | - |
799 | | - |
800 | | - |
| | |