Compare commits

...

17 Commits

Author SHA1 Message Date
Roberto Viola
54798aa1b4 Merge branch 'master' into ios_floating_window 2023-11-14 16:31:34 +01:00
Roberto Viola
5013dd1a2a Merge branch 'master' into ios_floating_window 2023-11-13 17:13:43 +01:00
Roberto Viola
f868464c16 Revert "adding persistentcookiejar (not tested)"
This reverts commit 7f66796d4e.
2023-03-13 11:10:29 +01:00
Roberto Viola
7f66796d4e adding persistentcookiejar (not tested) 2023-03-13 09:50:19 +01:00
Roberto Viola
64a2c14752 resize and alpha 2023-03-10 15:00:58 +01:00
Roberto Viola
92d4efea74 localhost.direct works! 2023-03-07 14:19:55 +01:00
Roberto Viola
26e6fe8f14 Update webserverinfosender.cpp 2023-03-06 17:16:23 +01:00
Roberto Viola
74917032b9 playing with certs 2023-03-06 16:33:24 +01:00
Roberto Viola
e89bb2b25d Merge branch 'ios_floating_window' of https://github.com/cagnulein/qdomyos-zwift into ios_floating_window 2023-03-06 15:00:24 +01:00
Roberto Viola
286853f704 ignore certificate error 2023-03-06 14:59:47 +01:00
Roberto Viola
b05a479722 qsslserver library added 2023-03-06 14:27:02 +01:00
Roberto Viola
f8ebb450d0 build fix 2023-03-06 14:22:33 +01:00
Roberto Viola
c57a5ba653 changing http to https 2023-03-06 12:22:25 +01:00
Roberto Viola
03ce5f0043 to be tested 2023-03-06 11:44:40 +01:00
Roberto Viola
2904a987fc playing with certificates 2023-03-04 09:42:09 +01:00
Roberto Viola
709e73702d have to fix https thing 2023-03-03 17:18:17 +01:00
Roberto Viola
f1dec0a9b4 iframe works on a webpage! 2023-03-03 15:12:50 +01:00
9 changed files with 192 additions and 12 deletions

View File

