Feature #2900

use jmDNS to provide discovery on Android < 16

Added by hans almost 4 years ago. Updated over 3 years ago.

Status:ClosedStart date:02/19/2014
Priority:HighDue date:
Assignee:hans% Done:

100%

Category:-
Target version:swap repos with Bluetooth and Bonjour
Component:

Description

Android "Network Service Discovery" adds DNS+SD and mDNS to Android starting in API 16. For older platforms, add jmdns.


Subtasks

Task #2973: review fluidnexus for mDNS codeClosedhans

Task #3381: Multicast Lock for mDNSClosed


Related issues

Related to Bazaar - Task #2468: make F-Droid accept repo URLs via mDNS Closed 11/13/2013
Related to Bazaar - Task #2467: make Kerplapp broadcast the repo URL via mDNS Closed 11/13/2013
Related to Bazaar - Bug #3025: Kerplapp main screen blocks Closed 03/03/2014
Related to Bazaar - Bug #3379: mDNS/Bonjour resolution is sometimes very slow Feedback 05/16/2014

Associated revisions

Revision fb980ece
Added by hans over 3 years ago

purge NSD support, later add mDNS support to FDroid using jmdns

Android's NSD is a nice API, but it turns out its flaky and only supported
on very recent Android versions. So we'll use jmdns to support older
releases and hopefully work better.

refs #2900, #2467 https://dev.guardianproject.info/issues/2900

Revision d25a3959
Added by Hans-Christoph Steiner over 3 years ago

broadcast local repo via Bonjour/mDNS to enable auto-discovery

This adds support for registering the local repo with Bonjour/mDNS so that
it is broadcast out to all devices on the local network. This makes it
easy to discover and add local repos on the same wifi.

refs #2900 https://dev.guardianproject.info/issues/2900

Revision f2994b07
Added by Hans-Christoph Steiner over 3 years ago

replace Android NSD browsing with jmdns

Android's NSD is only included in Android >= 16, and seems to be buggy. So
This replaces the NSD code entirely with jmdns, which works on all Android
versions.

fixes #2900 https://dev.guardianproject.info/issues/2900
fixes #3379 https://dev.guardianproject.info/issues/3379

History

#1 Updated by hans almost 4 years ago

  • Target version changed from Integrate Kerplapp into FDroid to 134

#2 Updated by pd0x almost 4 years ago

In practice the Android Network Service Discovery is unreliable. There have been a number of bugs since it was introduced in API level 16. At the OpenITP UX Hackathon we observed the underlying NSD system service blocking in a manner that caused apps that were attempting to ask for a handle to the service to block in turn (See Bug #3025).

Implementing the same NSD functionality using jmDNS would give us 1) backwards compatibility to devices < API level 16, 2) the ability to include a repo fingerprint (Feature #2978) in the service registration without sullying the service name 3) a fix for bug #3025

#3 Updated by hans almost 4 years ago

  • Target version changed from 134 to Integrate Kerplapp into FDroid

#4 Updated by hans over 3 years ago

  • Target version changed from Integrate Kerplapp into FDroid to swap repos with Bluetooth and Bonjour

#5 Updated by Anonymous over 3 years ago

  • Status changed from New to Resolved

Applied in changeset fdroidclient|commit:f2994b0764b53c4c103b94196a8719bcc57e6131.

#6 Updated by hans over 3 years ago

  • Status changed from Resolved to Closed
  • Assignee set to hans

Also available in: Atom PDF