Commit graph

596 commits

Author SHA1 Message Date
Albert Vaca Cintora
665039055e Missing ifdef 2023-07-17 23:21:02 +02:00
Albert Vaca Cintora
cf87cdab8c Do not link KDNSSD 2023-07-17 23:18:20 +02:00
Albert Vaca Cintora
4fe4047b8e Formatting fixes 2023-07-17 23:09:58 +02:00
Albert Vaca Cintora
c7ce310299 WIP: IPv6 support 2023-07-17 23:06:44 +02:00
Albert Vaca Cintora
0a72020506 WIP: Return some ip in ip records 2023-07-17 23:06:35 +02:00
Albert Vaca Cintora
b682753f1b Fix windows build 2023-07-17 23:06:31 +02:00
Albert Vaca Cintora
c94215ce05 Rename things 2023-07-17 23:06:24 +02:00
Albert Vaca Cintora
bbf053ed5a WIP: Implement mdns server responses, missing a way to determine ip address 2023-07-17 23:06:20 +02:00
Albert Vaca Cintora
6ffc10f00a WIP: Continue to integrate with mdns.h 2023-07-17 23:06:11 +02:00
Albert Vaca Cintora
b8892f3860 Rename some stuff 2023-07-17 23:05:02 +02:00
Albert Vaca Cintora
0741a7db88 Add commented code to parse the fields we don't store 2023-07-17 23:04:58 +02:00
Albert Vaca Cintora
9a0b7ef78b WIP: Replacing KDNSSD with mdns.h
KDNSSD only works with Avahi (so, only on Linux) while mdns.h is a
header-only library [1] that implements mdns from scratch and should
work on all platforms.

[1] https://github.com/mjansson/mdns
2023-07-17 23:04:39 +02:00
Albert Vaca Cintora
20750b7d99 Fixes from code review 2023-07-17 20:41:15 +00:00
Albert Vaca Cintora
bb8e67efc9 Add CMake flag to enable MDNS (off by default) 2023-07-17 20:41:15 +00:00
Albert Vaca Cintora
17dcf80f2d Send UDP identity packets without capabilities only if needed
Instead of always doing so on MacOS, do it only when we get a
DatagramTooLargeError. On MacOS, the size is limited only for
broadcast but not for unicast.
2023-07-17 20:41:15 +00:00
Albert Vaca Cintora
a04d9480a4 Add a way to disable UDP broadcasts for testing 2023-07-17 20:41:15 +00:00
Albert Vaca Cintora
34e0128fe9 Add MDNS discovery 2023-07-17 20:41:15 +00:00
Albert Vaca Cintora
f218c5f4e5 Fix windows build 2023-07-16 18:01:13 +02:00
Albert Vaca Cintora
9c87393b28 clang-format pass 2023-07-16 16:20:34 +02:00
Albert Vaca Cintora
af907cea83 Check for null devices in compositeuploadjob 2023-07-16 15:01:04 +02:00
Albert Vaca Cintora
12a1f33665 Fix crash when sending files 2023-07-16 14:44:31 +02:00
Albert Vaca Cintora
05f38b064d Fix Windows build when linking against current KF5
We need to link against WinSock2 because we use WSAIoctl to set keepalive
2023-07-12 23:10:24 +02:00
Albert Vaca Cintora
5796b561bf Simplify the code that reads from the socket line by line
Since sockets are buffered `QIODevices` we can use `canReadLine()` to check
if we have a full line, instead of using a custom `SocketLineReader` class
(and the copy-pasted `DeviceLineReader` in the Bluetooth backend). 

We can also loop through all the lines instead of queuing calls to `dataReceived`.

And we don't need transactions.
2023-07-10 15:58:56 +00:00
Albert Vaca Cintora
9fa07a2361 Call connected only once in the lifetime of a plugin 2023-06-29 09:01:31 +00:00
Albert Vaca Cintora
beb7e94cbb Cleanup 2023-06-27 13:15:11 +02:00
Albert Vaca Cintora
db546e7608 Add DeviceInfo class
Equivalent to this Android MR (see description there): https://invent.kde.org/network/kdeconnect-android/-/merge_requests/374
2023-06-27 11:10:59 +00:00
Albert Vaca Cintora
3018b3bf3d Connect to QUdpSocket's errorOcurred to make errors visible 2023-06-25 21:58:50 +02:00
Albert Vaca Cintora
3c36384078 Fix loopback link pairing timing out when already paired 2023-06-24 17:40:46 +02:00
Albert Vaca Cintora
46dd0c59da Remove unused priority() method 2023-06-22 23:46:44 +02:00
Albert Vaca Cintora
7ca8b7bf95 Fix infinite loop when already paired devices ask to pair 2023-06-16 19:49:50 +02:00
Albert Vaca Cintora
a56ff23770 Let Qt delete this when the parent is destroyed 2023-06-02 16:38:52 +00:00
Albert Vaca Cintora
fbaf5ade71 Remove unused name method 2023-06-02 16:38:52 +00:00
Albert Vaca Cintora
064ddfa3fe Refactor PairingHandler
We now have a single PairingHandler for all types of links.

