Commit graph

345 commits

Author SHA1 Message Date
Aleix Pol
16eccd46d3 Restore having plugins without any capabilities
These won't need to be matched by the other device
2016-05-31 20:16:25 +02:00
Albert Vaca
4383a42703 Changed the way we detect if capabilities are supported 2016-05-31 20:10:35 +02:00
Albert Vaca
5654300249 Removed logs 2016-05-31 20:09:52 +02:00
Aleix Pol
9aa794b0da Merge branch 'master' into sslrefactor 2016-05-31 17:29:06 +02:00
Aleix Pol
c2349bacd7 Make sure we don't eat all system memory
I had wrong configuration files, the encription algorithm definitely
doesn't take it into account.
2016-05-05 17:45:49 +02:00
Vineet Garg
b96227ae75 Changed protocol version to TLS 1.0, as TLS 1.2 not supported on many Android device
Choosing cipher suites manually, same as of Android
2016-04-30 20:39:34 +05:30
David Kahles
abc5fa3c56 Remove second UDP socket in LanLinkProvider
We don't need two sockets for reading and writing.

REVIEW: 127769
2016-04-28 00:19:20 +02:00
Albert Vaca
29d3f9aa7a Expose protocol version 2016-04-14 18:52:31 -07:00
David Kahles
174cf3d3ce Don't reset m_pairStatus when unpair is requested by remote device
unpairInternal() will take care of this, otherwise pairingChanged() will not
be emited and though, the model won't notice it.

REVIEW: 127641
2016-04-13 08:44:47 +02:00
Albert Vaca
78d4ba2106 Cleanup 2016-03-08 07:29:34 -08:00
Albert Vaca
ff9775e1c9 Better logging of what's going on 2016-03-07 16:01:44 -08:00
Albert Vaca
8f9fde8f40 Fixed crash when pairing old Android apps. 2016-03-02 16:38:03 -08:00
Albert Vaca
ebd429629a Fixed unpairs never being sent 2016-03-02 16:17:38 -08:00
Albert Vaca
ea812f1101 Attribute not needed 2016-03-02 15:50:06 -08:00
Albert Vaca
b1ef3f9fc9 Use a different key for settings, so we don't clash with older versions. 2016-03-02 15:36:45 -08:00
Albert Vaca
90d2b0ad69 Changing TLS version to what is used in LanLinkProvider.
Android<16 doesn't support TLS>1.0
2016-02-12 09:02:56 -08:00
Albert Vaca
6cde0271fb Removed loopbackpairinghandler 2016-02-12 07:59:12 -08:00
Albert Vaca
aa4150f0c9 Moved ConnectionStarted from DeviceLink to LanDeviceLink 2016-01-10 07:12:13 -08:00
Albert Vaca
2aca5ca11e Added error message when trying to pair older devices 2015-12-17 09:24:34 -08:00
Aleix Pol
8a019ccddf Fix assert 2015-12-17 17:58:33 +01:00
Albert Vaca
7ed012e4a5 Fixed broadcast 2015-12-17 08:59:08 -08:00
Albert Vaca
f5404ea11b Removed more references to publicKey 2015-12-17 08:22:18 -08:00
Albert Vaca
918bb82ffa Do not store certificate and key in landevicelink
The socket already stores the certificate, and the public key is only used
in the sftp plugin, so it should be moved there or dropped.
2015-12-17 07:46:13 -08:00
Albert Vaca
4c84499e6a Don't addLink twice for the same link 2015-12-17 07:44:29 -08:00
Albert Vaca
dd7d4093ed Removed sendPackageEncrypted from DeviceLink 2015-12-17 07:43:52 -08:00
Albert Vaca
d37830b429 Simplified pairing logic 2015-12-17 06:54:29 -08:00
Albert Vaca
10b4ca00fb Set certificate in outgoing pairing packet 2015-12-17 06:53:57 -08:00
Albert Vaca
af43a21864 Propagate pairingError 2015-12-17 06:53:29 -08:00
Albert Vaca
1848e96a91 Fixed old signal name 2015-12-17 05:54:37 -08:00
Albert Vaca
49a24c258b Fixed crash 2015-12-17 05:54:24 -08:00
Albert Vaca
813c9fedb3 Calling setDeviceLink in pairing handler is not required anymore
Since we re-use the same device link object forever now
2015-12-17 04:41:53 -08:00
Albert Vaca
ddca4d6d63 Store and restore certificate and public key in lan link 2015-12-17 04:41:10 -08:00
Albert Vaca
945da8a84f Removed encrypted package type define 2015-12-10 19:06:55 -08:00
Albert Vaca
79a8103120 Added some asserts 2015-12-10 19:06:55 -08:00
Albert Vaca
2e4c3762e9 Re-use landevicelink objects instead of re-creating one each time 2015-12-10 17:11:48 -08:00
Albert Vaca
77facdbcfd Merge branch 'master' into sslrefactor 2015-12-07 03:38:06 -08:00
Albert Vaca
2e4ce90656 Commented out old encryption functions 2015-12-07 03:34:41 -08:00
Aleix Pol
d69cdce4c1 Make sure incoming Lan pair packages are processed by the LanPairHandler 2015-12-06 02:12:29 +01:00
Aleix Pol
7041c72aed Fix connect 2015-12-06 02:11:50 +01:00
Aleix Pol
e10b2e80c9 Propagate pairing errors 2015-12-06 01:51:53 +01:00
Aleix Pol
90c8f588bc Only respond to local broadcasts 2015-12-06 01:19:55 +01:00
Aleix Pol
69d899ed48 Only broadcast when the newly reported configuration is actually active 2015-12-06 01:19:20 +01:00
Aleix Pol
97d97ffa1b Fix connect 2015-12-06 01:18:27 +01:00
Holger Kaelberer
f072a0c615 notifications: allow to configure how to sync desktop notifications
Added kcm ui with global and app-specific config options.

