Skip to content

Commit bef8090

Browse files
committed
Initial commit. Dump from source forge CVS.
0 parents  commit bef8090

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+9230
-0
lines changed

CHANGELOG.txt

Lines changed: 263 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,263 @@
1+
CHANGELOG 06 February 2008 Scott Cytacki
2+
1. Added code to make it easier to debug communication with other mdns implementations.
3+
Including:
4+
- keeping track of the the address which sent a dns record
5+
- flag to turning off domain-name compression
6+
- flag to use non domain-name format for targets of SRV records
7+
- checks for conflicts from our own source address.
8+
Added the UNIQUE flag which is referred to the "cache flush bit" by the spec, on SRV
9+
and TXT records sent to announce a Service.
10+
11+
2. Made TimerTasks inside of JmDNSImpl into toplevel classes in a new package:
12+
javax.jmdns.impl.tasks This required making several method publics and encapsulating
13+
several fields with public getters and setters. All these changes were done using Eclipse
14+
refactoring so there is a log chance of error. I will be testing it with the Conformance
15+
Test to make sure it hasn't regressed.
16+
17+
CHANGELOG 05 February 2008 Scott Cytacki
18+
1. Moved implementation classes into a impl package. This paves the way for further
19+
refactoring. By putting all the jmdns api classes and interfaces in one package, the impl
20+
classes can be split up more without exposing public classes and methods that aren't
21+
part of the jmdns api. This change breaks the old api, because the JmDNS and ServiceInfo
22+
classes cannot be instanciated directly. Instead there are factory methods to create them.
23+
24+
CHANGELOG 01 February 2008 Scott Cytacki
25+
1. Fixed an error in the way ServiceInfo was constructing the text array for the TXT
26+
record. The length byte was being omitted if the ServiceInfo constructor was called
27+
with the last argument of a String. Added better handling of unsupported dns label
28+
types. The Apple Bonjour conformance test sends SRV records with target strings that
29+
have lengths longer than 63, so the top 2 bits get used.
30+
31+
CHANGELOG 25 January 2008 Scott Cytacki
32+
1. Consolidated most places where the ServiceInfo object was turned into a set of dns records.
33+
And most places where the localHost (HostInfo) object was turned into dns records.
34+
There is still one place that is duplicated (JmDNS.Responder) because it adds the dns records
35+
to a list first, removes known answers, and finally adds them to DNSOutgoing.
36+
37+
CHANGELOG 17 January 2008 Scott Cytacki
38+
1. Added eclipse project files. Forced the eclipse project to use java 1.4
39+
40+
2. Changed the eclipse project to store built files in eclipse-lib because lib was already
41+
being used.
42+
43+
3. Added eclipse code formating configuration files. They should match follow the turbine
44+
coding standards which have been used in this project: http://turbine.apache.org/common/code-standards.html
45+
Also this includes a minor formating clean up of JmDNS class.
46+
47+
4. Changed Logger.getLogger parameter to use class.getName instead of class.toString. This is because
48+
class.toString returns for example "class javax.jmdns.JmDNS" while class.getName returns "javax.jmdns.JmDNS".
49+
The "class " messes up the logging hierarchical structure. This javadoc specifices the string should be
50+
dot separated: http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/Logger.html#getLogger(java.lang.String).
51+
Also this post to the mailing list talks about this issue:
52+
http://sourceforge.net/mailarchive/forum.php?thread_name=1196195175.2703.4.camel%40moya.kivasystems.com&forum_name=jmdns-discuss
53+
In that case getCanonicalName was used but that is only in Java 1.5 and basically does the same thing
54+
for normal classes.
55+
56+
57+
CHANGELOG 16 July 2005 Rick Blair
58+
59+
1. Added Apache License Version 2.0
60+
61+
2. Added shutdown fix as identifed by Scott Lewis
62+
63+
3. Added copyright notice.
64+
65+
4. General code cleanup.
66+
67+
68+
CHANGELOG 30 November 2004 rawcoder
69+
70+
1. IPv6 support
71+
72+
- RFE 890432: IPv6 support implemented
73+
74+
2. Logging
75+
76+
- Logging is done using the Java Logger API now
77+
78+
3. Bug fixes
79+
80+
- JmDNS reannounces services after their TTL has timed out.
81+
82+
4. Plattform dependency
83+
84+
- Due to the changes done for IPv6 support and the logging,
85+
JmDNS requires now a JVM supporting a J2SE 1.4 API.
86+
87+
88+
CHANGELOG 6 June 2004 rawcoder
89+
90+
1. General API Changes
91+
92+
- RFE 868432: Changed listener API to comply with the commonly used
93+
EventListener/EventObject idiom
94+
- RFE 868433: Added a list method to class JmDNS which can be used to
95+
retrieve a list of available services without having to
96+
implement a ServiceListener.
97+
- RFE 892855: All API's use now unqualified service instance names
98+
99+
2. General implementation changes
100+
101+
- JmDNS now runs through the Rendezvous Conformance Test, when the options
102+
"-M hn" are used.
103+
- Threads are now handled differently. ServiceListeners and
104+
ServiceTypeListeners can not assume anymore that they are invoked from
105+
the AWT event dispatcher thread.
106+
- States are now handled explicitly using class DNSState.
107+
108+
3. DNSCache
109+
110+
- Removed the hash table code and use now a java.util.Hashtable.
111+
- This reduces the overall size of the class.
112+
113+
4. DNSConstants
114+
115+
- Added several new time interval constants.
116+
117+
5. DNSEntry
118+
119+
- Now overrides method hashCode() to return a value, that is consistent with
120+
method equals().
121+
122+
6. DNSIncoming
123+
124+
- Added a warning to constant EMPTY. Using this constant is dangerous, because a Vector
125+
is mutable. Thus it can not be used as a constant this way.
126+
- Made many instance variables and methods private.
127+
- Added more output to method print(), to help me debug JmDNS.
128+
- Optimized StringBuffer handling in method toString().
129+
- Added methods isTruncated() and append().
130+
- DNSIncoming must adjust variables numAnswers, numAuthorities, numAdditionals when skipping records.
131+
132+
7. DNSOutgoing
133+
134+
- Made as many instance variables private as I could.
135+
- Added assertions (using if-Statements) to all add...() methods to prevent construction of
136+
illegal data structures.
137+
138+
8. DNSRecord
139+
140+
- Made as many instance variables private as I could.
141+
- Moved code from class JmDNS into class DNSRecord. The new operations are named: handleQuery()
142+
handleResponse() and addAnswer(). This is to get rid of the big switch-statements that were
143+
in method handleQuery() and handleResponse() of class JmDNS.
144+
This does somehow make the relationship between these two classes a little bit more complex though.
145+
146+
9. JmDNS
147+
148+
- Added comments to some of the instance variables.
149+
- Added an instance variable named 'state' to track the state of the host name published by JmDNS, and of
150+
JmDNS itself.
151+
- Replaced instance variable 'Vector browsers' by a hash map named 'serviceListeners'.
152+
- Got rid of the query cache. All caching is done now by a single cache.
153+
- Added instance variables for counting probe throttles.
154+
- Added an instance variable named 'hostNameCount' to create a new host name, when a conflict was detected.
155+
- Added a java.util.Timer. All outgoing messages and maintenance of the cache is now coordinated using the
156+
timer. This greatly reduces the number of concurrent threads.
157+
- Added an instance variable named 'ioLock'. This lock is used to coordinate the incoming listener thread
158+
with the timer tasks.
159+
- Added a static variable named 'random'. It is used to generate random delays for responses.
160+
- All outgoing tasks such as probing, announcing, responding and canceling are now handled by instances of
161+
TimerTask.
162+
- Added an instance variable named 'task', to keep track of timer tasks associated with the host name.
163+
- Transferred code from JmDNS to DNSRecord to get rid of some ugly switch statements.
164+
165+
166+
10. ServiceInfo
167+
168+
- Added an instance variable named 'state' to track the state of the service.
169+
This is used only, if the service is published by JmDNS.
170+
- Added an instance variable named 'task', to keep track of timer tasks associated with the service info.
171+
172+
173+
11. Sample code
174+
175+
- Added a "samples" package to JmDNS. This package contains sample
176+
programs for JmDNS.
177+
178+
12. JavaDoc
179+
- Added a "package.html" file for each package. This file holds package
180+
documentation used by JavaDoc.
181+
182+
13. Build
183+
- Added a "samples" task to build.xml.
184+
- The "javadoc" task puts now a version number into the header of
185+
each generated page.
186+
187+
188+
189+
CHANGELOG 21 APRIL 2004 RickBlair
190+
191+
1. JmDNS
192+
193+
-Fixed broken additionals in the Query Function.
194+
-Added additionals to the SVC query.
195+
196+
197+
198+
199+
200+
CHANGELOG 28-29 MAR 2004 jeffs
201+
1. JmDNS
202+
203+
- Added probing thread to handle address record probing and conflicts
204+
205+
- Fixed wait times to be in line with the draft mDNS spec.
206+
207+
- Added query cache so can check if another machine is also
208+
probing for our address.
209+
210+
- Added support for slowing down the request rate during
211+
probing as per the draft mDNS spec.
212+
213+
- Added conflict checks.
214+
215+
- General code clean up.
216+
217+
- changed visibility of static debug variable to public
218+
so apps can check it and decide to do their own logging and so on
219+
220+
- changed visbility of all non-static variables to private
221+
222+
- added package protected method getCache()
223+
224+
- broke up handleQuery() into:
225+
226+
private DNSOutgoing typeA()
227+
private DNSOutgoing typePTR()
228+
private DNSOutgoing findService()
229+
230+
- reduced handleQuery() synchronized block
231+
to just cover Socket.send() call
232+
233+
[need to figure out what else needs synchronization]
234+
235+
2. ServiceInfo
236+
237+
- changed all calls to JmDNS cache variable
238+
to use JmDNS getCache() accessor instead
239+
240+
- replaced javadoc comment
241+
<code>_http._tcp.local.</code>
242+
with
243+
<code>_http&#46;_tcp.local&#46;</code>
244+
so the javadoc tool would quit whining
245+
246+
3. DNSConstants
247+
248+
- Added constants for wait times and probe times.
249+
250+
- changed to be a final class
251+
252+
- changed all references to it's fields in all other classes
253+
to read DNSConstants.whatever
254+
255+
256+
Know Problems.
257+
258+
-- The additional section is broken in handleQuery. This will be fixed in the next go round.
259+
260+
-- Service probing is still not to spec. No conflict resolution.
261+
262+
-- Still can blow address space on very busy networks.
263+

0 commit comments

Comments
 (0)