Properly implement a 'make docs' target for subdirs and apps/libs
[profile/ivi/qtbase.git] / doc / src / snippets / code / src_network_ssl_qsslsocket.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the documentation of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:BSD$
9 ** You may use this file under the terms of the BSD license as follows:
10 **
11 ** "Redistribution and use in source and binary forms, with or without
12 ** modification, are permitted provided that the following conditions are
13 ** met:
14 **   * Redistributions of source code must retain the above copyright
15 **     notice, this list of conditions and the following disclaimer.
16 **   * Redistributions in binary form must reproduce the above copyright
17 **     notice, this list of conditions and the following disclaimer in
18 **     the documentation and/or other materials provided with the
19 **     distribution.
20 **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
21 **     the names of its contributors may be used to endorse or promote
22 **     products derived from this software without specific prior written
23 **     permission.
24 **
25 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 **
37 ** $QT_END_LICENSE$
38 **
39 ****************************************************************************/
40
41 //! [0]
42 QSslSocket *socket = new QSslSocket(this);
43 connect(socket, SIGNAL(encrypted()), this, SLOT(ready()));
44
45 socket->connectToHostEncrypted("imap.example.com", 993);
46 //! [0]
47
48
49 //! [1]
50 void SslServer::incomingConnection(qintptr socketDescriptor)
51 {
52     QSslSocket *serverSocket = new QSslSocket;
53     if (serverSocket->setSocketDescriptor(socketDescriptor)) {
54         connect(serverSocket, SIGNAL(encrypted()), this, SLOT(ready()));
55         serverSocket->startServerEncryption();
56     } else {
57         delete serverSocket;
58     }
59 }
60 //! [1]
61
62
63 //! [2]
64 QSslSocket socket;
65 socket.connectToHostEncrypted("http.example.com", 443);
66 if (!socket.waitForEncrypted()) {
67     qDebug() << socket.errorString();
68     return false;
69 }
70
71 socket.write("GET / HTTP/1.0\r\n\r\n");
72 while (socket.waitForReadyRead())
73     qDebug() << socket.readAll().data();
74 //! [2]
75
76
77 //! [3]
78 QSslSocket socket;
79 connect(&socket, SIGNAL(encrypted()), receiver, SLOT(socketEncrypted()));
80
81 socket.connectToHostEncrypted("imap", 993);
82 socket->write("1 CAPABILITY\r\n");
83 //! [3]
84
85
86 //! [4]
87 QSslSocket socket;
88 socket.setCiphers("DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA");
89 //! [4]
90
91
92 //! [5]
93 socket->connectToHostEncrypted("imap", 993);
94 if (socket->waitForEncrypted(1000))
95     qDebug("Encrypted!");
96 //! [5]
97
98 //! [6]
99 QList<QSslCertificate> cert = QSslCertificate::fromPath(QLatin1String("server-certificate.pem"));
100 QSslError error(QSslError::SelfSignedCertificate, cert.at(0));
101 QList<QSslError> expectedSslErrors;
102 expectedSslErrors.append(error);
103
104 QSslSocket socket;
105 socket.ignoreSslErrors(expectedSslErrors);
106 socket.connectToHostEncrypted("server.tld", 443);
107 //! [6]