Global options affect all notifications:

- Persistent only? --> Sync only notifications with timeout == 0?
- Include body? --> Add body string to summary when syncing?
- Minimum urgency

Per-application options affect notifications sent by a specific
application:

- Sync it at all?
- If yes, allow to define a "blacklist" pattern (QRegularExpression)
  to define which notifications should *not* be synced.

Applications are maintained in the per-device config and added when
seen the first time by the notification listener. From that moment on
they can be configured in the kcm ui.
2015-12-05 23:23:22 +01:00
Albert Vaca
03926cc3bf WIPx4 2015-12-02 11:04:35 -08:00
Albert Vaca
af5be6e9e0 Added a test mode to lanlinkprovider
Should fix tests when you run them on networks with real kdeconnects
running.
2015-12-02 09:49:00 -08:00
Albert Vaca
cf6cbd2925 WIPx3! 2015-12-01 10:45:14 -08:00
Albert Vaca
82bc73dd9b WIPx2 2015-12-01 07:25:34 -08:00
Albert Vaca
16f9af908a WIP 2015-11-30 10:36:01 -08:00
Albert Vaca
30d2dd991b Merge branch 'master' into sslmaster 2015-11-30 03:40:07 -08:00
Aleix Pol
0bca50af93 Merge branch '0.9' 2015-10-19 17:48:13 +02:00
Albert Vaca
d2b4a6f214 Indentation 2015-10-18 21:51:51 -07:00
Albert Vaca
e2f068b286 Fixed a memory leak making the DownloadJob destroy itself on disconnect
There are still some code paths where it doesn't get destroyed though,
like when the device gets unreachable (and the download socket doesn't
close for some reason).
2015-10-18 21:51:51 -07:00
Albert Vaca
229e3aa070 Removed unused class 2015-10-18 19:42:40 -07:00
Albert Vaca
4574aa3639 Make the origin also contain the file name, not only the device name 2015-10-17 13:32:57 -07:00
Vineet Garg
646196b3eb Added loopback pairing handler 2015-09-14 16:36:04 +05:30
Vineet Garg
73a80f0296 Fixed Lan Link Provider Test
Pairing timer was started even when pair package sending is failed, fixed that
2015-09-13 01:45:19 +05:30
David Edmundson
97034e3bbd Don't cleanup devices if pairing 2015-09-12 22:03:56 +02:00
David Edmundson
f1f3f48aaf Export pairStatus 2015-09-12 22:03:39 +02:00
Aleix Pol
2c2cb21ee1 Don't clean the devices that looked us up in the first place 2015-09-12 20:53:05 +02:00
Albert Vaca
217d4b60ff Fixed outging capabilities 2015-09-12 08:51:39 -07:00
Albert Vaca
4230f4fb44 Added a signal so plugins know when we update the config 2015-09-12 04:50:20 -07:00
Aleix Pol
f7423c6ad6 Better use of error information 2015-09-12 09:47:47 +02:00
Aleix Pol
4730022810 Pass arguments as const-reference 2015-09-12 09:45:59 +02:00
Aleix Pol
5e0a7a34b9 Merge branch 'master' into ssl
# Conflicts:
#	cli/kdeconnect-cli.cpp
#	core/backends/lan/landevicelink.cpp
#	core/backends/lan/landevicelink.h
#	core/backends/lan/lanlinkprovider.cpp
#	core/backends/lan/lanlinkprovider.h
#	core/backends/lan/socketlinereader.h
#	core/backends/lan/uploadjob.cpp
#	core/backends/lan/uploadjob.h
#	core/backends/loopback/loopbackdevicelink.h
#	core/daemon.cpp
#	core/daemon.h
#	core/device.cpp
#	core/device.h
2015-09-11 17:25:23 +02:00
Aleix Pol
b62349cae6 Merge branch 'stable' 2015-09-11 17:03:57 +02:00
Aleix Pol
9fedfcdb3d Notify QNAM about the file received size 2015-09-11 17:03:11 +02:00
Albert Vaca
89afa5b9af Renamed capabilties so we don't clash with KDE4's broken implementation 2015-09-11 06:20:15 -07:00
Aleix Pol
47147c5fa1 Merge branch 'stable' 2015-09-11 14:04:54 +02:00
Aleix Pol
c2acc37da6 Fix filtering of plugins that don't support capabilities 2015-09-11 14:00:15 +02:00
Aleix Pol
95f01c4bea Use C++ for setting the default argument 2015-09-11 12:34:52 +02:00
Aleix Pol
ca4a81b8e8 Merge branch 'stable' 2015-09-11 12:24:15 +02:00
Aleix Pol
2b8a54357e Remove redundant copy constructor 2015-09-11 12:22:59 +02:00
Aleix Pol
c62fac0bcf Don't join hte interfaces in 1 string
Let NetworkPackage do the serialization
2015-09-11 12:14:19 +02:00
Albert Vaca
4c98e2e7b3 Less verbose output 2015-09-11 02:29:57 -07:00
Albert Vaca
b07e442b97 Less verbose plugin loader 2015-09-11 01:12:34 -07:00
Albert Vaca
4df14d1c7d Fixed plugins without incoming nor outgoing packages being disabled 2015-09-11 01:12:22 -07:00
Patrick von Reth
da5c9bd30e Fix compilation on Windows. 2015-09-10 15:51:38 +02:00
Aleix Pol
4cccb7344a ++verbosity on error 2015-09-09 20:12:16 +02:00
Aleix Pol
a9d2840664 Use acquire and release instead of a boolean property
This way we hope we won't end up without discovery if 2 instances need
discovery at the same time.

