registerMDNSService() overwrites any existing registration
There is only ever a single service to advertise via mDNS, so when a new
registration is requested, remove any existing ones.  This should eliminate
these stacktraces:
java.lang.IllegalStateException: A service information can only be registered with a single instamce of JmDNS.
    at javax.jmdns.impl.JmDNSImpl.registerService(JmDNSImpl.java:1005)
    at org.fdroid.fdroid.localrepo.LocalRepoService$5.run(LocalRepoService.java:239)
    at java.lang.Thread.run(Thread.java:856)
			
			
This commit is contained in:
		
							parent
							
								
									fdaa2ad106
								
							
						
					
					
						commit
						ba028408a1
					
				| @ -216,6 +216,12 @@ public class LocalRepoService extends Service { | ||||
|     } | ||||
| 
 | ||||
|     private void registerMDNSService() { | ||||
|         /* | ||||
|          * a ServiceInfo can only be registered with a single instance of JmDNS, | ||||
|          * and there is only ever a single LocalHTTPD port to advertise anyway. | ||||
|          */ | ||||
|         if (pairService != null || jmdns != null) | ||||
|             clearCurrentMDNSService(); | ||||
|         String repoName = Preferences.get().getLocalRepoName(); | ||||
|         final HashMap<String, String> values = new HashMap<String, String>(); | ||||
|         values.put("path", "/fdroid/repo"); | ||||
| @ -249,6 +255,10 @@ public class LocalRepoService extends Service { | ||||
|             Preferences.get().unregisterLocalRepoBonjourListeners(localRepoBonjourChangeListener); | ||||
|             localRepoBonjourChangeListener = null; | ||||
|         } | ||||
|         clearCurrentMDNSService(); | ||||
|     } | ||||
| 
 | ||||
|     private void clearCurrentMDNSService() { | ||||
|         if (jmdns != null) { | ||||
|             if (pairService != null) { | ||||
|                 jmdns.unregisterService(pairService); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Hans-Christoph Steiner
						Hans-Christoph Steiner