The implementation now is more aligned with the one for Android.
2023-06-02 16:38:52 +00:00
Albert Vaca Cintora
571575df28 When receiving files, delay de-duplicating filenames
When receiving two files with the same name, the first file might not be
saved to disk already when we have to decide the name for the second if
we do it too early.

BUG: 470078
2023-05-25 22:54:17 +00:00
Ali Abdel-Qader
bbac0aa085 Use explicit constructor for QSslCertificate with value initialized
argument

Previously the BluetoothDeviceLink::certificate() method was returning a
value initialized object which I believe default initializes the object.
However, Clang throws a build error at this because QSslCertificate has
explicit constructors. This change uses one of those constructors and
uses value intialization to default construct/initialize the argument
for it. It fixes the build and hopefully doesn't break anything since
this is a TODO anyways!

BUG: 469428

Signed-off-by: Ali Abdel-Qader <abdelqaderali@protonmail.com>
2023-05-06 15:51:53 -04:00
Albert Vaca Cintora
81d6a12dfa Do not load the BigScreen plugin unless on a TV 2023-04-11 22:05:24 +00:00
Albert Vaca Cintora
6e2f218b55 Follow-up to my previous commit (fixes build) 2023-04-10 10:52:29 +02:00
Albert Vaca Cintora
74caaface0 Further KIO::AccessManager cleanup 2023-04-10 08:29:48 +00:00
Nicolas Fella
2c2e883288 Don't use KIO::AccessManager
The main thing it provides over QNetworkAccessManager is integration
with the CookieJar and using kio-http, but since we jsut exchange bytes
from another local device that's not interesting for us
2023-04-10 08:29:48 +00:00
Albert Vaca Cintora
87a608136f Remove check for a legacy field
Introduced in ee5bf89071
2023-03-23 17:03:58 +00:00
Albert Vaca Cintora
107dfb9e3d Remove specific list of ciphers
We can let the system use the full list when negotiating since we no longer
support Android < 5.0
2023-03-05 14:25:05 +00:00
Albert Vaca Cintora
20ede97ec4 Fix format 2023-03-04 23:44:39 +01:00
ValdikSS ValdikSS
bd796836c5 Enable socket Keep-Alive on Windows
Windows does not use setsockopt for keep-alive configuration,
requiring WSAIoctl call.

https://learn.microsoft.com/en-us/windows/win32/winsock/sio-keepalive-vals

BUG: 442790
BUG: 451597
2023-03-04 13:06:55 +00:00
Aleix Pol
804d17b67c Ensure openconfig.h is only included once
Addresses a warning by the compiler
2023-02-17 07:48:45 +00:00
Willyanto Willyanto
29f56dcc29 Perform initialization in initialization list
Fixes variable is assigned in constructor body. Consider performing
initialization in initialization list. (CWE-398)
2022-12-22 23:24:31 +07:00
Volker Krause
002848efa8 Adapt build system to also support Qt 6
This is complicated by the Qt 5.6 requirement of SailfishOS, hopefully
that didn't get broken by this.
2022-10-29 16:51:41 +02:00
ValdikSS ValdikSS
390a44a901 Really set source IP for broadcast discovery packets on Windows/FreeBSD
This whole code was no-op: it enumerates network interfaces, enumerates
its IP addresses, but does not change the address of broadcast UDP
packet, sending it only via default route/interface.

Bind the socket to IP addresses of the interfaces to fix the issue.

BUG: 459171
2022-10-17 22:21:46 +00:00
Simon Redman
8cfa308140 Fix some Qt and KF5 deprecation warnings
## Summary

Fixes a few warnings about deprecated fields and methods.

## Test Plan

Things still seem to be basically working 🤷
2022-10-17 21:17:49 +00:00
Nicolas Fella
a918ffc0cb Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00:00
Kai Uwe Broulik
9c78fa0fff compositeuploadjob: Set total and processed files
This is the proper way to communicate progress.
It has Plasma show the file name in case of single files
and "n of m files" as before for multiple files.
2022-08-09 12:53:10 +02:00