Pair from separate network or through VPN
Achilleas Koutsou
achilleas.k at gmail.com
Wed Oct 22 23:59:24 UTC 2014
On 22/10/14 21:41, Albert Vaca wrote:
> Awesome, it's very nice to see that good progress! No worries with the
> long mail, and sorry in advance to be lazy to read through it and answer
> it until today ;)
> On Oct 19, 2014 9:48 AM, "Achilleas Koutsou" <achilleas.k at gmail.com
> <mailto:achilleas.k at gmail.com>> wrote:
> >
> > If anyone wants to check it out, it's all on the 'manualip' branch on my
> > github fork:
> https://github.com/achilleas-k/kdeconnect-android/tree/manualip
> >
>
> You managed to only change the Android side? Nice! But... isn't the
> desktop side expecting identify packets to be received via UDP broadcast
> only? Because you are sending TCP packets I guess (?)
Well, the new provider is almost a complete copy of the LanLinkProvider,
so it works the same way. The difference is that, where LanLinkProvider
sends a DatagramPacket addressed to -1.-1.-1.-1 (LanLinkProvider:249),
CustomLinkProvider creates several DatagramPackets, each one addressed
to an IP from the user-supplied list.
> >
> > In terms of the interface, there is a new menu item below "KDE Connect
> > Settings" labelled "Custom Device List". This is a simple item list
> where one can add a new host or IP by typing and hitting the "Add" button.
> > Removing items is done by simply touching the existing item in the
> > list. There is no confirmation dialogue for removing items (this will be
> > added soon).
> >
>
> Couldn't we use the same main device list? I think it will be cleaner,
> but anyway it's just about the interface and we can change that later
> once the functionality is there.
We could have an "add device" button on the main screen, I guess. The
reason I added it as a separate option was because the first time we
talked, you mentioned that this might be considered an advanced feature
and for normal use, the app should "just work", a decision which I
totally understand and support. Final decision is on you though and it's
a minor change we can do later.
> > There is no validation done to the entered text. Initially, I was
> > planning on validating the input string to make sure it's a valid IP
> > address. I restricted entry to numbers and periods only and
> > had the interface use the numerical keyboard. I later realised that
> > hostnames should also be valid items, so one can now enter a host or
> > domain name that gets resolved to an IP address.
> >
>
> Makes sense.
Good to know.
> > The custom device list is saved as a single string, stored in the
> > DefaultSharedPreferences. The string is constructed by concatenating all
> > entries, separated by a single comma ",". I would use a String set, but
> > that requires API Level 11 and KDE Connect has a min level 9. I'm open
> > to suggestions if someone has a better idea on how to store the list.
> >
>
> I faced the same issue somewhere else and I solved it the same way.
>
> > Issues/limitations:
> > - I have only managed to test pairing (and using) two devices, each on a
> > different physical network, but both connected to the same VPN. The
> > VPN was my private OpenVPN in TUN mode. I haven't tested TAP mode, or
> > any other kind of VPN. There is no *theoretical* reason why it
> > shouldn't work, but I can't be certain without testing.
> > - The pairing doesn't work via the internet, by forwarding ports on my
> > router. My phone was on the mobile network (3G), I forwarded the
> > appropriate ports on my router, I added my home's public IP to the
> > list, but the kdeconnect daemon couldn't detect the phone. I ran
> > tcpdump and saw that my desktop does in fact receive the tcp and udp
> > packets, but the kdeconnect daemon (running using --nofork), only
> > occasionally displays "LanLinkProvider::connectError: Fallback (1),
> > try reverse connection". I'll investigate whether any changes are
> > required on the desktop application side. I suspect it might be an
> > issue with my provider blocking the packets from the desktop to the
> > mobile. To test this properly, I need two networks where I can forward
> > ports on both ends.
> >
>
> I will do some testing when I have a chance (I'm boarding a plane right
> now), but about establishing connections through the Internet, I think
> it's not a problem if it doesn't work: it would be too laggy anyway for
> touchpad and other features, and you probably don't want to transfer
> files over 3G either.
>
> :D
Great. Can't wait to hear how it works for you.
--
Achilleas
More information about the KDEConnect
mailing list