@@ -354,8 +354,8 @@
879F740F2893D592009A64C8 /* libqtmedia_audioengine.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 879F740E2893D591009A64C8 /* libqtmedia_audioengine.a */; };
879F74112893D5B8009A64C8 /* libqavfcamera.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 879F74102893D5B7009A64C8 /* libqavfcamera.a */; };
879F74152893D732009A64C8 /* CoreMedia.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 879F74142893D732009A64C8 /* CoreMedia.framework */; };
87A0771029B641D600A368BF /* wahookickrheadwind.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0770F29B641D500A368BF /* wahookickrheadwind.cpp */; };
87A0771229B6420200A368BF /* moc_wahookickrheadwind.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0771129B6420200A368BF /* moc_wahookickrheadwind.cpp */; };
87A0770C29B6217500A368BF /* libQt5SslServer.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 87A0770B29B6217400A368BF /* libQt5SslServer.a */; };
87A0770D29B6218700A368BF /* libQt5SslServer.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 87A0770B29B6217400A368BF /* libQt5SslServer.a */; };
87A0C4BB262329A600121A76 /* npecablebike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0C4B7262329A600121A76 /* npecablebike.cpp */; };
87A0C4BC262329A600121A76 /* cscbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0C4B9262329A600121A76 /* cscbike.cpp */; };
87A0C4BF262329B500121A76 /* moc_cscbike.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 87A0C4BD262329B500121A76 /* moc_cscbike.cpp */; };
@@ -1158,9 +1158,7 @@
879F74102893D5B7009A64C8 /* libqavfcamera.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libqavfcamera.a; path = ../../Qt/5.15.2/ios/plugins/mediaservice/libqavfcamera.a; sourceTree = "<group>"; };
879F74122893D705009A64C8 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
879F74142893D732009A64C8 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
87A0770E29B641D500A368BF /* wahookickrheadwind.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wahookickrheadwind.h; path = ../src/wahookickrheadwind.h; sourceTree = "<group>"; };
87A0770F29B641D500A368BF /* wahookickrheadwind.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wahookickrheadwind.cpp; path = ../src/wahookickrheadwind.cpp; sourceTree = "<group>"; };
87A0771129B6420200A368BF /* moc_wahookickrheadwind.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = moc_wahookickrheadwind.cpp; sourceTree = "<group>"; };
87A0770B29B6217400A368BF /* libQt5SslServer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQt5SslServer.a; path = ../qHttpServerBin/5.15.2/ios/lib/libQt5SslServer.a; sourceTree = "<group>"; };
87A0C4B7262329A600121A76 /* npecablebike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = npecablebike.cpp; path = ../src/npecablebike.cpp; sourceTree = "<group>"; };
87A0C4B8262329A600121A76 /* cscbike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cscbike.h; path = ../src/cscbike.h; sourceTree = "<group>"; };
87A0C4B9262329A600121A76 /* cscbike.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cscbike.cpp; path = ../src/cscbike.cpp; sourceTree = "<group>"; };
@@ -1613,6 +1611,7 @@
A48EFCF98552C67DAB8515FD /* Qt5ClipboardSupport in Link Binary With Libraries */,
4B457EBD757B30AEB87115EA /* qgif in Link Binary With Libraries */,
3CD4CA4EC80AF4F839D1019B /* qicns in Link Binary With Libraries */,
87A0770D29B6218700A368BF /* libQt5SslServer.a in Link Binary With Libraries */,
B714316583081A00BDF9C0F2 /* qico in Link Binary With Libraries */,
048796158C9224438A10BFB7 /* qjpeg in Link Binary With Libraries */,
E8C47E7768095E24910D0E38 /* qmacheif in Link Binary With Libraries */,
@@ -1691,6 +1690,7 @@
87F1179E26A5FBDE00541B3A /* libqtwebview_darwin.a in Link Binary With Libraries */,
A2512002BCC1BFB4FC6D60C1 /* Qt5Core in Link Binary With Libraries */,
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */,
87A0770C29B6217500A368BF /* libQt5SslServer.a in Link Binary With Libraries */,
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */,
3407CACF00E4A0046255A968 /* qtpcre2 in Link Binary With Libraries */,
25732265709055CB968558D3 /* Qt5NetworkAuth in Link Binary With Libraries */,
@@ -2345,6 +2345,7 @@
AF39DD055C3EF8226FBE929D /* Frameworks */ = {
isa = PBXGroup;
children = (
87A0770B29B6217400A368BF /* libQt5SslServer.a */,
8745B2742AFCB3B300991A39 /* libadb.a */,
873D388A29B0D744006A2611 /* ConnectIQ.xcframework */,
879F74142893D732009A64C8 /* CoreMedia.framework */,

View File

@@ -16,7 +16,7 @@ ColumnLayout {
WebView {
id: webView
anchors.fill: parent
url: "http://localhost:" + settings.value("template_inner_QZWS_port") + "/chartjs/chart.htm"
url: "https://localhost:" + settings.value("template_inner_QZWS_port") + "/chartjs/chart.htm"
visible: true
onLoadingChanged: {
if (loadRequest.errorString) {

View File

@@ -17,7 +17,7 @@ ColumnLayout {
WebView {
id: webView
anchors.fill: parent
url: "http://localhost:" + settings.value("template_inner_QZWS_port") + "/" + (settings.value("maps_type") === "3D" ? "googlemaps" : "maps2d") + "/maps.htm"
url: "https://localhost:" + settings.value("template_inner_QZWS_port") + "/" + (settings.value("maps_type") === "3D" ? "googlemaps" : "maps2d") + "/maps.htm"
visible: true
onLoadingChanged: {
if (loadRequest.errorString)

View File

@@ -82,7 +82,7 @@ public class FloatingWindowGFG extends Service {
});
WebSettings settings = wv.getSettings();
settings.setJavaScriptEnabled(true);
wv.loadUrl("http://localhost:" + FloatingHandler._port + "/floating/floating.htm");
wv.loadUrl("https://localhost:" + FloatingHandler._port + "/floating/floating.htm");
wv.clearView();
wv.measure(100, 100);
wv.setAlpha(Float.valueOf(FloatingHandler._alpha) / 100.0f);

73
src/iOSFloating.qml Normal file
View File

@@ -0,0 +1,73 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.15
import QtQuick.Controls.Material 2.0
import Qt.labs.settings 1.0
import QtWebView 1.1
Item {
id: column1
// vedi trainprogram_open_clicked
Settings {
id: settings
}
WebView {
id: webView
property var rr;
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width
url: "https://youtube.com"
visible: true
onLoadingChanged: {
if (loadRequest.errorString)
console.error(loadRequest.errorString);
if (loadRequest.status == WebView.LoadSucceededStatus) {
console.error("Procedo");
let loadScr = `
var iframeContainer = document.createElement("iframe");
iframeContainer.src = "https://localhost.direct:` + settings.value("template_inner_QZWS_port") + `/floating/floating.htm";
iframeContainer.width = ` + settings.value("floating_width") + `;
iframeContainer.height = ` + settings.value("floating_height") + `;
iframeContainer.frameBorder = "0";
iframeContainer.style.cssText = "position: absolute; bottom: 20px; right: 20px; transform: translate(-50%, -50%); z-index: 1; opacity: ` + settings.value("floating_transparency") / 100.0 + `;";
document.body.appendChild(iframeContainer);
var moveButton = document.createElement("button");
var buttonText = document.createTextNode("Move");
moveButton.appendChild(buttonText);
moveButton.style.cssText = "z-index: 1; position: absolute; bottom: 20px; right: 20px; background-color: white; color: black; border: none; padding: 10px; border-radius: 5px; cursor: pointer; width: 50px; height: 50px";
document.body.appendChild(moveButton);
var isMoving = false;
var offsetX, offsetY;
moveButton.addEventListener('mousedown', function (event) {
isMoving = true;
offsetX = event.clientX - iframeContainer.offsetLeft;
offsetY = event.clientY - iframeContainer.offsetTop;
});
moveButton.addEventListener('mouseup', function () {
isMoving = false;
});
document.addEventListener('mousemove', function (event) {
if (isMoving) {
iframeContainer.style.left = event.clientX - offsetX + 'px';
iframeContainer.style.top = event.clientY - offsetY + 'px';
}
});
`;
console.error(loadScr);
webView.runJavaScript(loadScr, function(res) {
});
}
}
}
}

View File

@@ -420,9 +420,9 @@ ApplicationWindow {
ToolButton {
id: toolButtonFloating
icon.source: "icons/icons/mini-display.png"
onClicked: { console.log("floating!"); floatingOpen(); }
onClicked: { if(OS_VERSION === "Android") { console.log("floating!"); floatingOpen(); } else { stackView.push("iOSFloating.qml"); } }
anchors.left: toolButton.right
visible: OS_VERSION === "Android" ? true : false
visible: true
}
Popup {

View File

@@ -93,6 +93,7 @@
<file>inner_templates/floating/radikalmedium.otf</file>
<file>settings-treadmill-inclination-override.qml</file>
<file>WebStravaAuth.qml</file>
<file>iOSFloating.qml</file>
<file>Toast.qml</file>
<file>ToastManager.qml</file>
<file>inner_templates/chartjs/elliptical.png</file>

View File

@@ -18,7 +18,7 @@ void WebServerInfoSender::ignoreSSLErrors(QNetworkReply *repl, const QList<QSslE
bool WebServerInfoSender::listen() {
if (!innerTcpServer) {
innerTcpServer = new QTcpServer(this);
innerTcpServer = new QSslServer(sslconf, this);
connect(innerTcpServer, SIGNAL(acceptError(QAbstractSocket::SocketError)), this, SLOT(acceptError(QAbstractSocket::SocketError)));
}
if (!innerTcpServer->isListening()) {
@@ -78,8 +78,106 @@ bool WebServerInfoSender::init() {
port = settings.value(QStringLiteral("template_") + templateId + QStringLiteral("_port"), 6666).toInt(&ok);
if (!ok)
port = 6666;
if (!httpServer)
if (!httpServer) {
httpServer = new QHttpServer(this);
static const char g_privateKey[] = R"(-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCfxIwp8v2ruyo7
SQyxuHNMdRKNm6ETkNyTU64mGurtWq7rcMma9AsER7e3oFV2kYVUIxoBRbLrlYnx
EcWMyEHopEm2LZbbqGNE3U7JZGGr84VNyfuRXqNM/QgRRjP4h2Tq9dT9AduNlQdl
VDU7kfyJpHMfh6HNqdzZs48QEbpueypqoyCPevENZLKmbegisJh+A4ffnRO30t5M
L5639kjnBygouKNSQpFwPM/zU+guBCR0KgQxdn7urgkqkqTE+lCOOnVvUJmU4mCP
cM0+8Svaozzm20cwP5XEYzTjmUBSyGEZeGZSbUFCxEOCvLHm/FQqCsGAk8GopnhS
h1qwO4TxAgMBAAECggEAe6JigNfb+7fjr2sRGrpM5v61s8WaOYThXFTmL/CmmbSS
Jfnq2TE/ETnabovxdsaXsYtURWXFVk8rJtUE1bPmZPw1WngfBK5i21iS7n/yoVja
cF78gPsGTb6FLrDv6MQFkVlZT8zPNNn9lik65HVNQspymBSiXn+zOvibnejKJ1GJ
ePCggHMT8y1CreXr2BkDjNUR+4exd9QatJbfSSdmyc+Fs+gXZ2w+IrW114rM6GQb
p56LfKDI2R3dH0zc/1g53cgoL7MgvqxuggjzIASGw4Xo3dysxsxBgpysB0y7AYrL
7Jt1nE9QT6AT0F5su/2Q2g3ImTTiXqumPzO8TYtCAQKBgQDKuoOAJTyHuqETPwXn
4QFQMdHczmZUEobeHuWHnidy8HV0Aw3cX5ZxRqZch1Dw9fOOYna6KJKaq2Yw5Ghz
DcqlE1cP6Qmim8bmD4/z763/IIJ5T8J18p3AKEw5/Br+nbWp8N7ZMDz9xa6+qkrm
Nfr9xMGdWQh5Oyu+Sknw2EtxkQKBgQDJwBL6x9evtCaOOGnA/0vpsoFMaFX0SBx+
NRCv5ehrHW5D88Py88O0ymRHIEVaMMknghlcTUln58KYrk0kzqhNLoZYZVf6ivpt
9qQaRnIUgy8krlrDiyvn4OFnhfh5DNm/nd+wikPJEwcI1q0z8R7+g9y3RKCNL6s2
HQG3Jj8tYQKBgEoBVEfPUA1sP6i69Pj01nnj9exZHFnMeZdUSA392gDHbtju1HyC
GHU5iTl13EJaRpLPtu+2J+52a1OlzctSWYtxR/Ly6yWFIFKTk8VE1Yuw3nBSgXZ1
Hskq7MiuE1ynTc2/tFosldc99tB7ceQgCIPi85rxCXrX8twAWoWlL8VBAoGAPg06
iTGAEEWLekC1niuncJh7lkGc9kZbpSGzITbIVnG14WaPRSFedzOsxgeR7RyGMgWc
wTvwMOoiew1ZItIBB8Qgg/2foqquPbYXYRF7sv1qOZD6z5v1hBsxmMKm2qxuKLZo
/4Z3NNgKWNiWaxxlWQi7kQ6lhuc7dKhVR7yWv+ECgYAuM2gtT83DyR4ymSO7Q6dv
dT/UObzrkPfDmkRW2y4PUqAC6Pa/9+4HbBgHGpta0mIu7jwzSeDzvKhOf39TOdGd
rgqC8coanU3KUQ0hQ3qxc31sK04xd0oL7IlHN84raYakjpldRcGDa5rMBvuAhX7l
UtzKXXRaWNoRy0DfRWzoyw==
-----END PRIVATE KEY-----)";
static const char g_certificate[] = R"(-----BEGIN CERTIFICATE-----
MIIGSTCCBTGgAwIBAgIMdxktQkXvAVtRN9TFMA0GCSqGSIb3DQEBCwUAMEwxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSIwIAYDVQQDExlB
bHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcyMB4XDTIyMDMyOTAyNTIyMVoXDTIzMDQz
MDAyNTIyMFowHTEbMBkGA1UEAwwSKi5sb2NhbGhvc3QuZGlyZWN0MIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn8SMKfL9q7sqO0kMsbhzTHUSjZuhE5Dc
k1OuJhrq7Vqu63DJmvQLBEe3t6BVdpGFVCMaAUWy65WJ8RHFjMhB6KRJti2W26hj
RN1OyWRhq/OFTcn7kV6jTP0IEUYz+Idk6vXU/QHbjZUHZVQ1O5H8iaRzH4ehzanc
2bOPEBG6bnsqaqMgj3rxDWSypm3oIrCYfgOH350Tt9LeTC+et/ZI5wcoKLijUkKR
cDzP81PoLgQkdCoEMXZ+7q4JKpKkxPpQjjp1b1CZlOJgj3DNPvEr2qM85ttHMD+V
xGM045lAUshhGXhmUm1BQsRDgryx5vxUKgrBgJPBqKZ4UodasDuE8QIDAQABo4ID
WDCCA1QwDgYDVR0PAQH/BAQDAgWgMIGKBggrBgEFBQcBAQR+MHwwQwYIKwYBBQUH
MAKGN2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dzYWxwaGFz
aGEyZzJyMS5jcnQwNQYIKwYBBQUHMAGGKWh0dHA6Ly9vY3NwMi5nbG9iYWxzaWdu
LmNvbS9nc2FscGhhc2hhMmcyMFcGA1UdIARQME4wQgYKKwYBBAGgMgEKCjA0MDIG
CCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5
LzAIBgZngQwBAgEwCQYDVR0TBAIwADA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8v
Y3JsLmdsb2JhbHNpZ24uY29tL2dzL2dzYWxwaGFzaGEyZzIuY3JsMC8GA1UdEQQo
MCaCEioubG9jYWxob3N0LmRpcmVjdIIQbG9jYWxob3N0LmRpcmVjdDAdBgNVHSUE
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAU9c3VPAhQ+WpPOreX
2laD5mnSaPcwHQYDVR0OBBYEFKJIjzgsaaVBT/uEaAvJNihZEmG5MIIBfgYKKwYB
BAHWeQIEAgSCAW4EggFqAWgAdQDoPtDaPvUGNTLnVyi8iWvJA9PL0RFr7Otp4Xd9
bQa9bgAAAX/TlrBWAAAEAwBGMEQCIHSp1pDooZSiB2vOUgXCcOjw4JZL0h3/41Jb
XpDjEgOqAiBOFnt0KMGpLhgXKmOC7yllaNKRApke2awT2FDVZyaUTgB2AG9Tdqwx
8DEZ2JkApFEV/3cVHBHZAsEAKQaNsgiaN9kTAAABf9OWsFQAAAQDAEcwRQIhAPna
KZ58189iW3tkCKB/LSu94Hg5BDZ/Md23nLYYHBMhAiBviFfs4hzlRv3Ivae3r5NJ
S9c3kUzAELD2eFWSOnj6iAB3AFWB1MIWkDYBSuoLm1c8U/DA5Dh4cCUIFy+jqh0H
E9MMAAABf9OWsIMAAAQDAEgwRgIhAJBxU2mJB7HLFrmgTrfWCtJvPK3YUhvKG13G
lrMMGrHoAiEA4me4djsIMHHabov1eQrrvkaI95xFTyqKfQl3FK6A9y4wDQYJKoZI
hvcNAQELBQADggEBACXSYB2WTlREfpuquD75rZTja2qFkDkrFjnCes50tqqVxemF
G4kGV7N/7aSr1T9BvW/DCzYy5UABabvEM+MGaHNcMibYqoSNWgfvAULZPVzL45Uz
pghoz7xci2ol5/5ceNx7YEW0nehw2r7A4/6mjFYbkOIzBILz4zOlilmYHBTDkdMC
W45YM5RbOqWCqGDwSuASH5hEoHDDsRhJksHjJNCoX0PKMilscqfVw5h80xRVEtVu
DLBXL79GXXSQk2q1jxVv1i3o29TYw2bk3WCM8Uw2LJV2jerKF2+9ymboZKURKfHU
e20WdjHUOZc3kHLXYGVjjU1/e+Thf6DrUn3YmPU=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIETTCCAzWgAwIBAgILBAAAAAABRE7wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
MDBaFw0yNDAyMjAxMDAwMDBaMEwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMSIwIAYDVQQDExlBbHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcy
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gHs5OxzYPt+j2q3xhfj
kmQy1KwA2aIPue3ua4qGypJn2XTXXUcCPI9A1p5tFM3D2ik5pw8FCmiiZhoexLKL
dljlq10dj0CzOYvvHoN9ItDjqQAu7FPPYhmFRChMwCfLew7sEGQAEKQFzKByvkFs
MVtI5LHsuSPrVU3QfWJKpbSlpFmFxSWRpv6mCZ8GEG2PgQxkQF5zAJrgLmWYVBAA
cJjI4e00X9icxw3A1iNZRfz+VXqG7pRgIvGu0eZVRvaZxRsIdF+ssGSEj4k4HKGn
kCFPAm694GFn1PhChw8K98kEbSqpL+9Cpd/do1PbmB6B+Zpye1reTz5/olig4het
ZwIDAQABo4IBIzCCAR8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
AQAwHQYDVR0OBBYEFPXN1TwIUPlqTzq3l9pWg+Zp0mj3MEUGA1UdIAQ+MDwwOgYE
VR0gADAyMDAGCCsGAQUFBwIBFiRodHRwczovL3d3dy5hbHBoYXNzbC5jb20vcmVw
b3NpdG9yeS8wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5nbG9iYWxzaWdu
Lm5ldC9yb290LmNybDA9BggrBgEFBQcBAQQxMC8wLQYIKwYBBQUHMAGGIWh0dHA6
Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMTAfBgNVHSMEGDAWgBRge2YaRQ2X
yolQL30EzTSo//z9SzANBgkqhkiG9w0BAQsFAAOCAQEAYEBoFkfnFo3bXKFWKsv0
XJuwHqJL9csCP/gLofKnQtS3TOvjZoDzJUN4LhsXVgdSGMvRqOzm+3M+pGKMgLTS
xRJzo9P6Aji+Yz2EuJnB8br3n8NA0VgYU8Fi3a8YQn80TsVD1XGwMADH45CuP1eG
l87qDBKOInDjZqdUfy4oy9RU0LMeYmcI+Sfhy+NmuCQbiWqJRGXy2UzSWByMTsCV
odTvZy84IOgu/5ZR8LrYPZJwR2UcnnNytGAMXOLRc3bgr07i5TelRS+KIz6HxzDm
MTh89N1SyvNTBCVXVmaU6Avu5gMUTu79bZRknl7OedSyps9AsUSoPocZXun4IRZZ
Uw==
-----END CERTIFICATE-----)";
sslconf.setLocalCertificate(QSslCertificate(g_certificate));
sslconf.setPrivateKey(QSslKey(g_privateKey, QSsl::Rsa));
sslconf.setProtocol(QSsl::SecureProtocols);
httpServer->sslSetup(sslconf);
}
relative2Absolute.clear();
for (auto fld : folders) {
idx = fld.lastIndexOf('/');
@@ -111,6 +209,7 @@ bool WebServerInfoSender::init() {
qDebug() << QStringLiteral("WebServer listening on port") << port << QStringLiteral(" ")
<< relative2Absolute;
connect(httpServer, SIGNAL(newWebSocketConnection()), this, SLOT(onNewConnection()));
connect(httpServer, &QHttpServer::missingHandler, this, &WebServerInfoSender::missingHandler);
return true;
} else {
reinit();
@@ -119,6 +218,10 @@ bool WebServerInfoSender::init() {
return false;
}
void WebServerInfoSender::missingHandler(const QHttpServerRequest &request, QTcpSocket *socket) {
qDebug() << request << socket;
}
void WebServerInfoSender::watchdogEvent() {
if(innerTcpServer->serverError() != QAbstractSocket::UnknownSocketError)
qDebug() << "WebServerInfoSender is " << innerTcpServer->serverError();

View File

@@ -30,6 +30,7 @@ class WebServerInfoSender : public TemplateInfoSender {
bool listen();
void processFetcher(QWebSocket *sender, const QByteArray &data);
QTimer watchdogTimer;
QSslConfiguration sslconf;
protected:
virtual void innerStop();
@@ -42,6 +43,7 @@ class WebServerInfoSender : public TemplateInfoSender {
QHash<QString, QString> relative2Absolute;
QHash<QNetworkReply *, QPair<QJsonObject, QWebSocket *>> reply2Req;
private slots:
void missingHandler(const QHttpServerRequest &request, QTcpSocket *socket);
void acceptError(QAbstractSocket::SocketError socketError);
void watchdogEvent();
void onNewConnection();