Reviewed by Albert Vaca
2015-09-09 20:09:04 +02:00
Aleix Pol
32daa4e51f Fix misbehaviour
Delete devices, not links
2015-09-09 13:42:28 +02:00
Aleix Pol
77e92262fe Fix build 2015-09-09 13:03:08 +02:00
Aleix Pol
26b0ec8b98 Make sure we don't disconnect from discovering remotes
Otherwise it's hard to let other devices connect to us, without having both
devices in discoverability mode.

Reviewed by Albert Vaca
2015-09-09 13:01:38 +02:00
Albert Vaca
c65be84a89 Only send capabilities packets for paired devices 2015-09-09 01:19:38 -07:00
Aleix Pol
a0da8ba858 Let the KPluginSelector react to changes in the plugin configuration
Mainly whenever the remote capabilities change.

Reviewed by The Vaca Man
2015-09-08 20:03:44 +02:00
Aleix Pol
b101e828a4 Fix capabilities detection
Only consider capabilities as unsupported if both incoming and outgoing are
empty, rather than either.

Reviewed by Albert Vaca
2015-09-08 17:58:40 +02:00
Aleix Pol
6a379e9227 Rename missingPlugins to unsupportedPlugins 2015-09-08 17:38:33 +02:00
Aleix Pol
617b66aeb8 small code simplification
removes changes from list to set
always uses the same path for figuring out the interfaces.

