Changeset View
Changeset View
Standalone View
Standalone View
src/org/kde/kdeconnect/Backends/LanBackend/LanLinkProvider.java
Show All 28 Lines | |||||
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.NetworkHelper; | 34 | import org.kde.kdeconnect.Helpers.NetworkHelper; | ||
35 | import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper; | 35 | import org.kde.kdeconnect.Helpers.SecurityHelpers.SslHelper; | ||
36 | import org.kde.kdeconnect.Helpers.StringsHelper; | 36 | import org.kde.kdeconnect.Helpers.StringsHelper; | ||
37 | import org.kde.kdeconnect.Helpers.TrustedNetworkHelper; | ||||
37 | import org.kde.kdeconnect.NetworkPacket; | 38 | import org.kde.kdeconnect.NetworkPacket; | ||
38 | import org.kde.kdeconnect.UserInterface.CustomDevicesActivity; | 39 | import org.kde.kdeconnect.UserInterface.CustomDevicesActivity; | ||
39 | 40 | | |||
40 | import java.io.BufferedReader; | 41 | import java.io.BufferedReader; | ||
41 | import java.io.IOException; | 42 | import java.io.IOException; | ||
42 | import java.io.InputStreamReader; | 43 | import java.io.InputStreamReader; | ||
43 | import java.io.OutputStream; | 44 | import java.io.OutputStream; | ||
44 | import java.net.DatagramPacket; | 45 | import java.net.DatagramPacket; | ||
▲ Show 20 Lines • Show All 68 Lines • ▼ Show 20 Line(s) | 97 | private void tcpPacketReceived(Socket socket) throws Exception { | |||
113 | 114 | | |||
114 | Log.i("KDE/LanLinkProvider", "Identity package received from a TCP connection from " + networkPacket.getString("deviceName")); | 115 | Log.i("KDE/LanLinkProvider", "Identity package received from a TCP connection from " + networkPacket.getString("deviceName")); | ||
115 | identityPacketReceived(networkPacket, socket, LanLink.ConnectionStarted.Locally); | 116 | identityPacketReceived(networkPacket, socket, LanLink.ConnectionStarted.Locally); | ||
116 | } | 117 | } | ||
117 | 118 | | |||
118 | //I've received their broadcast and should connect to their TCP socket and send my identity. | 119 | //I've received their broadcast and should connect to their TCP socket and send my identity. | ||
119 | private void udpPacketReceived(DatagramPacket packet) throws Exception { | 120 | private void udpPacketReceived(DatagramPacket packet) throws Exception { | ||
120 | 121 | | |||
122 | if (TrustedNetworkHelper.isNotTrustedNetwork(context)) { | ||||
123 | Log.w("LanLinkProvider", "Current WiFi isn't a Trusted Network"); | ||||
124 | return; | ||||
125 | } | ||||
126 | | ||||
121 | final InetAddress address = packet.getAddress(); | 127 | final InetAddress address = packet.getAddress(); | ||
122 | 128 | | |||
123 | try { | 129 | try { | ||
124 | 130 | | |||
125 | String message = new String(packet.getData(), StringsHelper.UTF8); | 131 | String message = new String(packet.getData(), StringsHelper.UTF8); | ||
126 | final NetworkPacket identityPacket = NetworkPacket.unserialize(message); | 132 | final NetworkPacket identityPacket = NetworkPacket.unserialize(message); | ||
127 | final String deviceId = identityPacket.getString("deviceId"); | 133 | final String deviceId = identityPacket.getString("deviceId"); | ||
128 | if (!identityPacket.getType().equals(NetworkPacket.PACKET_TYPE_IDENTITY)) { | 134 | if (!identityPacket.getType().equals(NetworkPacket.PACKET_TYPE_IDENTITY)) { | ||
▲ Show 20 Lines • Show All 248 Lines • ▼ Show 20 Line(s) | |||||
377 | 383 | | |||
378 | private void broadcastUdpPacket() { | 384 | private void broadcastUdpPacket() { | ||
379 | 385 | | |||
380 | if (NetworkHelper.isOnMobileNetwork(context)) { | 386 | if (NetworkHelper.isOnMobileNetwork(context)) { | ||
381 | Log.w("LanLinkProvider", "On 3G network, not sending broadcast."); | 387 | Log.w("LanLinkProvider", "On 3G network, not sending broadcast."); | ||
382 | return; | 388 | return; | ||
383 | } | 389 | } | ||
384 | 390 | | |||
391 | if (TrustedNetworkHelper.isNotTrustedNetwork(context)) { | ||||
392 | Log.w("LanLinkProvider", "Current WiFi isn't a Trusted Network"); | ||||
393 | return; | ||||
394 | } | ||||
395 | | ||||
385 | new Thread(() -> { | 396 | new Thread(() -> { | ||
386 | ArrayList<String> iplist = CustomDevicesActivity | 397 | ArrayList<String> iplist = CustomDevicesActivity | ||
387 | .getCustomDeviceList(PreferenceManager.getDefaultSharedPreferences(context)); | 398 | .getCustomDeviceList(PreferenceManager.getDefaultSharedPreferences(context)); | ||
388 | iplist.add("255.255.255.255"); //Default: broadcast. | 399 | iplist.add("255.255.255.255"); //Default: broadcast. | ||
389 | 400 | | |||
390 | NetworkPacket identity = NetworkPacket.createIdentityPacket(context); | 401 | NetworkPacket identity = NetworkPacket.createIdentityPacket(context); | ||
391 | int port = (tcpServer == null || !tcpServer.isBound()) ? MIN_PORT : tcpServer.getLocalPort(); | 402 | int port = (tcpServer == null || !tcpServer.isBound()) ? MIN_PORT : tcpServer.getLocalPort(); | ||
392 | identity.set("tcpPort", port); | 403 | identity.set("tcpPort", port); | ||
▲ Show 20 Lines • Show All 74 Lines • Show Last 20 Lines |