<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to feature-requests</title><link href="https://sourceforge.net/p/jmdns/feature-requests/" rel="alternate"/><link href="https://sourceforge.net/p/jmdns/feature-requests/feed.atom" rel="self"/><id>https://sourceforge.net/p/jmdns/feature-requests/</id><updated>2011-12-27T00:00:40Z</updated><subtitle>Recent changes to feature-requests</subtitle><entry><title>Jmmdns Interface</title><link href="https://sourceforge.net/p/jmdns/feature-requests/12/" rel="alternate"/><published>2011-12-27T00:00:40Z</published><updated>2011-12-27T00:00:40Z</updated><author><name>Daniel Stonier</name><uri>https://sourceforge.net/u/stonier/</uri></author><id>https://sourceforge.net019f492f94e1eaa2c5c3b7f3bd1b8c67fd6fe1d8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;After some testing around the multi-homed jmmdns interface, some obversations that might contribute to improving it.&lt;/p&gt;
&lt;p&gt;I have a network which is constantly up/down or going out of range (mobile robots), so that is an important part of it. With the current code, I had to implement my own NetworkTopologyListener to handle this. &lt;/p&gt;
&lt;p&gt;This gets messy when wanting to add listeners. With the current jmmdns interface, its a one-shot call. It has no memory, so when new interfaces go up, or old ones go down and then up again, it doesn't remove/re-add them. &lt;/p&gt;
&lt;p&gt;I had to extend the jmmdns interface to do this, save them when I called my own addListener api, and then individually add them from this saved list to the jmdns interfaces whenever the network topology callback fired. Which ultimately means I end up ignoring jmmdns' addListeners and doing all the grunt work underneath. The very same thing occurs with adding services.&lt;/p&gt;
&lt;p&gt;I expect this should be expected behaviour. All of this work would actually be nicely buried under the hood and would make the jmmdns api (specifically addListener, addService) actually usable. A network topology callback might still be useful, but jmmdns could have its own callback which does all the above mentioned work and then calls the user's callback.&lt;/p&gt;
&lt;p&gt;Apart from that, jmmdns is a nice start :)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Support Discovery of Browsing and Registration Domains (Doma</title><link href="https://sourceforge.net/p/jmdns/feature-requests/11/" rel="alternate"/><published>2010-11-15T21:47:13Z</published><updated>2010-11-15T21:47:13Z</updated><author><name>Pierre Frisch</name><uri>https://sourceforge.net/u/spearway/</uri></author><id>https://sourceforge.neta42e8b28c14386dd07e793ae48cc7da68c1cf0de</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;One of the motivations for DNS-Based Service Discovery is so that&lt;br /&gt;
when a visiting client (e.g. a laptop computer) arrives at a new&lt;br /&gt;
network, it can discover what services are available on that network&lt;br /&gt;
without manual configuration. This logic (discovering services&lt;br /&gt;
without manual configuration) also applies to discovering the domains&lt;br /&gt;
in which services are registered without requiring manual&lt;br /&gt;
configuration.&lt;/p&gt;
&lt;p&gt;This discovery is performed recursively, using Unicast or Multicast&lt;br /&gt;
DNS. Five special RR names are reserved for this purpose:&lt;/p&gt;
&lt;p&gt;b._dns-sd._udp.&amp;lt;domain&amp;gt;.&lt;br /&gt;
db._dns-sd._udp.&amp;lt;domain&amp;gt;.&lt;br /&gt;
r._dns-sd._udp.&amp;lt;domain&amp;gt;.&lt;br /&gt;
dr._dns-sd._udp.&amp;lt;domain&amp;gt;.&lt;br /&gt;
lb._dns-sd._udp.&amp;lt;domain&amp;gt;.&lt;/p&gt;
&lt;p&gt;By performing PTR queries for these names, a client can learn,&lt;br /&gt;
respectively:&lt;/p&gt;
&lt;p&gt;o A list of domains recommended for browsing&lt;/p&gt;
&lt;p&gt;o A single recommended default domain for browsing&lt;/p&gt;
&lt;p&gt;o A list of domains recommended for registering services using&lt;br /&gt;
Dynamic Update&lt;/p&gt;
&lt;p&gt;o A single recommended default domain for registering services.&lt;/p&gt;
&lt;p&gt;o The final query shown yields the "legacy browsing" or "automatic&lt;br /&gt;
browsing" domain. Sophisticated client applications that care to&lt;br /&gt;
present choices of domain to the user, use the answers learned&lt;br /&gt;
from the previous four queries to discover the domains to present.&lt;br /&gt;
In contrast, many current applications browse without specifying&lt;br /&gt;
an explicit domain, allowing the operating system to automatically&lt;br /&gt;
select an appropriate domain on their behalf. It is for this class&lt;br /&gt;
of application that the "automatic browsing" query is provided, to&lt;br /&gt;
allow the network administrator to communicate to the client&lt;br /&gt;
operating systems which domain(s) should be used automatically for&lt;br /&gt;
these applications.&lt;/p&gt;
&lt;p&gt;These domains are purely advisory. The client or user is free to&lt;br /&gt;
browse and/or register services in any domains. The purpose of these&lt;br /&gt;
special queries is to allow software to create a user-interface that&lt;br /&gt;
displays a useful list of suggested choices to the user, from which&lt;br /&gt;
the user may make a suitable selection, or ignore the offered&lt;br /&gt;
suggestions and manually enter their own choice.&lt;/p&gt;
&lt;p&gt;The &amp;lt;domain&amp;gt; part of the Domain Enumeration query name may be&lt;br /&gt;
"local." (meaning "perform the query using link-local multicast) or&lt;br /&gt;
it may be learned through some other mechanism, such as the DHCP&lt;br /&gt;
"Domain" option (option code 15) [RFC 2132] or the DHCP "Domain&lt;br /&gt;
Search" option (option code 119) [RFC 3397].&lt;/p&gt;
&lt;p&gt;The &amp;lt;domain&amp;gt; part of the name may also be derived from the host's IP&lt;br /&gt;
address. The host takes its IP address, and calculates the logical&lt;br /&gt;
AND of that address and its subnet mask, to derive the 'base' address&lt;br /&gt;
of the subnet. It then constructs the conventional DNS "reverse&lt;br /&gt;
mapping" name corresponding to that base address, and uses that&lt;br /&gt;
as the &amp;lt;domain&amp;gt; part of the name for the queries described above.&lt;br /&gt;
For example, if a host has address 192.168.12.34, with subnet mask&lt;br /&gt;
255.255.0.0, then the 'base' address of the subnet is 192.168.0.0,&lt;br /&gt;
and to discover the recommended automatic browsing domain for devices&lt;br /&gt;
on this subnet, the host issues a DNS PTR query for the name&lt;br /&gt;
"lb._dns-sd._udp.0.0.168.192.in-addr.arpa."&lt;/p&gt;
&lt;p&gt;Sophisticated clients may perform domain enumeration queries both in&lt;br /&gt;
"local." and in one or more unicast domains, and then present the&lt;br /&gt;
user with an aggregate result, combining the information received&lt;br /&gt;
from all sources.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Built-in support for multiple network interfaces</title><link href="https://sourceforge.net/p/jmdns/feature-requests/10/" rel="alternate"/><published>2008-04-07T05:39:29Z</published><updated>2008-04-07T05:39:29Z</updated><author><name>Trejkaz</name><uri>https://sourceforge.net/u/trejkaz/</uri></author><id>https://sourceforge.net0939931bbf4efd212066e94c80ed637376bd3619</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;There are two related problems I have noticed:&lt;br /&gt;
* If you have a machine with two network interfaces (lately a large number of motherboards have started to come with dual network ports), JmDNS' default factory method may pick the wrong one.&lt;br /&gt;
* Even if you only have one physical network interfaces, installing VMware can often result in the same symptom.&lt;/p&gt;
&lt;p&gt;The current workaround for this is to create one JmDNS per interface, and manage all of them -- when you need to publish a ServiceInfo you need to publish it on all of them, and what happens if two of them are actually on the same network?  Presumably hell breaks loose, although I am yet to find out.&lt;/p&gt;
&lt;p&gt;Unfortunately this workaround is not very simple, as ServiceInfo does contain the IP address so you actually wind up adding multiple independent ServiceInfo records to advertise the existence of a single host.&lt;/p&gt;
&lt;p&gt;It would be nice if JmDNS itself would provide the built-in ability to listen on multiple interfaces, or at the very least multiple IP addresses, such that we can pass in a list of NetworkInterface or a list of InetAddress, and have it Do The Right Thing [TM].  Ideally it would also need to support adding and removing interfaces at run-time, as realistically the state of the network does change at runtime.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Add subtypes</title><link href="https://sourceforge.net/p/jmdns/feature-requests/9/" rel="alternate"/><published>2006-10-23T11:56:28Z</published><updated>2006-10-23T11:56:28Z</updated><author><name>Pascal B.</name><uri>https://sourceforge.net/u/b-pascal/</uri></author><id>https://sourceforge.nete37c242374a1f9d17594f3e9e417e45b979440ec</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The DNS SRV TXT extension documents&lt;br /&gt;
(&lt;a href="http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt" rel="nofollow"&gt;http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt&lt;/a&gt;)&lt;br /&gt;
names the possibility to add subtypes to a given DNS-SD&lt;br /&gt;
instance - it seems that JmDNS still lacks the support&lt;br /&gt;
for it. It would be nice to have the option to register&lt;br /&gt;
(and browse for) service subtypes as well.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Maven depository update</title><link href="https://sourceforge.net/p/jmdns/feature-requests/8/" rel="alternate"/><published>2006-02-16T07:11:28Z</published><updated>2006-02-16T07:11:28Z</updated><author><name/><uri>https://sourceforge.net</uri></author><id>https://sourceforge.net8e42797f11c744e19eb086bd67250309fa88652a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I'd like the Ibiblio.org Maven2 repository updated to&lt;br /&gt;
the latest version. Current version at&lt;br /&gt;
&lt;a href="http://www.ibiblio.org/maven2" rel="nofollow"&gt;http://www.ibiblio.org/maven2&lt;/a&gt; is version 0.2.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt;
Roland&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Support ability to register proxy services</title><link href="https://sourceforge.net/p/jmdns/feature-requests/7/" rel="alternate"/><published>2004-08-09T05:22:38Z</published><updated>2004-08-09T05:22:38Z</updated><author><name>Werner Randelshofer</name><uri>https://sourceforge.net/u/rawcoder/</uri></author><id>https://sourceforge.netf3e61bf05ffec008520bf38790d17cd72827b7c8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;JmDNS should be able to act as a proxy service registry, for &lt;br /&gt;
services running on another host than the JmDNS instance.&lt;/p&gt;
&lt;p&gt;Thoughts about the implementation:&lt;br /&gt;
------------------------------------------&lt;br /&gt;
This may require that JmDNS provides a registry for HostInfo's. &lt;br /&gt;
The registry may be handled behind the scenes by JmDNS, or we &lt;br /&gt;
can make it part of the API.&lt;/p&gt;
&lt;p&gt;This registry shall be used to publish on the network the names for &lt;br /&gt;
all hosts, for which JmDNS has ServiceInfo's.&lt;/p&gt;
&lt;p&gt;Thus, we may have to add a class named HostInfo.&lt;br /&gt;
The class HostInfo shall have the following constructors:&lt;/p&gt;
&lt;p&gt;/**&lt;br /&gt;
* Construct a host description for registrating with JmDNS.&lt;br /&gt;
* @param unqualified host name, such as &amp;lt;code&amp;gt;foobar&amp;lt;/code&amp;gt;. &lt;br /&gt;
*              The host name is extended by JmDNS to foobar.local.&lt;br /&gt;
*              JmDNS may change the host name at any time, to&lt;br /&gt;
*              resolve conflicts.          &lt;br /&gt;
* @param addr the address to which the host is bound. &lt;br /&gt;
*/&lt;br /&gt;
public HostInfo(String hostname, InetAddress addr)&lt;br /&gt;
/**&lt;br /&gt;
* Construct a host description for registrating with JmDNS.&lt;br /&gt;
* The host name is generated by JmDNS using an RARP request.&lt;br /&gt;
* JmDNS may change the host name at any time, to&lt;br /&gt;
* resolve conflicts.          &lt;br /&gt;
* @param addr the address to which the host is bound. &lt;br /&gt;
*/&lt;br /&gt;
public HostInfo(InetAddress addr)&lt;/p&gt;
&lt;p&gt;The following methods shall be added to JmDNS:&lt;/p&gt;
&lt;p&gt;public void registerHost(HostInfo info)&lt;br /&gt;
public void unregisterHost(HostInfo info)&lt;/p&gt;
&lt;p&gt;A HostInfo parameter shall be added to the constructors of &lt;br /&gt;
ServiceInfo:&lt;/p&gt;
&lt;p&gt;public ServiceInfo(String type, String name, HostInfo host, int &lt;br /&gt;
port, String text) {&lt;/p&gt;
&lt;p&gt;Alternatively, if we don't want the host registry to be part of the &lt;br /&gt;
API, we can make class HostInfo and all associated methos &lt;br /&gt;
package privete. In this case an InetAddress parameter could be &lt;br /&gt;
added to the constructors of ServiceInfo. JmDNS would generate a &lt;br /&gt;
HostInfo instance and register it behind the scenes.&lt;/p&gt;
&lt;p&gt;public ServiceInfo(String type, String name, InetAddress addr, int &lt;br /&gt;
port, String text) {&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>J2ME CLDC version</title><link href="https://sourceforge.net/p/jmdns/feature-requests/6/" rel="alternate"/><published>2004-05-13T19:16:10Z</published><updated>2004-05-13T19:16:10Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net5c4a7ed914d5faba3ae9ec6495fa31915f92e75d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It will be really nice to have a J2ME CLDC version of &lt;br /&gt;
JmDNS. &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using unqualified service names in the API</title><link href="https://sourceforge.net/p/jmdns/feature-requests/5/" rel="alternate"/><published>2004-02-08T13:30:17Z</published><updated>2004-02-08T13:30:17Z</updated><author><name>Werner Randelshofer</name><uri>https://sourceforge.net/u/rawcoder/</uri></author><id>https://sourceforge.neta7923e5c5d594f91ed1daf89986888442afe5201</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The API of JmDNS always uses two parameters '(qualified) name' &lt;br /&gt;
and 'type' to identify a service instance.&lt;/p&gt;
&lt;p&gt;i.e. to register a service with the unqualified name 'My Service' &lt;br /&gt;
and of type '_http._tcp.' one has to create a ServiceInfo object &lt;br /&gt;
using the following parameters:&lt;/p&gt;
&lt;p&gt;new ServiceInfo( "_http._tcp.", "My Service._http._tcp.", ...);&lt;/p&gt;
&lt;p&gt;The qualified name and the type are redundant to some extent. &lt;br /&gt;
This leads to confusion (well, at least this confuses me).&lt;/p&gt;
&lt;p&gt;The API would be easier to understand, if it either used only one &lt;br /&gt;
parameter (the fully qualified name) or two non-redundant &lt;br /&gt;
parameters (the type and the unqualified name).&lt;/p&gt;
&lt;p&gt;Since parsing a fully qualified name may not be possible, (i.e. &lt;br /&gt;
when the unqualified name contains dots '.'), I am in favor for &lt;br /&gt;
using the type and the unqualified name.&lt;/p&gt;
&lt;p&gt;After implementation of this RFE, to register a service with the &lt;br /&gt;
unqualified name 'My Service'  and of type '_http._tcp.' one would &lt;br /&gt;
create a ServiceInfo object using the following parameters:&lt;/p&gt;
&lt;p&gt;new ServiceInfo( "_http._tcp.", "My Service", ...);&lt;/p&gt;
&lt;p&gt;Note: The implementation of this RFE will affect all public methods &lt;br /&gt;
of JmDNS, which use 'type' and 'name' as parameters.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>IPv6 support? </title><link href="https://sourceforge.net/p/jmdns/feature-requests/4/" rel="alternate"/><published>2004-02-04T13:11:30Z</published><updated>2004-02-04T13:11:30Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net6a048078470bc52b90d9258ca53f64d9872033e6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It seems that this doesn't support IPv6? However both &lt;br /&gt;
Java 1.4 and mDNS drafts support IPv6.&lt;/p&gt;
&lt;p&gt;I would like to use JmDNS in my IPv6-only wireless &lt;br /&gt;
network. When will we see full IPv6 support?   &lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>listing available services of a given type</title><link href="https://sourceforge.net/p/jmdns/feature-requests/3/" rel="alternate"/><published>2003-12-31T14:05:19Z</published><updated>2003-12-31T14:05:19Z</updated><author><name>Werner Randelshofer</name><uri>https://sourceforge.net/u/rawcoder/</uri></author><id>https://sourceforge.net21c167f9fba7bce0e196f28a8e171053009400f8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It would be nice, if JmDNS could list all services of a given &lt;br /&gt;
type. The current implementation requires the registration &lt;br /&gt;
of a ServiceListener. Having a list(String type) method &lt;br /&gt;
would greatly simplify the amount of programming needed &lt;br /&gt;
to do this.&lt;/p&gt;
&lt;p&gt;I am thinking of a method similar to the one of Interface &lt;br /&gt;
java.rmi.registry.Registry:&lt;/p&gt;
&lt;p&gt;Here's how the method signature could look like:&lt;/p&gt;
&lt;p&gt;/**&lt;br /&gt;
* Returns all available service informations of the specified&lt;br /&gt;
* type.&lt;br /&gt;
* &lt;br /&gt;
* @param type full qualified service type, such as &lt;br /&gt;
_http._tcp.local..&lt;br /&gt;
* @return An array of service information objects.&lt;br /&gt;
* Returns an empty array if no service informations can be&lt;br /&gt;
* obtained. Never returns null.&lt;br /&gt;
*/&lt;br /&gt;
public ServiceInfo[] list(String type);&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>