reviewed by Albert Vaca
2015-09-08 17:35:30 +02:00
Aleix Pol
df3581459a Add a test that makes sure that capabilities are gathered correctly
While at it, fix the logic, because it wasn't working all that well.

Reviewed by Albert Vaca
2015-09-08 17:35:30 +02:00
Albert Vaca
854e4227fa Read the capabilities in the first addLink instead of only the constructor 2015-09-08 08:37:43 -07:00
Aleix Pol
817fcbc9d6 Merge branch 'stable' 2015-09-08 10:51:41 +02:00
Aleix Pol
d58f6314fe run Clang Modernize
Minus the auto change
2015-09-08 10:47:37 +02:00
Albert Vaca
1a63d18ada Print more info 2015-09-08 01:12:00 -07:00
Aleix Pol
4023bf0599 Only keep connections alive with unpaired devices when discovery is enabled
At the moment, we were keeping the connection alive with every reachable
device. While this works optimally for most use-cases, on networks with
several devices with KDE Connect, the amount of connections grows
exponentially.

Reviewed by Albert Vaca

CCBUG: 352424
2015-09-08 09:30:55 +02:00
Aleix Pol
774893d3f9 cleanup
make attribute const
construct when initializing
no need to have all methods as slots
2015-09-08 09:22:31 +02:00
Aleix Pol
e1be5319f5 Only broadcast again if the network configuration actually changes
Reviewed Albert Vaca
2015-09-08 09:05:06 +02:00
Aleix Pol
4960247fb5 Add a package type that updates the device capabilities
Every time we reload the plugin list, report the plugins that we support.
If the remote devices' capabilities change, update the plugin list.

Reviewed by Albert Vaca
2015-09-07 20:03:05 +02:00
Aleix Pol
f65a1f206f Turn core qWarnings into qCWarning 2015-09-07 19:35:07 +02:00
Aleix Pol
91351773fd Mark incompatible plugins as such in the kcm
If a plugin isn't available, display it as unsupported by the device. This
is figured out through capabilities.

Reviewed by Albert Vaca
2015-09-07 19:35:07 +02:00
Aleix Pol
61f357a512 Fix regression
Reviewed by Albert Vaca
2015-09-07 17:12:28 +02:00
Aleix Pol
d835d01a09 Add a test for file sending, using the loopback device
Extends unit testing by making sure that file sharing works locally.

REVIEW: 125086
2015-09-07 15:03:04 +02:00
Vineet Garg
78e9c08732 Merge branch 'master' into ssl
Conflicts:
	core/backends/lan/socketlinereader.h
	core/backends/lan/uploadjob.h
	core/networkpackage.h
2015-08-25 03:43:41 +05:30
Vineet Garg
17da38e5ba Explicity using TLSv1 because using AnyProtocol causes a default TLSv1.2 handshake which not supported on older android version
Was using QueryPeer instead of VerifyPeer of isDeviceTrusted of connected slot
2015-08-25 01:14:24 +05:30
Boris Egorov
1924173df2 Fix various krazy2 warnings
Fix following krazy2 warning types:
[explicit], [endswithnewline], [doublequote_chars], [includes], [normalize],
[postfixop], [spelling]

