|
| 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._tcp.local.</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