qBittorrent
net.h
Go to the documentation of this file.
1 /*
2  * Bittorrent Client using Qt and libtorrent.
3  * Copyright (C) 2016 Alexandr Milovantsev <[email protected]>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  *
19  * In addition, as a special exception, the copyright holders give permission to
20  * link this program with the OpenSSL project's "OpenSSL" library (or with
21  * modified versions of it that use the same license as the "OpenSSL" library),
22  * and distribute the linked executables. You must obey the GNU General Public
23  * License in all respects for all of the code used other than "OpenSSL". If you
24  * modify file(s), you may extend this exception to your version of the file(s),
25  * but you are not obligated to do so. If you do not wish to do so, delete this
26  * exception statement from your version.
27  */
28 
29 #pragma once
30 
31 #include <QHostAddress>
32 #include <QtContainerFwd>
33 
34 class QSslCertificate;
35 class QSslKey;
36 class QString;
37 
38 namespace Utils::Net
39 {
40  using Subnet = QPair<QHostAddress, int>;
41 
42  bool isValidIP(const QString &ip);
43  Subnet parseSubnet(const QString &subnetStr, bool *ok = nullptr);
44  bool canParseSubnet(const QString &subnetStr);
45  bool isLoopbackAddress(const QHostAddress &addr);
46  bool isIPInRange(const QHostAddress &addr, const QVector<Subnet> &subnets);
47  QString subnetToString(const Subnet &subnet);
48  QHostAddress canonicalIPv6Addr(const QHostAddress &addr);
49 
50  const int MAX_SSL_FILE_SIZE = 1024 * 1024;
51  QList<QSslCertificate> loadSSLCertificate(const QByteArray &data);
52  bool isSSLCertificatesValid(const QByteArray &data);
53  QSslKey loadSSLKey(const QByteArray &data);
54  bool isSSLKeyValid(const QByteArray &data);
55 }
Subnet parseSubnet(const QString &subnetStr, bool *ok)
Definition: net.cpp:48
bool isValidIP(const QString &ip)
Definition: net.cpp:43
bool isLoopbackAddress(const QHostAddress &addr)
Definition: net.cpp:64
bool isSSLKeyValid(const QByteArray &data)
Definition: net.cpp:153
const int MAX_SSL_FILE_SIZE
Definition: net.h:50
QSslKey loadSSLKey(const QByteArray &data)
Definition: net.cpp:144
bool isIPInRange(const QHostAddress &addr, const QVector< Subnet > &subnets)
Definition: net.cpp:71
QString subnetToString(const Subnet &subnet)
Definition: net.cpp:95
QHostAddress canonicalIPv6Addr(const QHostAddress &addr)
Definition: net.cpp:100
QPair< QHostAddress, int > Subnet
Definition: net.h:40
bool canParseSubnet(const QString &subnetStr)
Definition: net.cpp:57
bool isSSLCertificatesValid(const QByteArray &data)
Definition: net.cpp:139
QList< QSslCertificate > loadSSLCertificate(const QByteArray &data)
Definition: net.cpp:131