See http://ebn.kde.org/krazy/reports/playground/base/kdeconnect-kde/index.html
for details.

SLOT/SIGNAL normalization done with Qt normalize utility:
https://github.com/qtproject/qtrepotools/tree/master/util/normalize

REVIEW: 124857
2015-08-21 22:38:54 +06:00
Vineet Garg
44c0ec1c78 If remote device certificate is changes, in sslError due to simulataneous multiple connections, unpair was called on null pointer 2015-08-17 20:04:41 +05:30
Vineet Garg
eff84a49d4 We support any protocol instead of TLSv1.2 2015-08-16 21:19:56 +05:30
Vineet Garg
9bc93b6337 We generate certificate from present date -1 year to present date + 10 year, this avoids the case where certificate is not valid due to difference of time zones 2015-08-14 17:50:58 +05:30
Vineet Garg
75bd15ed65 Added default value while checking for link name in pairing handler, this provides backward compatibility 2015-08-14 17:33:08 +05:30
Vineet Garg
6fe1399a18 Fixed minor issues in pairing handler 2015-08-13 14:56:28 +05:30
Vineet Garg
c5a399b94b Fixed code identation issue 2015-08-12 23:49:15 +05:30
Vineet Garg
6acb4204a2 Added KdeConnectConfigTest, TestSslSocketLineReader, LanLinkProviderTest 2015-08-12 23:42:27 +05:30
Vineet Garg
cf3d37b504 Fixed issue pointed out on RR
Fixed some pairing handler issues
2015-08-11 09:04:02 +05:30
Vineet Garg
2824e73617 Pairing handler implemented 2015-07-27 20:58:58 +05:30
Vineet Garg
27515546a0 Now per device per link type pairing handlers are there 2015-07-25 17:15:19 +05:30
Vineet Garg
1b430db4a3 Fixed indentation 2015-07-19 21:59:27 +05:30
Vineet Garg
eda2563d03 Fixed encryption info in cli 2015-07-19 20:25:28 +05:30
Vineet Garg
20e46418ba Encryption info in cli 2015-07-18 18:54:10 +05:30
Vineet Garg
e6da860fb7 Fixed issues pointed out on CR 2015-07-14 17:34:04 +05:30
Vineet Garg
781adac15b Removed whitespace 2015-07-13 19:55:22 +05:30
Vineet Garg
1ba68150a7 Made server like normal QTcpServer 2015-07-10 03:57:27 +05:30
Vineet Garg
7c777e6279 Implemented pairing handler interface 2015-07-10 03:21:08 +05:30
Vineet Garg
e7617f3da9 Use Q_DECL_OVERRIDE in server 2015-07-08 02:45:59 +05:30
Vineet Garg
8b0f06e484 Code cleanup, fixed socket deletelater issue 2015-07-08 00:22:10 +05:30
Vineet Garg
b6b5257ba4 Added ssl support in download job 2015-07-06 03:19:58 +05:30
Vineet Garg
0c110e4392 Added SSL encryption in file upload
DeviceId is used for peerVerifyName
2015-07-06 02:35:26 +05:30
Vineet Garg
148a713176 Initial working implementation of ssl 2015-07-05 18:53:53 +05:30
Aleix Pol
7d6912c11f Revert "Drop NetworkPackage QObject heritage"
It makes us depend on unreleased Qt 5.5. Will un-revert it
when Qt 5.5 is a dependency we can take.

CCMAIL: kdeconnect@kde.org

This reverts commit 1a2f569a47.
2015-06-27 20:54:07 +02:00
Aleix Pol
43451d6ae1 Simplify Device::id management
Removes the id->row mapping. It was broken as the indices weren't updated
when a row was added or removed.
Stop exposing Device::id through dbus, just store it in the interface
class.
* It's redundant as it's part of the interface definition
* If we keep it it will save us quite some dbus round-trips
* It will be reliable, as nowadays id() sometimes QString() if the dbus
connection is invalid.

