ssl/qsslsocket.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8 -
9 -
10static int qt_timeout_value(int msecs, int elapsed) -
11{ -
12 if (msecs == -1)
partially evaluated: msecs == -1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2354
0-2354
13 return -1;
never executed: return -1;
0
14 -
15 int timeout = msecs - elapsed; -
16 return timeout < 0 ? 0 : timeout;
executed: return timeout < 0 ? 0 : timeout;
Execution Count:2354
2354
17} -
18 -
19class QSslSocketGlobalData -
20{ -
21public: -
22 QSslSocketGlobalData() : config(new QSslConfigurationPrivate) {}
executed: }
Execution Count:9
9
23 -
24 QMutex mutex; -
25 QList<QSslCipher> supportedCiphers; -
26 QExplicitlySharedDataPointer<QSslConfigurationPrivate> config; -
27}; -
28static QSslSocketGlobalData *globalData() { static QGlobalStatic<QSslSocketGlobalData > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QSslSocketGlobalData *x = new QSslSocketGlobalData; if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QSslSocketGlobalData > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); }
partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
evaluated: !thisGlobalStatic.pointer.load()
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:1551
partially evaluated: !thisGlobalStatic.destroyed
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
never executed: delete x;
executed: return thisGlobalStatic.pointer.load();
Execution Count:1560
0-1560
29 -
30 -
31 -
32 -
33 -
34 -
35QSslSocket::QSslSocket(QObject *parent) -
36 : QTcpSocket(*new QSslSocketBackendPrivate, parent) -
37{ -
38 QSslSocketPrivate * const d = d_func(); -
39 -
40 -
41 -
42 d->q_ptr = this; -
43 d->init(); -
44}
executed: }
Execution Count:61
61
45 -
46 -
47 -
48 -
49QSslSocket::~QSslSocket() -
50{ -
51 QSslSocketPrivate * const d = d_func(); -
52 -
53 -
54 -
55 delete d->plainSocket; -
56 d->plainSocket = 0; -
57}
executed: }
Execution Count:61
61
58void QSslSocket::resume() -
59{ -
60 -
61 QMetaObject::invokeMethod(this, "_q_resumeImplementation", Qt::QueuedConnection); -
62}
never executed: }
0
63void QSslSocket::connectToHostEncrypted(const QString &hostName, quint16 port, OpenMode mode, NetworkLayerProtocol protocol) -
64{ -
65 QSslSocketPrivate * const d = d_func(); -
66 if (d->state == ConnectedState || d->state == ConnectingState) {
partially evaluated: d->state == ConnectedState
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:48
partially evaluated: d->state == ConnectingState
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:48
0-48
67 QMessageLogger("ssl/qsslsocket.cpp", 421, __PRETTY_FUNCTION__).warning("QSslSocket::connectToHostEncrypted() called when already connecting/connected"); -
68 return;
never executed: return;
0
69 } -
70 -
71 d->init(); -
72 d->autoStartHandshake = true; -
73 d->initialized = true; -
74 -
75 -
76 -
77 connectToHost(hostName, port, mode, protocol); -
78}
executed: }
Execution Count:48
48
79void QSslSocket::connectToHostEncrypted(const QString &hostName, quint16 port, -
80 const QString &sslPeerName, OpenMode mode, -
81 NetworkLayerProtocol protocol) -
82{ -
83 QSslSocketPrivate * const d = d_func(); -
84 if (d->state == ConnectedState || d->state == ConnectingState) {
never evaluated: d->state == ConnectedState
never evaluated: d->state == ConnectingState
0
85 QMessageLogger("ssl/qsslsocket.cpp", 451, __PRETTY_FUNCTION__).warning("QSslSocket::connectToHostEncrypted() called when already connecting/connected"); -
86 return;
never executed: return;
0
87 } -
88 -
89 d->init(); -
90 d->autoStartHandshake = true; -
91 d->initialized = true; -
92 d->verificationPeerName = sslPeerName; -
93 -
94 -
95 -
96 connectToHost(hostName, port, mode, protocol); -
97}
never executed: }
0
98bool QSslSocket::setSocketDescriptor(qintptr socketDescriptor, SocketState state, OpenMode openMode) -
99{ -
100 QSslSocketPrivate * const d = d_func(); -
101 -
102 -
103 -
104 -
105 if (!d->plainSocket)
partially evaluated: !d->plainSocket
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
106 d->createPlainSocket(openMode);
executed: d->createPlainSocket(openMode);
Execution Count:3
3
107 bool retVal = d->plainSocket->setSocketDescriptor(socketDescriptor, state, openMode); -
108 d->cachedSocketDescriptor = d->plainSocket->socketDescriptor(); -
109 setSocketError(d->plainSocket->error()); -
110 setSocketState(state); -
111 setOpenMode(openMode); -
112 setLocalPort(d->plainSocket->localPort()); -
113 setLocalAddress(d->plainSocket->localAddress()); -
114 setPeerPort(d->plainSocket->peerPort()); -
115 setPeerAddress(d->plainSocket->peerAddress()); -
116 setPeerName(d->plainSocket->peerName()); -
117 return retVal;
executed: return retVal;
Execution Count:3
3
118} -
119 -
120 -
121 -
122 -
123 -
124 -
125 -
126void QSslSocket::setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value) -
127{ -
128 QSslSocketPrivate * const d = d_func(); -
129 if (d->plainSocket)
partially evaluated: d->plainSocket
TRUEFALSE
yes
Evaluation Count:44
no
Evaluation Count:0
0-44
130 d->plainSocket->setSocketOption(option, value);
executed: d->plainSocket->setSocketOption(option, value);
Execution Count:44
44
131}
executed: }
Execution Count:44
44
132 -
133 -
134 -
135 -
136 -
137 -
138 -
139QVariant QSslSocket::socketOption(QAbstractSocket::SocketOption option) -
140{ -
141 QSslSocketPrivate * const d = d_func(); -
142 if (d->plainSocket)
never evaluated: d->plainSocket
0
143 return d->plainSocket->socketOption(option);
never executed: return d->plainSocket->socketOption(option);
0
144 else -
145 return QVariant();
never executed: return QVariant();
0
146} -
147QSslSocket::SslMode QSslSocket::mode() const -
148{ -
149 const QSslSocketPrivate * const d = d_func(); -
150 return d->mode;
never executed: return d->mode;
0
151} -
152bool QSslSocket::isEncrypted() const -
153{ -
154 const QSslSocketPrivate * const d = d_func(); -
155 return d->connectionEncrypted;
never executed: return d->connectionEncrypted;
0
156} -
157 -
158 -
159 -
160 -
161 -
162 -
163QSsl::SslProtocol QSslSocket::protocol() const -
164{ -
165 const QSslSocketPrivate * const d = d_func(); -
166 return d->configuration.protocol;
never executed: return d->configuration.protocol;
0
167} -
168 -
169 -
170 -
171 -
172 -
173 -
174void QSslSocket::setProtocol(QSsl::SslProtocol protocol) -
175{ -
176 QSslSocketPrivate * const d = d_func(); -
177 d->configuration.protocol = protocol; -
178}
executed: }
Execution Count:3
3
179QSslSocket::PeerVerifyMode QSslSocket::peerVerifyMode() const -
180{ -
181 const QSslSocketPrivate * const d = d_func(); -
182 return d->configuration.peerVerifyMode;
never executed: return d->configuration.peerVerifyMode;
0
183} -
184void QSslSocket::setPeerVerifyMode(QSslSocket::PeerVerifyMode mode) -
185{ -
186 QSslSocketPrivate * const d = d_func(); -
187 d->configuration.peerVerifyMode = mode; -
188}
never executed: }
0
189int QSslSocket::peerVerifyDepth() const -
190{ -
191 const QSslSocketPrivate * const d = d_func(); -
192 return d->configuration.peerVerifyDepth;
never executed: return d->configuration.peerVerifyDepth;
0
193} -
194void QSslSocket::setPeerVerifyDepth(int depth) -
195{ -
196 QSslSocketPrivate * const d = d_func(); -
197 if (depth < 0) {
never evaluated: depth < 0
0
198 QMessageLogger("ssl/qsslsocket.cpp", 665, __PRETTY_FUNCTION__).warning("QSslSocket::setPeerVerifyDepth: cannot set negative depth of %d", depth); -
199 return;
never executed: return;
0
200 } -
201 d->configuration.peerVerifyDepth = depth; -
202}
never executed: }
0
203QString QSslSocket::peerVerifyName() const -
204{ -
205 const QSslSocketPrivate * const d = d_func(); -
206 return d->verificationPeerName;
never executed: return d->verificationPeerName;
0
207} -
208void QSslSocket::setPeerVerifyName(const QString &hostName) -
209{ -
210 QSslSocketPrivate * const d = d_func(); -
211 d->verificationPeerName = hostName; -
212}
never executed: }
0
213 -
214 -
215 -
216 -
217 -
218 -
219 -
220qint64 QSslSocket::bytesAvailable() const -
221{ -
222 const QSslSocketPrivate * const d = d_func(); -
223 if (d->mode == UnencryptedMode)
evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:740
yes
Evaluation Count:5604
740-5604
224 return QIODevice::bytesAvailable() + (d->plainSocket ? d->plainSocket->bytesAvailable() : 0);
executed: return QIODevice::bytesAvailable() + (d->plainSocket ? d->plainSocket->bytesAvailable() : 0);
Execution Count:740
740
225 return QIODevice::bytesAvailable();
executed: return QIODevice::bytesAvailable();
Execution Count:5604
5604
226} -
227 -
228 -
229 -
230 -
231 -
232 -
233 -
234qint64 QSslSocket::bytesToWrite() const -
235{ -
236 const QSslSocketPrivate * const d = d_func(); -
237 if (d->mode == UnencryptedMode)
evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:304
yes
Evaluation Count:5204
304-5204
238 return d->plainSocket ? d->plainSocket->bytesToWrite() : 0;
executed: return d->plainSocket ? d->plainSocket->bytesToWrite() : 0;
Execution Count:304
304
239 return d->writeBuffer.size();
executed: return d->writeBuffer.size();
Execution Count:5204
5204
240} -
241qint64 QSslSocket::encryptedBytesAvailable() const -
242{ -
243 const QSslSocketPrivate * const d = d_func(); -
244 if (d->mode == UnencryptedMode)
partially evaluated: d->mode == UnencryptedMode
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
245 return 0;
never executed: return 0;
0
246 return d->plainSocket->bytesAvailable();
executed: return d->plainSocket->bytesAvailable();
Execution Count:2
2
247} -
248 -
249 -
250 -
251 -
252 -
253 -
254 -
255qint64 QSslSocket::encryptedBytesToWrite() const -
256{ -
257 const QSslSocketPrivate * const d = d_func(); -
258 if (d->mode == UnencryptedMode)
evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:152
yes
Evaluation Count:514
152-514
259 return 0;
executed: return 0;
Execution Count:152
152
260 return d->plainSocket->bytesToWrite();
executed: return d->plainSocket->bytesToWrite();
Execution Count:514
514
261} -
262 -
263 -
264 -
265 -
266 -
267 -
268 -
269bool QSslSocket::canReadLine() const -
270{ -
271 const QSslSocketPrivate * const d = d_func(); -
272 if (d->mode == UnencryptedMode)
never evaluated: d->mode == UnencryptedMode
0
273 return QIODevice::canReadLine() || (d->plainSocket && d->plainSocket->canReadLine());
never executed: return QIODevice::canReadLine() || (d->plainSocket && d->plainSocket->canReadLine());
0
274 return QIODevice::canReadLine();
never executed: return QIODevice::canReadLine();
0
275} -
276 -
277 -
278 -
279 -
280void QSslSocket::close() -
281{ -
282 -
283 -
284 -
285 QSslSocketPrivate * const d = d_func(); -
286 if (d->plainSocket)
partially evaluated: d->plainSocket
TRUEFALSE
yes
Evaluation Count:83
no
Evaluation Count:0
0-83
287 d->plainSocket->close();
executed: d->plainSocket->close();
Execution Count:83
83
288 QTcpSocket::close(); -
289 -
290 -
291 d->buffer.clear(); -
292 d->writeBuffer.clear(); -
293}
executed: }
Execution Count:83
83
294 -
295 -
296 -
297 -
298bool QSslSocket::atEnd() const -
299{ -
300 const QSslSocketPrivate * const d = d_func(); -
301 if (d->mode == UnencryptedMode)
never evaluated: d->mode == UnencryptedMode
0
302 return QIODevice::atEnd() && (!d->plainSocket || d->plainSocket->atEnd());
never executed: return QIODevice::atEnd() && (!d->plainSocket || d->plainSocket->atEnd());
0
303 return QIODevice::atEnd();
never executed: return QIODevice::atEnd();
0
304} -
305bool QSslSocket::flush() -
306{ -
307 QSslSocketPrivate * const d = d_func(); -
308 -
309 -
310 -
311 if (d->mode != UnencryptedMode)
partially evaluated: d->mode != UnencryptedMode
TRUEFALSE
yes
Evaluation Count:145
no
Evaluation Count:0
0-145
312 -
313 d->transmit();
executed: d->transmit();
Execution Count:145
145
314 -
315 return d->plainSocket ? d->plainSocket->flush() : false;
executed: return d->plainSocket ? d->plainSocket->flush() : false;
Execution Count:145
145
316} -
317 -
318 -
319 -
320 -
321 -
322 -
323void QSslSocket::setReadBufferSize(qint64 size) -
324{ -
325 QSslSocketPrivate * const d = d_func(); -
326 d->readBufferMaxSize = size; -
327 -
328 if (d->plainSocket)
partially evaluated: d->plainSocket
TRUEFALSE
yes
Evaluation Count:111
no
Evaluation Count:0
0-111
329 d->plainSocket->setReadBufferSize(size);
executed: d->plainSocket->setReadBufferSize(size);
Execution Count:111
111
330}
executed: }
Execution Count:111
111
331void QSslSocket::abort() -
332{ -
333 QSslSocketPrivate * const d = d_func(); -
334 -
335 -
336 -
337 if (d->plainSocket)
partially evaluated: d->plainSocket
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
338 d->plainSocket->abort();
executed: d->plainSocket->abort();
Execution Count:1
1
339 close(); -
340}
executed: }
Execution Count:1
1
341QSslConfiguration QSslSocket::sslConfiguration() const -
342{ -
343 const QSslSocketPrivate * const d = d_func(); -
344 -
345 -
346 QSslConfigurationPrivate *copy = new QSslConfigurationPrivate(d->configuration); -
347 copy->ref.store(0); -
348 copy->sessionCipher = d->sessionCipher(); -
349 -
350 return QSslConfiguration(copy);
executed: return QSslConfiguration(copy);
Execution Count:109
109
351} -
352void QSslSocket::setSslConfiguration(const QSslConfiguration &configuration) -
353{ -
354 QSslSocketPrivate * const d = d_func(); -
355 d->configuration.localCertificate = configuration.localCertificate(); -
356 d->configuration.privateKey = configuration.privateKey(); -
357 d->configuration.ciphers = configuration.ciphers(); -
358 d->configuration.caCertificates = configuration.caCertificates(); -
359 d->configuration.peerVerifyDepth = configuration.peerVerifyDepth(); -
360 d->configuration.peerVerifyMode = configuration.peerVerifyMode(); -
361 d->configuration.protocol = configuration.protocol(); -
362 d->configuration.sslOptions = configuration.d->sslOptions; -
363 d->allowRootCertOnDemandLoading = false; -
364}
executed: }
Execution Count:3
3
365void QSslSocket::setLocalCertificate(const QSslCertificate &certificate) -
366{ -
367 QSslSocketPrivate * const d = d_func(); -
368 d->configuration.localCertificate = certificate; -
369}
never executed: }
0
370void QSslSocket::setLocalCertificate(const QString &path, -
371 QSsl::EncodingFormat format) -
372{ -
373 QSslSocketPrivate * const d = d_func(); -
374 QFile file(path); -
375 if (file.open(QIODevice::ReadOnly | QIODevice::Text))
partially evaluated: file.open(QIODevice::ReadOnly | QIODevice::Text)
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
376 d->configuration.localCertificate = QSslCertificate(file.readAll(), format);
executed: d->configuration.localCertificate = QSslCertificate(file.readAll(), format);
Execution Count:3
3
377}
executed: }
Execution Count:3
3
378 -
379 -
380 -
381 -
382 -
383 -
384 -
385QSslCertificate QSslSocket::localCertificate() const -
386{ -
387 const QSslSocketPrivate * const d = d_func(); -
388 return d->configuration.localCertificate;
never executed: return d->configuration.localCertificate;
0
389} -
390QSslCertificate QSslSocket::peerCertificate() const -
391{ -
392 const QSslSocketPrivate * const d = d_func(); -
393 return d->configuration.peerCertificate;
never executed: return d->configuration.peerCertificate;
0
394} -
395QList<QSslCertificate> QSslSocket::peerCertificateChain() const -
396{ -
397 const QSslSocketPrivate * const d = d_func(); -
398 return d->configuration.peerCertificateChain;
never executed: return d->configuration.peerCertificateChain;
0
399} -
400QSslCipher QSslSocket::sessionCipher() const -
401{ -
402 const QSslSocketPrivate * const d = d_func(); -
403 return d->sessionCipher();
never executed: return d->sessionCipher();
0
404} -
405void QSslSocket::setPrivateKey(const QSslKey &key) -
406{ -
407 QSslSocketPrivate * const d = d_func(); -
408 d->configuration.privateKey = key; -
409}
never executed: }
0
410void QSslSocket::setPrivateKey(const QString &fileName, QSsl::KeyAlgorithm algorithm, -
411 QSsl::EncodingFormat format, const QByteArray &passPhrase) -
412{ -
413 QSslSocketPrivate * const d = d_func(); -
414 QFile file(fileName); -
415 if (file.open(QIODevice::ReadOnly)) {
partially evaluated: file.open(QIODevice::ReadOnly)
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
416 d->configuration.privateKey = QSslKey(file.readAll(), algorithm, -
417 format, QSsl::PrivateKey, passPhrase); -
418 }
executed: }
Execution Count:3
3
419}
executed: }
Execution Count:3
3
420 -
421 -
422 -
423 -
424 -
425 -
426QSslKey QSslSocket::privateKey() const -
427{ -
428 const QSslSocketPrivate * const d = d_func(); -
429 return d->configuration.privateKey;
never executed: return d->configuration.privateKey;
0
430} -
431QList<QSslCipher> QSslSocket::ciphers() const -
432{ -
433 const QSslSocketPrivate * const d = d_func(); -
434 return d->configuration.ciphers;
never executed: return d->configuration.ciphers;
0
435} -
436void QSslSocket::setCiphers(const QList<QSslCipher> &ciphers) -
437{ -
438 QSslSocketPrivate * const d = d_func(); -
439 d->configuration.ciphers = ciphers; -
440}
never executed: }
0
441void QSslSocket::setCiphers(const QString &ciphers) -
442{ -
443 QSslSocketPrivate * const d = d_func(); -
444 d->configuration.ciphers.clear(); -
445 for (QForeachContainer<__typeof__(ciphers.split(QLatin1String(":"),QString::SkipEmptyParts))> _container_(ciphers.split(QLatin1String(":"),QString::SkipEmptyParts)); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QString &cipherName = *_container_.i;; __extension__ ({--_container_.brk; break;})) { -
446 for (int i = 0; i < 3; ++i) {
never evaluated: i < 3
0
447 -
448 QSslCipher cipher(cipherName, QSsl::SslProtocol(i)); -
449 if (!cipher.isNull())
never evaluated: !cipher.isNull()
0
450 d->configuration.ciphers << cipher;
never executed: d->configuration.ciphers << cipher;
0
451 }
never executed: }
0
452 }
never executed: }
0
453}
never executed: }
0
454void QSslSocket::setDefaultCiphers(const QList<QSslCipher> &ciphers) -
455{ -
456 QSslSocketPrivate::setDefaultCiphers(ciphers); -
457}
never executed: }
0
458QList<QSslCipher> QSslSocket::defaultCiphers() -
459{ -
460 return QSslSocketPrivate::defaultCiphers();
never executed: return QSslSocketPrivate::defaultCiphers();
0
461} -
462QList<QSslCipher> QSslSocket::supportedCiphers() -
463{ -
464 return QSslSocketPrivate::supportedCiphers();
never executed: return QSslSocketPrivate::supportedCiphers();
0
465} -
466bool QSslSocket::addCaCertificates(const QString &path, QSsl::EncodingFormat format, -
467 QRegExp::PatternSyntax syntax) -
468{ -
469 QSslSocketPrivate * const d = d_func(); -
470 QList<QSslCertificate> certs = QSslCertificate::fromPath(path, format, syntax); -
471 if (certs.isEmpty())
never evaluated: certs.isEmpty()
0
472 return false;
never executed: return false;
0
473 -
474 d->configuration.caCertificates += certs; -
475 return true;
never executed: return true;
0
476} -
477void QSslSocket::addCaCertificate(const QSslCertificate &certificate) -
478{ -
479 QSslSocketPrivate * const d = d_func(); -
480 d->configuration.caCertificates += certificate; -
481}
never executed: }
0
482void QSslSocket::addCaCertificates(const QList<QSslCertificate> &certificates) -
483{ -
484 QSslSocketPrivate * const d = d_func(); -
485 d->configuration.caCertificates += certificates; -
486}
never executed: }
0
487void QSslSocket::setCaCertificates(const QList<QSslCertificate> &certificates) -
488{ -
489 QSslSocketPrivate * const d = d_func(); -
490 d->configuration.caCertificates = certificates; -
491 d->allowRootCertOnDemandLoading = false; -
492}
never executed: }
0
493QList<QSslCertificate> QSslSocket::caCertificates() const -
494{ -
495 const QSslSocketPrivate * const d = d_func(); -
496 return d->configuration.caCertificates;
executed: return d->configuration.caCertificates;
Execution Count:48
48
497} -
498bool QSslSocket::addDefaultCaCertificates(const QString &path, QSsl::EncodingFormat encoding, -
499 QRegExp::PatternSyntax syntax) -
500{ -
501 return QSslSocketPrivate::addDefaultCaCertificates(path, encoding, syntax);
never executed: return QSslSocketPrivate::addDefaultCaCertificates(path, encoding, syntax);
0
502} -
503void QSslSocket::addDefaultCaCertificate(const QSslCertificate &certificate) -
504{ -
505 QSslSocketPrivate::addDefaultCaCertificate(certificate); -
506}
executed: }
Execution Count:1
1
507void QSslSocket::addDefaultCaCertificates(const QList<QSslCertificate> &certificates) -
508{ -
509 QSslSocketPrivate::addDefaultCaCertificates(certificates); -
510}
never executed: }
0
511void QSslSocket::setDefaultCaCertificates(const QList<QSslCertificate> &certificates) -
512{ -
513 QSslSocketPrivate::setDefaultCaCertificates(certificates); -
514}
never executed: }
0
515QList<QSslCertificate> QSslSocket::defaultCaCertificates() -
516{ -
517 return QSslSocketPrivate::defaultCaCertificates();
executed: return QSslSocketPrivate::defaultCaCertificates();
Execution Count:8
8
518} -
519QList<QSslCertificate> QSslSocket::systemCaCertificates() -
520{ -
521 -
522 return QSslSocketPrivate::systemCaCertificates();
never executed: return QSslSocketPrivate::systemCaCertificates();
0
523} -
524bool QSslSocket::waitForConnected(int msecs) -
525{ -
526 QSslSocketPrivate * const d = d_func(); -
527 if (!d->plainSocket)
partially evaluated: !d->plainSocket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:41
0-41
528 return false;
never executed: return false;
0
529 bool retVal = d->plainSocket->waitForConnected(msecs); -
530 if (!retVal) {
partially evaluated: !retVal
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:41
0-41
531 setSocketState(d->plainSocket->state()); -
532 setSocketError(d->plainSocket->error()); -
533 setErrorString(d->plainSocket->errorString()); -
534 }
never executed: }
0
535 return retVal;
executed: return retVal;
Execution Count:41
41
536} -
537bool QSslSocket::waitForEncrypted(int msecs) -
538{ -
539 QSslSocketPrivate * const d = d_func(); -
540 if (!d->plainSocket || d->connectionEncrypted)
partially evaluated: !d->plainSocket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
partially evaluated: d->connectionEncrypted
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
541 return false;
never executed: return false;
0
542 if (d->mode == UnencryptedMode && !d->autoStartHandshake)
partially evaluated: d->mode == UnencryptedMode
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
never evaluated: !d->autoStartHandshake
0-3
543 return false;
never executed: return false;
0
544 -
545 QElapsedTimer stopWatch; -
546 stopWatch.start(); -
547 -
548 if (d->plainSocket->state() != QAbstractSocket::ConnectedState) {
partially evaluated: d->plainSocket->state() != QAbstractSocket::ConnectedState
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
549 -
550 if (!d->plainSocket->waitForConnected(msecs))
never evaluated: !d->plainSocket->waitForConnected(msecs)
0
551 return false;
never executed: return false;
0
552 }
never executed: }
0
553 -
554 while (!d->connectionEncrypted) {
evaluated: !d->connectionEncrypted
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:3
3-6
555 -
556 if (d->mode == UnencryptedMode)
partially evaluated: d->mode == UnencryptedMode
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
557 startClientEncryption();
never executed: startClientEncryption();
0
558 -
559 -
560 if (!d->plainSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed())))
partially evaluated: !d->plainSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
561 return false;
never executed: return false;
0
562 }
executed: }
Execution Count:6
6
563 return d->connectionEncrypted;
executed: return d->connectionEncrypted;
Execution Count:3
3
564} -
565 -
566 -
567 -
568 -
569bool QSslSocket::waitForReadyRead(int msecs) -
570{ -
571 QSslSocketPrivate * const d = d_func(); -
572 if (!d->plainSocket)
partially evaluated: !d->plainSocket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:165
0-165
573 return false;
never executed: return false;
0
574 if (d->mode == UnencryptedMode && !d->autoStartHandshake)
evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:162
yes
Evaluation Count:3
partially evaluated: !d->autoStartHandshake
TRUEFALSE
yes
Evaluation Count:162
no
Evaluation Count:0
0-162
575 return d->plainSocket->waitForReadyRead(msecs);
executed: return d->plainSocket->waitForReadyRead(msecs);
Execution Count:162
162
576 -
577 -
578 -
579 -
580 -
581 bool readyReadEmitted = false; -
582 bool *previousReadyReadEmittedPointer = d->readyReadEmittedPointer; -
583 d->readyReadEmittedPointer = &readyReadEmitted; -
584 -
585 QElapsedTimer stopWatch; -
586 stopWatch.start(); -
587 -
588 if (!d->connectionEncrypted) {
evaluated: !d->connectionEncrypted
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:1
1-2
589 -
590 if (!waitForEncrypted(msecs)) {
partially evaluated: !waitForEncrypted(msecs)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
591 d->readyReadEmittedPointer = previousReadyReadEmittedPointer; -
592 return false;
never executed: return false;
0
593 } -
594 }
executed: }
Execution Count:2
2
595 -
596 if (!d->writeBuffer.isEmpty()) {
partially evaluated: !d->writeBuffer.isEmpty()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
597 -
598 d->transmit(); -
599 }
never executed: }
0
600 -
601 -
602 -
603 while (!readyReadEmitted &&
evaluated: !readyReadEmitted
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:3
3
604 d->plainSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
partially evaluated: d->plainSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
605 }
executed: }
Execution Count:3
3
606 -
607 d->readyReadEmittedPointer = previousReadyReadEmittedPointer; -
608 return readyReadEmitted;
executed: return readyReadEmitted;
Execution Count:3
3
609} -
610 -
611 -
612 -
613 -
614bool QSslSocket::waitForBytesWritten(int msecs) -
615{ -
616 QSslSocketPrivate * const d = d_func(); -
617 if (!d->plainSocket)
partially evaluated: !d->plainSocket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2497
0-2497
618 return false;
never executed: return false;
0
619 if (d->mode == UnencryptedMode)
evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:152
yes
Evaluation Count:2345
152-2345
620 return d->plainSocket->waitForBytesWritten(msecs);
executed: return d->plainSocket->waitForBytesWritten(msecs);
Execution Count:152
152
621 -
622 QElapsedTimer stopWatch; -
623 stopWatch.start(); -
624 -
625 if (!d->connectionEncrypted) {
partially evaluated: !d->connectionEncrypted
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2345
0-2345
626 -
627 if (!waitForEncrypted(msecs))
never evaluated: !waitForEncrypted(msecs)
0
628 return false;
never executed: return false;
0
629 }
never executed: }
0
630 if (!d->writeBuffer.isEmpty()) {
partially evaluated: !d->writeBuffer.isEmpty()
TRUEFALSE
yes
Evaluation Count:2345
no
Evaluation Count:0
0-2345
631 -
632 d->transmit(); -
633 }
executed: }
Execution Count:2345
2345
634 -
635 return d->plainSocket->waitForBytesWritten(qt_timeout_value(msecs, stopWatch.elapsed()));
executed: return d->plainSocket->waitForBytesWritten(qt_timeout_value(msecs, stopWatch.elapsed()));
Execution Count:2345
2345
636} -
637bool QSslSocket::waitForDisconnected(int msecs) -
638{ -
639 QSslSocketPrivate * const d = d_func(); -
640 -
641 -
642 if (state() == UnconnectedState) {
partially evaluated: state() == UnconnectedState
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:40
0-40
643 QMessageLogger("ssl/qsslsocket.cpp", 1557, __PRETTY_FUNCTION__).warning("QSslSocket::waitForDisconnected() is not allowed in UnconnectedState"); -
644 return false;
never executed: return false;
0
645 } -
646 -
647 if (!d->plainSocket)
partially evaluated: !d->plainSocket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:40
0-40
648 return false;
never executed: return false;
0
649 if (d->mode == UnencryptedMode)
partially evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:40
no
Evaluation Count:0
0-40
650 return d->plainSocket->waitForDisconnected(msecs);
executed: return d->plainSocket->waitForDisconnected(msecs);
Execution Count:40
40
651 -
652 QElapsedTimer stopWatch; -
653 stopWatch.start(); -
654 -
655 if (!d->connectionEncrypted) {
never evaluated: !d->connectionEncrypted
0
656 -
657 if (!waitForEncrypted(msecs))
never evaluated: !waitForEncrypted(msecs)
0
658 return false;
never executed: return false;
0
659 }
never executed: }
0
660 bool retVal = d->plainSocket->waitForDisconnected(qt_timeout_value(msecs, stopWatch.elapsed())); -
661 if (!retVal) {
never evaluated: !retVal
0
662 setSocketState(d->plainSocket->state()); -
663 setSocketError(d->plainSocket->error()); -
664 setErrorString(d->plainSocket->errorString()); -
665 }
never executed: }
0
666 return retVal;
never executed: return retVal;
0
667} -
668QList<QSslError> QSslSocket::sslErrors() const -
669{ -
670 const QSslSocketPrivate * const d = d_func(); -
671 return d->sslErrors;
never executed: return d->sslErrors;
0
672} -
673 -
674 -
675 -
676 -
677 -
678 -
679bool QSslSocket::supportsSsl() -
680{ -
681 return QSslSocketPrivate::supportsSsl();
executed: return QSslSocketPrivate::supportsSsl();
Execution Count:13154
13154
682} -
683long QSslSocket::sslLibraryVersionNumber() -
684{ -
685 return QSslSocketPrivate::sslLibraryVersionNumber();
never executed: return QSslSocketPrivate::sslLibraryVersionNumber();
0
686} -
687 -
688 -
689 -
690 -
691 -
692 -
693 -
694QString QSslSocket::sslLibraryVersionString() -
695{ -
696 return QSslSocketPrivate::sslLibraryVersionString();
never executed: return QSslSocketPrivate::sslLibraryVersionString();
0
697} -
698void QSslSocket::startClientEncryption() -
699{ -
700 QSslSocketPrivate * const d = d_func(); -
701 if (d->mode != UnencryptedMode) {
partially evaluated: d->mode != UnencryptedMode
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
0-45
702 QMessageLogger("ssl/qsslsocket.cpp", 1647, __PRETTY_FUNCTION__).warning("QSslSocket::startClientEncryption: cannot start handshake on non-plain connection"); -
703 return;
never executed: return;
0
704 } -
705 if (state() != ConnectedState) {
partially evaluated: state() != ConnectedState
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
0-45
706 QMessageLogger("ssl/qsslsocket.cpp", 1651, __PRETTY_FUNCTION__).warning("QSslSocket::startClientEncryption: cannot start handshake when not connected"); -
707 return;
never executed: return;
0
708 } -
709 -
710 -
711 -
712 d->mode = SslClientMode; -
713 modeChanged(d->mode); -
714 d->startClientEncryption(); -
715}
executed: }
Execution Count:45
45
716void QSslSocket::startServerEncryption() -
717{ -
718 QSslSocketPrivate * const d = d_func(); -
719 if (d->mode != UnencryptedMode) {
partially evaluated: d->mode != UnencryptedMode
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
720 QMessageLogger("ssl/qsslsocket.cpp", 1686, __PRETTY_FUNCTION__).warning("QSslSocket::startServerEncryption: cannot start handshake on non-plain connection"); -
721 return;
never executed: return;
0
722 } -
723 -
724 -
725 -
726 d->mode = SslServerMode; -
727 modeChanged(d->mode); -
728 d->startServerEncryption(); -
729}
executed: }
Execution Count:3
3
730void QSslSocket::ignoreSslErrors() -
731{ -
732 QSslSocketPrivate * const d = d_func(); -
733 d->ignoreAllSslErrors = true; -
734}
executed: }
Execution Count:31
31
735void QSslSocket::ignoreSslErrors(const QList<QSslError> &errors) -
736{ -
737 QSslSocketPrivate * const d = d_func(); -
738 d->ignoreErrorsList = errors; -
739}
executed: }
Execution Count:54
54
740 -
741 -
742 -
743 -
744void QSslSocket::connectToHost(const QString &hostName, quint16 port, OpenMode openMode, NetworkLayerProtocol protocol) -
745{ -
746 QSslSocketPrivate * const d = d_func(); -
747 d->preferredNetworkLayerProtocol = protocol; -
748 if (!d->initialized)
evaluated: !d->initialized
TRUEFALSE
yes
Evaluation Count:41
yes
Evaluation Count:48
41-48
749 d->init();
executed: d->init();
Execution Count:41
41
750 d->initialized = false; -
751 -
752 -
753 -
754 -
755 -
756 if (!d->plainSocket) {
evaluated: !d->plainSocket
TRUEFALSE
yes
Evaluation Count:58
yes
Evaluation Count:31
31-58
757 -
758 -
759 -
760 d->createPlainSocket(openMode); -
761 }
executed: }
Execution Count:58
58
762 -
763 d->plainSocket->setProxy(proxy()); -
764 -
765 QIODevice::open(openMode); -
766 d->plainSocket->connectToHost(hostName, port, openMode, d->preferredNetworkLayerProtocol); -
767 d->cachedSocketDescriptor = d->plainSocket->socketDescriptor(); -
768}
executed: }
Execution Count:89
89
769 -
770 -
771 -
772 -
773void QSslSocket::disconnectFromHost() -
774{ -
775 QSslSocketPrivate * const d = d_func(); -
776 -
777 -
778 -
779 if (!d->plainSocket)
never evaluated: !d->plainSocket
0
780 return;
never executed: return;
0
781 if (d->state == UnconnectedState)
never evaluated: d->state == UnconnectedState
0
782 return;
never executed: return;
0
783 if (d->mode == UnencryptedMode && !d->autoStartHandshake) {
never evaluated: d->mode == UnencryptedMode
never evaluated: !d->autoStartHandshake
0
784 d->plainSocket->disconnectFromHost(); -
785 return;
never executed: return;
0
786 } -
787 if (d->state <= ConnectingState) {
never evaluated: d->state <= ConnectingState
0
788 d->pendingClose = true; -
789 return;
never executed: return;
0
790 } -
791 -
792 -
793 if (d->state != ClosingState) {
never evaluated: d->state != ClosingState
0
794 d->state = ClosingState; -
795 stateChanged(d->state); -
796 }
never executed: }
0
797 -
798 if (!d->writeBuffer.isEmpty())
never evaluated: !d->writeBuffer.isEmpty()
0
799 return;
never executed: return;
0
800 -
801 if (d->mode == UnencryptedMode) {
never evaluated: d->mode == UnencryptedMode
0
802 d->plainSocket->disconnectFromHost(); -
803 } else {
never executed: }
0
804 d->disconnectFromHost(); -
805 }
never executed: }
0
806} -
807 -
808 -
809 -
810 -
811qint64 QSslSocket::readData(char *data, qint64 maxlen) -
812{ -
813 QSslSocketPrivate * const d = d_func(); -
814 qint64 readBytes = 0; -
815 -
816 if (d->mode == UnencryptedMode && !d->autoStartHandshake) {
evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:327
yes
Evaluation Count:1736
partially evaluated: !d->autoStartHandshake
TRUEFALSE
yes
Evaluation Count:327
no
Evaluation Count:0
0-1736
817 readBytes = d->plainSocket->read(data, maxlen); -
818 } else {
executed: }
Execution Count:327
327
819 int bytesToRead = qMin<int>(maxlen, d->buffer.size()); -
820 readBytes = d->buffer.read(data, bytesToRead); -
821 }
executed: }
Execution Count:1736
1736
822 -
823 -
824 -
825 -
826 -
827 -
828 if (d->buffer.isEmpty() && d->plainSocket->bytesAvailable()) {
evaluated: d->buffer.isEmpty()
TRUEFALSE
yes
Evaluation Count:1902
yes
Evaluation Count:161
evaluated: d->plainSocket->bytesAvailable()
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:1893
9-1902
829 QMetaObject::invokeMethod(this, "_q_flushReadBuffer", Qt::QueuedConnection); -
830 }
executed: }
Execution Count:9
9
831 -
832 return readBytes;
executed: return readBytes;
Execution Count:2063
2063
833} -
834 -
835 -
836 -
837 -
838qint64 QSslSocket::writeData(const char *data, qint64 len) -
839{ -
840 QSslSocketPrivate * const d = d_func(); -
841 -
842 -
843 -
844 if (d->mode == UnencryptedMode && !d->autoStartHandshake)
evaluated: d->mode == UnencryptedMode
TRUEFALSE
yes
Evaluation Count:152
yes
Evaluation Count:2520
partially evaluated: !d->autoStartHandshake
TRUEFALSE
yes
Evaluation Count:152
no
Evaluation Count:0
0-2520
845 return d->plainSocket->write(data, len);
executed: return d->plainSocket->write(data, len);
Execution Count:152
152
846 -
847 char *writePtr = d->writeBuffer.reserve(len); -
848 ::memcpy(writePtr, data, len); -
849 -
850 -
851 QMetaObject::invokeMethod(this, "_q_flushWriteBuffer", Qt::QueuedConnection); -
852 -
853 return len;
executed: return len;
Execution Count:2520
2520
854} -
855 -
856 -
857 -
858 -
859QSslSocketPrivate::QSslSocketPrivate() -
860 : initialized(false) -
861 , mode(QSslSocket::UnencryptedMode) -
862 , autoStartHandshake(false) -
863 , connectionEncrypted(false) -
864 , ignoreAllSslErrors(false) -
865 , readyReadEmittedPointer(0) -
866 , allowRootCertOnDemandLoading(true) -
867 , plainSocket(0) -
868 , paused(false) -
869{ -
870 QSslConfigurationPrivate::deepCopyDefaultConfiguration(&configuration); -
871}
executed: }
Execution Count:61
61
872 -
873 -
874 -
875 -
876QSslSocketPrivate::~QSslSocketPrivate() -
877{ -
878} -
879 -
880 -
881 -
882 -
883void QSslSocketPrivate::init() -
884{ -
885 mode = QSslSocket::UnencryptedMode; -
886 autoStartHandshake = false; -
887 connectionEncrypted = false; -
888 ignoreAllSslErrors = false; -
889 -
890 -
891 -
892 -
893 -
894 buffer.clear(); -
895 writeBuffer.clear(); -
896 configuration.peerCertificate.clear(); -
897 configuration.peerCertificateChain.clear(); -
898}
executed: }
Execution Count:150
150
899 -
900 -
901 -
902 -
903QList<QSslCipher> QSslSocketPrivate::defaultCiphers() -
904{ -
905 QMutexLocker locker(&globalData()->mutex); -
906 return globalData()->config->ciphers;
executed: return globalData()->config->ciphers;
Execution Count:1
1
907} -
908 -
909 -
910 -
911 -
912QList<QSslCipher> QSslSocketPrivate::supportedCiphers() -
913{ -
914 QSslSocketPrivate::ensureInitialized(); -
915 QMutexLocker locker(&globalData()->mutex); -
916 return globalData()->supportedCiphers;
never executed: return globalData()->supportedCiphers;
0
917} -
918 -
919 -
920 -
921 -
922void QSslSocketPrivate::setDefaultCiphers(const QList<QSslCipher> &ciphers) -
923{ -
924 QMutexLocker locker(&globalData()->mutex); -
925 globalData()->config.detach(); -
926 globalData()->config->ciphers = ciphers; -
927}
executed: }
Execution Count:9
9
928 -
929 -
930 -
931 -
932void QSslSocketPrivate::setDefaultSupportedCiphers(const QList<QSslCipher> &ciphers) -
933{ -
934 QMutexLocker locker(&globalData()->mutex); -
935 globalData()->config.detach(); -
936 globalData()->supportedCiphers = ciphers; -
937}
executed: }
Execution Count:9
9
938 -
939 -
940 -
941 -
942QList<QSslCertificate> QSslSocketPrivate::defaultCaCertificates() -
943{ -
944 QSslSocketPrivate::ensureInitialized(); -
945 QMutexLocker locker(&globalData()->mutex); -
946 return globalData()->config->caCertificates;
executed: return globalData()->config->caCertificates;
Execution Count:9
9
947} -
948 -
949 -
950 -
951 -
952void QSslSocketPrivate::setDefaultCaCertificates(const QList<QSslCertificate> &certs) -
953{ -
954 QSslSocketPrivate::ensureInitialized(); -
955 QMutexLocker locker(&globalData()->mutex); -
956 globalData()->config.detach(); -
957 globalData()->config->caCertificates = certs; -
958 -
959 -
960 s_loadRootCertsOnDemand = false; -
961}
executed: }
Execution Count:1
1
962 -
963 -
964 -
965 -
966bool QSslSocketPrivate::addDefaultCaCertificates(const QString &path, QSsl::EncodingFormat format, -
967 QRegExp::PatternSyntax syntax) -
968{ -
969 QSslSocketPrivate::ensureInitialized(); -
970 QList<QSslCertificate> certs = QSslCertificate::fromPath(path, format, syntax); -
971 if (certs.isEmpty())
never evaluated: certs.isEmpty()
0
972 return false;
never executed: return false;
0
973 -
974 QMutexLocker locker(&globalData()->mutex); -
975 globalData()->config.detach(); -
976 globalData()->config->caCertificates += certs; -
977 return true;
never executed: return true;
0
978} -
979 -
980 -
981 -
982 -
983void QSslSocketPrivate::addDefaultCaCertificate(const QSslCertificate &cert) -
984{ -
985 QSslSocketPrivate::ensureInitialized(); -
986 QMutexLocker locker(&globalData()->mutex); -
987 globalData()->config.detach(); -
988 globalData()->config->caCertificates += cert; -
989}
executed: }
Execution Count:1
1
990 -
991 -
992 -
993 -
994void QSslSocketPrivate::addDefaultCaCertificates(const QList<QSslCertificate> &certs) -
995{ -
996 QSslSocketPrivate::ensureInitialized(); -
997 QMutexLocker locker(&globalData()->mutex); -
998 globalData()->config.detach(); -
999 globalData()->config->caCertificates += certs; -
1000}
never executed: }
0
1001 -
1002 -
1003 -
1004 -
1005QSslConfiguration QSslConfigurationPrivate::defaultConfiguration() -
1006{ -
1007 QSslSocketPrivate::ensureInitialized(); -
1008 QMutexLocker locker(&globalData()->mutex); -
1009 return QSslConfiguration(globalData()->config.data());
executed: return QSslConfiguration(globalData()->config.data());
Execution Count:679
679
1010} -
1011 -
1012 -
1013 -
1014 -
1015void QSslConfigurationPrivate::setDefaultConfiguration(const QSslConfiguration &configuration) -
1016{ -
1017 QSslSocketPrivate::ensureInitialized(); -
1018 QMutexLocker locker(&globalData()->mutex); -
1019 if (globalData()->config == configuration.d)
never evaluated: globalData()->config == configuration.d
0
1020 return;
never executed: return;
0
1021 -
1022 globalData()->config = const_cast<QSslConfigurationPrivate*>(configuration.d.constData()); -
1023}
never executed: }
0
1024 -
1025 -
1026 -
1027 -
1028void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPrivate *ptr) -
1029{ -
1030 QSslSocketPrivate::ensureInitialized(); -
1031 QMutexLocker locker(&globalData()->mutex); -
1032 const QSslConfigurationPrivate *global = globalData()->config.constData(); -
1033 -
1034 if (!global) {
partially evaluated: !global
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:61
0-61
1035 ptr = 0; -
1036 return;
never executed: return;
0
1037 } -
1038 -
1039 ptr->ref.store(1); -
1040 ptr->peerCertificate = global->peerCertificate; -
1041 ptr->peerCertificateChain = global->peerCertificateChain; -
1042 ptr->localCertificate = global->localCertificate; -
1043 ptr->privateKey = global->privateKey; -
1044 ptr->sessionCipher = global->sessionCipher; -
1045 ptr->ciphers = global->ciphers; -
1046 ptr->caCertificates = global->caCertificates; -
1047 ptr->protocol = global->protocol; -
1048 ptr->peerVerifyMode = global->peerVerifyMode; -
1049 ptr->peerVerifyDepth = global->peerVerifyDepth; -
1050 ptr->sslOptions = global->sslOptions; -
1051}
executed: }
Execution Count:61
61
1052 -
1053 -
1054 -
1055 -
1056void QSslSocketPrivate::createPlainSocket(QIODevice::OpenMode openMode) -
1057{ -
1058 QSslSocket * const q = q_func(); -
1059 q->setOpenMode(openMode); -
1060 q->setSocketState(QAbstractSocket::UnconnectedState); -
1061 q->setSocketError(QAbstractSocket::UnknownSocketError); -
1062 q->setLocalPort(0); -
1063 q->setLocalAddress(QHostAddress()); -
1064 q->setPeerPort(0); -
1065 q->setPeerAddress(QHostAddress()); -
1066 q->setPeerName(QString()); -
1067 -
1068 plainSocket = new QTcpSocket(q); -
1069 -
1070 -
1071 plainSocket->setProperty("_q_networksession", q->property("_q_networksession")); -
1072 -
1073 q->connect(plainSocket, "2""connected()", -
1074 q, "1""_q_connectedSlot()", -
1075 Qt::DirectConnection); -
1076 q->connect(plainSocket, "2""hostFound()", -
1077 q, "1""_q_hostFoundSlot()", -
1078 Qt::DirectConnection); -
1079 q->connect(plainSocket, "2""disconnected()", -
1080 q, "1""_q_disconnectedSlot()", -
1081 Qt::DirectConnection); -
1082 q->connect(plainSocket, "2""stateChanged(QAbstractSocket::SocketState)", -
1083 q, "1""_q_stateChangedSlot(QAbstractSocket::SocketState)", -
1084 Qt::DirectConnection); -
1085 q->connect(plainSocket, "2""error(QAbstractSocket::SocketError)", -
1086 q, "1""_q_errorSlot(QAbstractSocket::SocketError)", -
1087 Qt::DirectConnection); -
1088 q->connect(plainSocket, "2""readyRead()", -
1089 q, "1""_q_readyReadSlot()", -
1090 Qt::DirectConnection); -
1091 q->connect(plainSocket, "2""bytesWritten(qint64)", -
1092 q, "1""_q_bytesWrittenSlot(qint64)", -
1093 Qt::DirectConnection); -
1094 -
1095 q->connect(plainSocket, "2""proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)", -
1096 q, "2""proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)"); -
1097 -
1098 -
1099 buffer.clear(); -
1100 writeBuffer.clear(); -
1101 connectionEncrypted = false; -
1102 configuration.peerCertificate.clear(); -
1103 configuration.peerCertificateChain.clear(); -
1104 mode = QSslSocket::UnencryptedMode; -
1105 q->setReadBufferSize(readBufferMaxSize); -
1106}
executed: }
Execution Count:61
61
1107 -
1108void QSslSocketPrivate::pauseSocketNotifiers(QSslSocket *socket) -
1109{ -
1110 if (!socket->d_func()->plainSocket)
partially evaluated: !socket->d_func()->plainSocket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:71
0-71
1111 return;
never executed: return;
0
1112 QAbstractSocketPrivate::pauseSocketNotifiers(socket->d_func()->plainSocket); -
1113}
executed: }
Execution Count:71
71
1114 -
1115void QSslSocketPrivate::resumeSocketNotifiers(QSslSocket *socket) -
1116{ -
1117 if (!socket->d_func()->plainSocket)
partially evaluated: !socket->d_func()->plainSocket
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:71
0-71
1118 return;
never executed: return;
0
1119 QAbstractSocketPrivate::resumeSocketNotifiers(socket->d_func()->plainSocket); -
1120}
executed: }
Execution Count:71
71
1121 -
1122bool QSslSocketPrivate::isPaused() const -
1123{ -
1124 return paused;
never executed: return paused;
0
1125} -
1126 -
1127 -
1128 -
1129 -
1130void QSslSocketPrivate::_q_connectedSlot() -
1131{ -
1132 QSslSocket * const q = q_func(); -
1133 q->setLocalPort(plainSocket->localPort()); -
1134 q->setLocalAddress(plainSocket->localAddress()); -
1135 q->setPeerPort(plainSocket->peerPort()); -
1136 q->setPeerAddress(plainSocket->peerAddress()); -
1137 q->setPeerName(plainSocket->peerName()); -
1138 cachedSocketDescriptor = plainSocket->socketDescriptor(); -
1139 if (autoStartHandshake)
evaluated: autoStartHandshake
TRUEFALSE
yes
Evaluation Count:44
yes
Evaluation Count:41
41-44
1140 q->startClientEncryption();
executed: q->startClientEncryption();
Execution Count:44
44
1141 -
1142 q->connected(); -
1143 -
1144 if (pendingClose && !autoStartHandshake) {
partially evaluated: pendingClose
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:85
never evaluated: !autoStartHandshake
0-85
1145 pendingClose = false; -
1146 q->disconnectFromHost(); -
1147 }
never executed: }
0
1148}
executed: }
Execution Count:85
85
1149 -
1150 -
1151 -
1152 -
1153void QSslSocketPrivate::_q_hostFoundSlot() -
1154{ -
1155 QSslSocket * const q = q_func(); -
1156 -
1157 -
1158 -
1159 -
1160 q->hostFound(); -
1161}
executed: }
Execution Count:72
72
1162 -
1163 -
1164 -
1165 -
1166void QSslSocketPrivate::_q_disconnectedSlot() -
1167{ -
1168 QSslSocket * const q = q_func(); -
1169 -
1170 -
1171 -
1172 -
1173 disconnected(); -
1174 q->disconnected(); -
1175}
executed: }
Execution Count:88
88
1176 -
1177 -
1178 -
1179 -
1180void QSslSocketPrivate::_q_stateChangedSlot(QAbstractSocket::SocketState state) -
1181{ -
1182 QSslSocket * const q = q_func(); -
1183 -
1184 -
1185 -
1186 q->setSocketState(state); -
1187 q->stateChanged(state); -
1188}
executed: }
Execution Count:437
437
1189 -
1190 -
1191 -
1192 -
1193void QSslSocketPrivate::_q_errorSlot(QAbstractSocket::SocketError error) -
1194{ -
1195 QSslSocket * const q = q_func(); -
1196 -
1197 -
1198 -
1199 -
1200 -
1201 q->setSocketError(plainSocket->error()); -
1202 q->setErrorString(plainSocket->errorString()); -
1203 q->error(error); -
1204}
executed: }
Execution Count:53
53
1205 -
1206 -
1207 -
1208 -
1209void QSslSocketPrivate::_q_readyReadSlot() -
1210{ -
1211 QSslSocket * const q = q_func(); -
1212 -
1213 -
1214 -
1215 if (mode == QSslSocket::UnencryptedMode) {
evaluated: mode == QSslSocket::UnencryptedMode
TRUEFALSE
yes
Evaluation Count:164
yes
Evaluation Count:420
164-420
1216 if (readyReadEmittedPointer)
partially evaluated: readyReadEmittedPointer
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:164
0-164
1217 *readyReadEmittedPointer = true;
never executed: *readyReadEmittedPointer = true;
0
1218 q->readyRead(); -
1219 return;
executed: return;
Execution Count:164
164
1220 } -
1221 -
1222 transmit(); -
1223}
executed: }
Execution Count:420
420
1224 -
1225 -
1226 -
1227 -
1228void QSslSocketPrivate::_q_bytesWrittenSlot(qint64 written) -
1229{ -
1230 QSslSocket * const q = q_func(); -
1231 -
1232 -
1233 -
1234 -
1235 if (mode == QSslSocket::UnencryptedMode)
evaluated: mode == QSslSocket::UnencryptedMode
TRUEFALSE
yes
Evaluation Count:152
yes
Evaluation Count:2601
152-2601
1236 q->bytesWritten(written);
executed: q->bytesWritten(written);
Execution Count:152
152
1237 else -
1238 q->encryptedBytesWritten(written);
executed: q->encryptedBytesWritten(written);
Execution Count:2601
2601
1239 if (state == QAbstractSocket::ClosingState && writeBuffer.isEmpty())
partially evaluated: state == QAbstractSocket::ClosingState
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2753
never evaluated: writeBuffer.isEmpty()
0-2753
1240 q->disconnectFromHost();
never executed: q->disconnectFromHost();
0
1241}
executed: }
Execution Count:2753
2753
1242 -
1243 -
1244 -
1245 -
1246void QSslSocketPrivate::_q_flushWriteBuffer() -
1247{ -
1248 QSslSocket * const q = q_func(); -
1249 if (!writeBuffer.isEmpty())
evaluated: !writeBuffer.isEmpty()
TRUEFALSE
yes
Evaluation Count:145
yes
Evaluation Count:30
30-145
1250 q->flush();
executed: q->flush();
Execution Count:145
145
1251}
executed: }
Execution Count:175
175
1252 -
1253 -
1254 -
1255 -
1256void QSslSocketPrivate::_q_flushReadBuffer() -
1257{ -
1258 -
1259 if (mode != QSslSocket::UnencryptedMode)
partially evaluated: mode != QSslSocket::UnencryptedMode
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
0-9
1260 transmit();
executed: transmit();
Execution Count:9
9
1261}
executed: }
Execution Count:9
9
1262 -
1263 -
1264 -
1265 -
1266void QSslSocketPrivate::_q_resumeImplementation() -
1267{ -
1268 QSslSocket * const q = q_func(); -
1269 if (plainSocket)
never evaluated: plainSocket
0
1270 plainSocket->resume();
never executed: plainSocket->resume();
0
1271 paused = false; -
1272 if (!connectionEncrypted) {
never evaluated: !connectionEncrypted
0
1273 if (verifyErrorsHaveBeenIgnored()) {
never evaluated: verifyErrorsHaveBeenIgnored()
0
1274 continueHandshake(); -
1275 } else {
never executed: }
0
1276 q->setErrorString(sslErrors.first().errorString()); -
1277 q->setSocketError(QAbstractSocket::SslHandshakeFailedError); -
1278 q->error(QAbstractSocket::SslHandshakeFailedError); -
1279 plainSocket->disconnectFromHost(); -
1280 return;
never executed: return;
0
1281 } -
1282 } -
1283 transmit(); -
1284}
never executed: }
0
1285 -
1286 -
1287 -
1288 -
1289bool QSslSocketPrivate::verifyErrorsHaveBeenIgnored() -
1290{ -
1291 bool doEmitSslError; -
1292 if (!ignoreErrorsList.empty()) {
evaluated: !ignoreErrorsList.empty()
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:32
6-32
1293 -
1294 -
1295 -
1296 doEmitSslError = false; -
1297 for (int a = 0; a < sslErrors.count(); a++) {
evaluated: a < sslErrors.count()
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:4
4-6
1298 if (!ignoreErrorsList.contains(sslErrors.at(a))) {
evaluated: !ignoreErrorsList.contains(sslErrors.at(a))
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:4
2-4
1299 doEmitSslError = true; -
1300 break;
executed: break;
Execution Count:2
2
1301 } -
1302 }
executed: }
Execution Count:4
4
1303 } else {
executed: }
Execution Count:6
6
1304 -
1305 -
1306 -
1307 doEmitSslError = !ignoreAllSslErrors; -
1308 }
executed: }
Execution Count:32
32
1309 return !doEmitSslError;
executed: return !doEmitSslError;
Execution Count:38
38
1310} -
1311 -
1312 -
1313 -
1314 -
1315qint64 QSslSocketPrivate::peek(char *data, qint64 maxSize) -
1316{ -
1317 if (mode == QSslSocket::UnencryptedMode && !autoStartHandshake) {
evaluated: mode == QSslSocket::UnencryptedMode
TRUEFALSE
yes
Evaluation Count:106
yes
Evaluation Count:2
partially evaluated: !autoStartHandshake
TRUEFALSE
yes
Evaluation Count:106
no
Evaluation Count:0
0-106
1318 -
1319 -
1320 qint64 r = buffer.peek(data, maxSize); -
1321 if (r == maxSize)
evaluated: r == maxSize
TRUEFALSE
yes
Evaluation Count:105
yes
Evaluation Count:1
1-105
1322 return r;
executed: return r;
Execution Count:105
105
1323 data += r; -
1324 -
1325 if (plainSocket) {
partially evaluated: plainSocket
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
1326 qint64 r2 = plainSocket->peek(data, maxSize - r); -
1327 if (r2 < 0)
partially evaluated: r2 < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1328 return (r > 0 ? r : r2);
never executed: return (r > 0 ? r : r2);
0
1329 return r + r2;
executed: return r + r2;
Execution Count:1
1
1330 } else { -
1331 return -1;
never executed: return -1;
0
1332 } -
1333 } else { -
1334 -
1335 return QTcpSocketPrivate::peek(data, maxSize);
executed: return QTcpSocketPrivate::peek(data, maxSize);
Execution Count:2
2
1336 } -
1337} -
1338 -
1339 -
1340 -
1341 -
1342QByteArray QSslSocketPrivate::peek(qint64 maxSize) -
1343{ -
1344 if (mode == QSslSocket::UnencryptedMode && !autoStartHandshake) {
never evaluated: mode == QSslSocket::UnencryptedMode
never evaluated: !autoStartHandshake
0
1345 -
1346 -
1347 QByteArray ret; -
1348 ret.reserve(maxSize); -
1349 ret.resize(buffer.peek(ret.data(), maxSize)); -
1350 if (ret.length() == maxSize)
never evaluated: ret.length() == maxSize
0
1351 return ret;
never executed: return ret;
0
1352 -
1353 if (plainSocket)
never evaluated: plainSocket
0
1354 return ret + plainSocket->peek(maxSize - ret.length());
never executed: return ret + plainSocket->peek(maxSize - ret.length());
0
1355 else -
1356 return QByteArray();
never executed: return QByteArray();
0
1357 } else { -
1358 -
1359 return QTcpSocketPrivate::peek(maxSize);
never executed: return QTcpSocketPrivate::peek(maxSize);
0
1360 } -
1361} -
1362 -
1363 -
1364 -
1365 -
1366QList<QByteArray> QSslSocketPrivate::unixRootCertDirectories() -
1367{ -
1368 return QList<QByteArray>() << "/etc/ssl/certs/" 55
1369 << "/usr/lib/ssl/certs/" 55
1370 << "/usr/share/ssl/" 55
1371 << "/usr/local/ssl/" 55
1372 << "/var/ssl/certs/" 55
1373 << "/usr/local/ssl/certs/" 55
1374 << "/var/certmgr/web/user_trusted/" 55
1375 << "/opt/openssl/certs/";
executed: return QList<QByteArray>() << "/etc/ssl/certs/" << "/usr/lib/ssl/certs/" << "/usr/share/ssl/" << "/usr/local/ssl/" << "/var/ssl/certs/" << "/usr/local/ssl/certs/" << "/var/certmgr/web/user_trusted/" << "/opt/openssl/certs/";
Execution Count:55
55
1376} -
1377 -
1378 -
1379 -
1380 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial