Changeset View
Changeset View
Standalone View
Standalone View
src/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java
Show All 27 Lines | |||||
28 | 28 | | |||
29 | import org.kde.kdeconnect.Backends.BaseLink; | 29 | import org.kde.kdeconnect.Backends.BaseLink; | ||
30 | import org.kde.kdeconnect.Backends.BaseLinkProvider; | 30 | import org.kde.kdeconnect.Backends.BaseLinkProvider; | ||
31 | import org.kde.kdeconnect.BackgroundService; | 31 | import org.kde.kdeconnect.BackgroundService; | ||
32 | import org.kde.kdeconnect.Device; | 32 | import org.kde.kdeconnect.Device; | ||
33 | import org.kde.kdeconnect.Helpers.DeviceHelper; | 33 | import org.kde.kdeconnect.Helpers.DeviceHelper; | ||
34 | import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper; | 34 | import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper; | ||
35 | import org.kde.kdeconnect.Helpers.StringsHelper; | 35 | import org.kde.kdeconnect.Helpers.StringsHelper; | ||
36 | import org.kde.kdeconnect.Helpers.TrustedNetworkHelper; | ||||
36 | import org.kde.kdeconnect.NetworkPacket; | 37 | import org.kde.kdeconnect.NetworkPacket; | ||
37 | import org.kde.kdeconnect.UserInterface.CustomDevicesActivity; | 38 | import org.kde.kdeconnect.UserInterface.CustomDevicesActivity; | ||
38 | 39 | | |||
39 | import java.io.BufferedReader; | 40 | import java.io.BufferedReader; | ||
40 | import java.io.IOException; | 41 | import java.io.IOException; | ||
41 | import java.io.InputStreamReader; | 42 | import java.io.InputStreamReader; | ||
42 | import java.io.OutputStream; | 43 | import java.io.OutputStream; | ||
43 | import java.net.DatagramPacket; | 44 | import java.net.DatagramPacket; | ||
▲ Show 20 Lines • Show All 68 Lines • ▼ Show 20 Line(s) | 96 | private void tcpPacketReceived(Socket socket) { | |||
112 | 113 | | |||
113 | Log.i("KDE/LanLinkProvider", "Identity package received from a TCP connection from " + networkPacket.getString("deviceName")); | 114 | Log.i("KDE/LanLinkProvider", "Identity package received from a TCP connection from " + networkPacket.getString("deviceName")); | ||
114 | identityPacketReceived(networkPacket, socket, LanLink.ConnectionStarted.Locally); | 115 | identityPacketReceived(networkPacket, socket, LanLink.ConnectionStarted.Locally); | ||
115 | } | 116 | } | ||
116 | 117 | | |||
117 | //I've received their broadcast and should connect to their TCP socket and send my identity. | 118 | //I've received their broadcast and should connect to their TCP socket and send my identity. | ||
118 | private void udpPacketReceived(DatagramPacket packet) { | 119 | private void udpPacketReceived(DatagramPacket packet) { | ||
119 | 120 | | |||
121 | if (TrustedNetworkHelper.isNotTrustedNetwork(context)) { | ||||
122 | Log.w("LanLinkProvider", "Current WiFi isn't a Trusted Network"); | ||||
123 | return; | ||||
124 | } | ||||
125 | | ||||
120 | final InetAddress address = packet.getAddress(); | 126 | final InetAddress address = packet.getAddress(); | ||
121 | 127 | | |||
122 | try { | 128 | try { | ||
123 | 129 | | |||
124 | String message = new String(packet.getData(), StringsHelper.UTF8); | 130 | String message = new String(packet.getData(), StringsHelper.UTF8); | ||
125 | final NetworkPacket identityPacket = NetworkPacket.unserialize(message); | 131 | final NetworkPacket identityPacket = NetworkPacket.unserialize(message); | ||
126 | final String deviceId = identityPacket.getString("deviceId"); | 132 | final String deviceId = identityPacket.getString("deviceId"); | ||
127 | if (!identityPacket.getType().equals(NetworkPacket.PACKET_TYPE_IDENTITY)) { | 133 | if (!identityPacket.getType().equals(NetworkPacket.PACKET_TYPE_IDENTITY)) { | ||
▲ Show 20 Lines • Show All 231 Lines • ▼ Show 20 Line(s) | |||||
359 | 365 | | |||
360 | private void broadcastUdpPacket() { | 366 | private void broadcastUdpPacket() { | ||
361 | if (System.currentTimeMillis() < lastBroadcast + delayBetweenBroadcasts) { | 367 | if (System.currentTimeMillis() < lastBroadcast + delayBetweenBroadcasts) { | ||
362 | Log.i("LanLinkProvider", "broadcastUdpPacket: relax cowboy"); | 368 | Log.i("LanLinkProvider", "broadcastUdpPacket: relax cowboy"); | ||
363 | return; | 369 | return; | ||
364 | } | 370 | } | ||
365 | lastBroadcast = System.currentTimeMillis(); | 371 | lastBroadcast = System.currentTimeMillis(); | ||
366 | 372 | | |||
373 | if (TrustedNetworkHelper.isNotTrustedNetwork(context)) { | ||||
374 | Log.w("LanLinkProvider", "Current WiFi isn't a Trusted Network"); | ||||
375 | return; | ||||
376 | } | ||||
377 | | ||||
367 | new Thread(() -> { | 378 | new Thread(() -> { | ||
368 | ArrayList<String> iplist = CustomDevicesActivity | 379 | ArrayList<String> iplist = CustomDevicesActivity | ||
369 | .getCustomDeviceList(PreferenceManager.getDefaultSharedPreferences(context)); | 380 | .getCustomDeviceList(PreferenceManager.getDefaultSharedPreferences(context)); | ||
370 | iplist.add("255.255.255.255"); //Default: broadcast. | 381 | iplist.add("255.255.255.255"); //Default: broadcast. | ||
371 | 382 | | |||
372 | NetworkPacket identity = NetworkPacket.createIdentityPacket(context); | 383 | NetworkPacket identity = NetworkPacket.createIdentityPacket(context); | ||
373 | int port = (tcpServer == null || !tcpServer.isBound()) ? MIN_PORT : tcpServer.getLocalPort(); | 384 | int port = (tcpServer == null || !tcpServer.isBound()) ? MIN_PORT : tcpServer.getLocalPort(); | ||
374 | identity.set("tcpPort", port); | 385 | identity.set("tcpPort", port); | ||
▲ Show 20 Lines • Show All 72 Lines • Show Last 20 Lines |