REVIEW: 124158
2015-06-24 20:57:17 +02:00
Aleix Pol
1a2f569a47 Drop NetworkPackage QObject heritage
It was only used for introspection and we can use Q_GADGET for that.
Make the NetworkPackage objects much lighter.

REVIEW: 124166
2015-06-24 20:57:17 +02:00
Albert Vaca
77256e1932 Devices where not removed if they were unpaired after going offline 2015-06-21 19:40:05 -07:00
Albert Vaca
08938689c5 Emit less redundant events 2015-06-21 19:39:04 -07:00
Aleix Pol
68b206e525 Move the generation of dbus interfaces into interfaces/
Simplifies the code altogether by centralizing the generation into 1 call
that does all the steps.

REVIEW: 124120
2015-06-18 19:06:14 +02:00
Aleix Pol
5c79e8a7a6 Implement an MPRIS client plugin
Makes it possible to control remote MPRIS instances.

REVIEW: 124100
2015-06-18 04:01:01 +02:00
Albert Vaca
a4c8934ee7 If both devices request pairing at the same time, we just pair.
The second device accepts the request instead of failing.
2015-06-15 09:03:26 -07:00
Albert Vaca
2dab79bc3f Fixed warning. 2015-06-15 09:03:26 -07:00
Albert Vaca
09557b8a14 Moved network change detection from daemon to lanlink 2015-06-14 13:54:52 -07:00
Aleix Pol
cee2c6b057 Remove unused declaration 2015-06-13 01:27:16 +02:00
Aleix Pol
ef788e0658 Restore removed API, deprecate
REVIEW: 124084
2015-06-12 17:54:47 +02:00
Aleix Pol
b592dc99a0 Merge pairingSuccessful and unpaired signals into pairingChanged(bool)
REVIEW: 124067
2015-06-11 16:19:00 +02:00
Albert Vaca
e5b897884c Added device status icons to be used in the KCM instead of the IM ones 2015-05-17 23:28:58 -07:00
Aleix Pol
11996f56ca Drop dependency of KIO from kdeconnectcore
Use QNetworkAccessManager for storing the files we receive instead of
directly KIO, then provide the KIO-based QNetworkAccessManager from the
daemon. This way we'll still get the KIO network-transparency, but the
library only depenends on QtNetwork, which will be easier to get in some
platforms.

After this change, we only depend on KConfig, KI18n and KCoreAddons, which
are tier1 and really easy to work with on any platform.

REVIEW: 123325
2015-05-05 01:07:29 +02:00
Àlex Fiestas
ba4c87abc1 Consume all pendingDatagrams from udpServer
This fixes a bug where receiving broadcast messages would stop working
in case 2 messages have been received at the same time.

The problem is that readReady will only emit once per batch of datagrams
received, in case we receive 2 datagrams but only consume 1, readReady
will never be emitted again.
2015-05-05 01:04:50 +02:00
Albert Vaca
2f7e6f7de2 Fixed compilation warnings in clang (one of them is actually an issue!) 2015-04-19 22:50:12 -07:00
Aleix Pol
3caf5e7908 Move some find_package dependencies to the children directories as agreed 2015-04-10 17:48:48 +02:00
Aleix Pol
48cb087ec8 Remove unneeded KService include 2015-04-10 17:47:54 +02:00
Ashish Bansal
c8eb5e3074 Changed KF5 5.8 to 5.9 2015-04-09 16:22:56 +05:30
Albert Vaca
07773b8141 disconnected is specific to Sockets, abouTtoClose is generic to IODevice 2015-04-04 19:04:11 -07:00
Albert Vaca
fbbaa854b2 Const 2015-04-04 19:03:24 -07:00
Albert Vaca
dacaee6629 Fixed daemon sending lots of identity packets at startup
The way we were detecting the active network interfaces caused to detect
all of them at the application startup.
2015-04-04 16:32:15 -07:00
Albert Vaca
6c6f2b1a03 Fixed uninitialized members 2015-04-04 10:17:08 -07:00