Replacement JAR for b89 for UPNP testing (Apr 12)
Moderators: dorpond, trevor, Azhrei
Replacement JAR for b89 for UPNP testing (Apr 12)
I've added a LOT of debugging to the UPNP library. It will log every network packet it tries to send and every response it receives back. I'm hoping this will provide the data needed to fix the UNP issue once and for all! Whether your UPNP works or fails, your data will help isolate the problem. If you're existing setup works, you may want to unpack MT into a different directory for the purposes of this test so that you can simply delete the directory when you're done.
Here's the process for testing this library. Basically it boils down to copying the file into place and enabling the logging of the upnp modules.
INSTALLING THE TEST
0. Shutdown any existing MapTool session.
1. Download the attached JAR file. The default name is upnplib-1.0.8-nodebug.zip
2. Make a note of the version number embedded in the filename of the two existing files that start with "sbbi" in the lib/ directory of your MapTool installation. Then delete them both. For OSX users, you'll need to right-click on the .app and choose "Show Package Contents..." and navigate down through Contents, Resources, and Java to find the lib/ directory.
3. Copy the downloaded file into the lib/ directory. Rename it so the filename extension is .jar, as in sbbi-upnplib-1.0.5-nodebug.jar. Use the same version number as you found in Step 2. So if the original file from Step 2 was sbbi-upnplib-1.0.4-nodebug.jar, then use that same name as the destination for this step.
4. Copy the attached logging.xml file into your .maptool/ directory and name the new file, logging.xml. You have just configured MapTool to turn on extensive UPNP logging the next time it starts.
TEST MAPTOOL
You can now run the test.
1. Start by deleting the file .maptool/log.txt if it's there.
2. Run MapTool.
3. Leave the default (empty) campaign as it is.
4. Go to File > Start Server... and be sure the UPNP checkbox is turned on.
5. Click OK and wait for the message in the chat window.
6. Once you have the message, disconnect from the server (also on the File menu). Please don't delay when doing this -- we don't want more logging than we absolutely need as it will make problem determination more difficult.
7. Exit MapTool.
Whether it fails or not isn't that important -- the log data has been generated.
You can turn off any future logging by simply deleting the .maptool/logging.xml file.
REPORT YOUR FINDINGS
Send me an email (address below) and attach the .maptool/log.txt file that MapTool created. If you didn't get such a file, or if it's empty, then review the installation steps above and make sure all of them were performed as described. If the wrong library is used, there won't be any logging. If the XML file isn't copied into the right place, there won't be any logging.
If you have multiple routers and can run the test multiple times, please do so! But follow the TEST MAPTOOL steps separately each time so that you have one log.txt file for each router.
If you send me an email through the forum you won't be able to attach any files. Just send a regular email to azhrei-at-eec-dot-com (as usual, replace "-at-" and "-dot-" with the right characters ). I will respond with "Thanks, I got it" within 48 hours so you know it wasn't eaten by my spam filters.
There is no personally identifiable information in the log so you can attach it here if you like (mine is shown in the next post). Please ZIP it up first and then attach it -- that will preserve any funky characters that might be embedded in the data stream. (Copy/paste might remove those characters.) If you have multiple files you can ZIP them all up into a single archive and send or attach that.
Edit: Rebuilt the JAR using Java 6 so that the "Version 51" error doesn't happen. "Oops, my bad."
Here's the process for testing this library. Basically it boils down to copying the file into place and enabling the logging of the upnp modules.
INSTALLING THE TEST
0. Shutdown any existing MapTool session.
1. Download the attached JAR file. The default name is upnplib-1.0.8-nodebug.zip
2. Make a note of the version number embedded in the filename of the two existing files that start with "sbbi" in the lib/ directory of your MapTool installation. Then delete them both. For OSX users, you'll need to right-click on the .app and choose "Show Package Contents..." and navigate down through Contents, Resources, and Java to find the lib/ directory.
3. Copy the downloaded file into the lib/ directory. Rename it so the filename extension is .jar, as in sbbi-upnplib-1.0.5-nodebug.jar. Use the same version number as you found in Step 2. So if the original file from Step 2 was sbbi-upnplib-1.0.4-nodebug.jar, then use that same name as the destination for this step.
4. Copy the attached logging.xml file into your .maptool/ directory and name the new file, logging.xml. You have just configured MapTool to turn on extensive UPNP logging the next time it starts.
TEST MAPTOOL
You can now run the test.
1. Start by deleting the file .maptool/log.txt if it's there.
2. Run MapTool.
3. Leave the default (empty) campaign as it is.
4. Go to File > Start Server... and be sure the UPNP checkbox is turned on.
5. Click OK and wait for the message in the chat window.
6. Once you have the message, disconnect from the server (also on the File menu). Please don't delay when doing this -- we don't want more logging than we absolutely need as it will make problem determination more difficult.
7. Exit MapTool.
Whether it fails or not isn't that important -- the log data has been generated.
You can turn off any future logging by simply deleting the .maptool/logging.xml file.
REPORT YOUR FINDINGS
Send me an email (address below) and attach the .maptool/log.txt file that MapTool created. If you didn't get such a file, or if it's empty, then review the installation steps above and make sure all of them were performed as described. If the wrong library is used, there won't be any logging. If the XML file isn't copied into the right place, there won't be any logging.
If you have multiple routers and can run the test multiple times, please do so! But follow the TEST MAPTOOL steps separately each time so that you have one log.txt file for each router.
If you send me an email through the forum you won't be able to attach any files. Just send a regular email to azhrei-at-eec-dot-com (as usual, replace "-at-" and "-dot-" with the right characters ). I will respond with "Thanks, I got it" within 48 hours so you know it wasn't eaten by my spam filters.
There is no personally identifiable information in the log so you can attach it here if you like (mine is shown in the next post). Please ZIP it up first and then attach it -- that will preserve any funky characters that might be embedded in the data stream. (Copy/paste might remove those characters.) If you have multiple files you can ZIP them all up into a single archive and send or attach that.
Edit: Rebuilt the JAR using Java 6 so that the "Version 51" error doesn't happen. "Oops, my bad."
- Attachments
-
- upnplib-1.0.8-nodebug.zip
- replacement library (update 4)
- (99.82 KiB) Downloaded 164 times
-
- logging.xml
- configuration file
- (1.82 KiB) Downloaded 134 times
Last edited by Azhrei on Fri Apr 19, 2013 2:55 pm, edited 6 times in total.
Reason: updated UPNP library to 1.0.8
Reason: updated UPNP library to 1.0.8
Re: Replacement JAR for b89 for UPNP testing
Here's the log file that my router just produced. It's a TL-Link with the stock firmware. If you look closely you'll see an error message at the end. Apparently the implementation has a bug in it such that the UPNP port mapping is reported as invalid so it's not deleted.
In addition, this router is not using XML namespace prefixes, which may be why it's working. The previous failures in the UPNP library were in regards to XML namespace prefix support...
I have another router with OpenWRT installed and I'll be doing that one as well. (Although I won't be posting it here or emailing it to myself. )
In addition, this router is not using XML namespace prefixes, which may be why it's working. The previous failures in the UPNP library were in regards to XML namespace prefix support...
I have another router with OpenWRT installed and I'll be doing that one as well. (Although I won't be posting it here or emailing it to myself. )
Code: Select all
2013-04-07 23:15:50,722 [upnp.Discovery:?] DEBUG - Sending discovery message on 239.255.255.250:1900 multicast address form ip 192.168.0.30:
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 3
ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
2013-04-07 23:15:53,182 [upnp.HttpResponse:?] DEBUG - Response: CACHE-CONTROL: max-age=100
2013-04-07 23:15:53,183 [upnp.HttpResponse:?] DEBUG - Response: DATE: Sun, 07 Apr 2013 22:15:47 GMT
2013-04-07 23:15:53,183 [upnp.HttpResponse:?] DEBUG - Response: EXT:
2013-04-07 23:15:53,183 [upnp.HttpResponse:?] DEBUG - Response: LOCATION: http://192.168.0.1:1900/igd.xml
2013-04-07 23:15:53,184 [upnp.HttpResponse:?] DEBUG - Response: SERVER: ipos/7.0 UPnP/1.0 TL-WR841N/8.0
2013-04-07 23:15:53,184 [upnp.HttpResponse:?] DEBUG - Response: ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
2013-04-07 23:15:53,184 [upnp.HttpResponse:?] DEBUG - Response: USN: uuid:060b7353-fca6-4070-85f4-1fbfb9add62c::urn:schemas-upnp-org:device:InternetGatewayDevice:1
2013-04-07 23:15:53,185 [upnp.DiscoveryListener:?] DEBUG - Processing http://192.168.0.1:1900/igd.xml device description location
2013-04-07 23:15:53,306 [upnp.JXPathParser:?] DEBUG - Raw xml doc:
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<URLBase></URLBase>
<device>
<deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType>
<presentationURL>http://192.168.0.1:80/ </presentationURL>
<friendlyName>Wireless Router TL-WR841N</friendlyName>
<manufacturer>TP-LINK</manufacturer>
<manufacturerURL>http://www.tp-link.com</manufacturerURL>
<modelDescription>Wireless Router TL-WR841N</modelDescription>
<modelName>TL-WR841N</modelName>
<modelNumber>8.0</modelNumber>
<modelURL>http://192.168.0.1:80</modelURL>
<serialNumber>none</serialNumber>
<UDN>uuid:060b7353-fca6-4070-85f4-1fbfb9add62c</UDN>
<UPC>00000-00001</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:Layer3Forwarding:1</serviceType>
<serviceId>urn:upnp-org:serviceId:L3Forwarding1</serviceId>
<controlURL>/l3f</controlURL>
<eventSubURL>/l3f</eventSubURL>
<SCPDURL>/l3f.xml</SCPDURL>
</service>
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType>
<friendlyName>Wireless Router TL-WR841N</friendlyName>
<manufacturer>TP-LINK</manufacturer>
<manufacturerURL>http://www.tp-link.com</manufacturerURL>
<modelDescription>Wireless Router TL-WR841N</modelDescription>
<modelName>TL-WR841N</modelName>
<modelNumber>8.0</modelNumber>
<modelURL>http://192.168.0.1:80</modelURL>
<serialNumber>none</serialNumber>
<UDN>uuid:254e9977-8964-49f3-b8d5-51acb7bd40fc</UDN>
<UPC>00000-00001</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId>
<controlURL>/ifc</controlURL>
<eventSubURL>/ifc</eventSubURL>
<SCPDURL>/ifc.xml</SCPDURL>
</service>
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType>
<friendlyName>Wireless Router TL-WR841N</friendlyName>
<manufacturer>TP-LINK</manufacturer>
<manufacturerURL>http://www.tp-link.com</manufacturerURL>
<modelDescription>Wireless Router TL-WR841N</modelDescription>
<modelName>TL-WR841N</modelName>
<modelNumber>8.0</modelNumber>
<modelURL>http://192.168.0.1:80</modelURL>
<serialNumber>none</serialNumber>
<UDN>uuid:9f0865b3-f5da-4ad5-85b7-7404637fdf37</UDN>
<UPC>00000-00001</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:WANIPConnection:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId>
<controlURL>/ipc</controlURL>
<eventSubURL>/ipc</eventSubURL>
<SCPDURL>/ipc.xml</SCPDURL>
</service>
</serviceList>
</device>
</deviceList>
</device>
<!-- WFAWC goes here -->
<device>
<deviceType>urn:schemas-wifialliance-org:device:WFADevice:1</deviceType>
<presentationURL>http://192.168.0.1:80/ </presentationURL>
<friendlyName>Wireless Router TL-WR841N</friendlyName>
<manufacturer>TP-LINK</manufacturer>
<manufacturerURL>http://www.tp-link.com</manufacturerURL>
<modelDescription>Wireless Router TL-WR841N</modelDescription>
<modelName>TL-WR841N</modelName>
<modelNumber>8.0</modelNumber>
<modelURL>http://192.168.0.1:80</modelURL>
<serialNumber>none</serialNumber>
<UDN>uuid:565aa949-67c1-4c0e-aa8f-f349e6f59311</UDN>
<UPC>00000-00001</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-wifialliance-org:service:WFAWLANConfig:1</serviceType>
<serviceId>urn:wifialliance-org:serviceId:WFAWLANConfig1</serviceId>
<controlURL>http://192.168.0.1:1910/WFAWLANConfig/control</controlURL>
<eventSubURL>http://192.168.0.1:1910/WFAWLANConfig/event</eventSubURL>
<SCPDURL>http://192.168.0.1:1900/wfc.xml</SCPDURL>
</service>
</serviceList>
</device>
<!-- WFAWC ends here -->
</deviceList>
</device>
</root>
2013-04-07 23:15:53,317 [devices.UPNPRootDevice:?] DEBUG - parsing device urn:schemas-upnp-org:device:InternetGatewayDevice:1
2013-04-07 23:15:53,323 [devices.UPNPRootDevice:?] DEBUG - device services count is 1.0
2013-04-07 23:15:53,326 [devices.UPNPRootDevice:?] DEBUG - child devices count is 2.0
2013-04-07 23:15:53,326 [devices.UPNPRootDevice:?] DEBUG - parsing device urn:schemas-upnp-org:device:WANDevice:1
2013-04-07 23:15:53,327 [devices.UPNPRootDevice:?] DEBUG - device services count is 1.0
2013-04-07 23:15:53,328 [devices.UPNPRootDevice:?] DEBUG - child devices count is 1.0
2013-04-07 23:15:53,328 [devices.UPNPRootDevice:?] DEBUG - parsing device urn:schemas-upnp-org:device:WANConnectionDevice:1
2013-04-07 23:15:53,329 [devices.UPNPRootDevice:?] DEBUG - device services count is 1.0
2013-04-07 23:15:53,330 [devices.UPNPRootDevice:?] DEBUG - adding child device urn:schemas-upnp-org:device:WANConnectionDevice:1
2013-04-07 23:15:53,330 [devices.UPNPRootDevice:?] DEBUG - adding child device urn:schemas-upnp-org:device:WANDevice:1
2013-04-07 23:15:53,331 [devices.UPNPRootDevice:?] DEBUG - parsing device urn:schemas-wifialliance-org:device:WFADevice:1
2013-04-07 23:15:53,332 [devices.UPNPRootDevice:?] DEBUG - device services count is 1.0
2013-04-07 23:15:53,333 [devices.UPNPRootDevice:?] DEBUG - adding child device urn:schemas-wifialliance-org:device:WFADevice:1
2013-04-07 23:15:55,727 [devices.UPNPDevice:?] DEBUG - searching for device URI:urn:schemas-upnp-org:device:WANConnectionDevice:1
2013-04-07 23:15:55,728 [devices.UPNPDevice:?] DEBUG - searching for device URI:urn:schemas-upnp-org:device:WANConnectionDevice:1
2013-04-07 23:15:55,728 [devices.UPNPDevice:?] DEBUG - searching for device URI:urn:schemas-upnp-org:device:WANConnectionDevice:1
2013-04-07 23:15:55,729 [devices.UPNPDevice:?] DEBUG - searching for service URI:urn:schemas-upnp-org:service:WANIPConnection:1
2013-04-07 23:15:55,729 [devices.UPNPDevice:?] DEBUG - searching for service URI:urn:schemas-upnp-org:service:WANPPPConnection:1
2013-04-07 23:15:55,810 [upnp.JXPathParser:?] DEBUG - Raw xml doc:
<?xml version="1.0"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>SetConnectionType</name>
<argumentList>
<argument>
<name>NewConnectionType</name>
<direction>in</direction>
<relatedStateVariable>ConnectionType</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetConnectionTypeInfo</name>
<argumentList>
<argument>
<name>NewConnectionType</name>
<direction>out</direction>
<relatedStateVariable>ConnectionType</relatedStateVariable>
</argument>
<argument>
<name>NewPossibleConnectionTypes</name>
<direction>out</direction>
<relatedStateVariable>PossibleConnectionTypes</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>RequestConnection</name>
</action>
<action>
<name>ForceTermination</name>
</action>
<action>
<name>GetStatusInfo</name>
<argumentList>
<argument>
<name>NewConnectionStatus</name>
<direction>out</direction>
<relatedStateVariable>ConnectionStatus</relatedStateVariable>
</argument>
<argument>
<name>NewLastConnectionError</name>
<direction>out</direction>
<relatedStateVariable>LastConnectionError</relatedStateVariable>
</argument>
<argument>
<name>NewUptime</name>
<direction>out</direction>
<relatedStateVariable>Uptime</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetNATRSIPStatus</name>
<argumentList>
<argument>
<name>NewRSIPAvailable</name>
<direction>out</direction>
<relatedStateVariable>RSIPAvailable</relatedStateVariable>
</argument>
<argument>
<name>NewNATEnabled</name>
<direction>out</direction>
<relatedStateVariable>NATEnabled</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetGenericPortMappingEntry</name>
<argumentList>
<argument>
<name>NewPortMappingIndex</name>
<direction>in</direction>
<relatedStateVariable>PortMappingNumberOfEntries</relatedStateVariable>
</argument>
<argument>
<name>NewRemoteHost</name>
<direction>out</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>out</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>out</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>out</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>out</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>out</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>out</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>out</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetSpecificPortMappingEntry</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>out</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>out</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>out</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>out</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>out</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>AddPortMapping</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>in</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>in</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>in</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>in</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>in</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>DeletePortMapping</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetExternalIPAddress</name>
<argumentList>
<argument>
<name>NewExternalIPAddress</name>
<direction>out</direction>
<relatedStateVariable>ExternalIPAddress</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>ConnectionType</name>
<dataType>string</dataType>
<defaultValue>Unconfigured</defaultValue>
</stateVariable>
<stateVariable sendEvents="yes">
<name>PossibleConnectionTypes</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>Unconfigured</allowedValue>
<allowedValue>IP_Routed</allowedValue>
<allowedValue>IP_Bridged</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="yes">
<name>ConnectionStatus</name>
<dataType>string</dataType>
<defaultValue>Unconfigured</defaultValue>
<allowedValueList>
<allowedValue>Unconfigured</allowedValue>
<allowedValue>Connecting</allowedValue>
<allowedValue>Authenticating</allowedValue>
<allowedValue>PendingDisconnect</allowedValue>
<allowedValue>Disconnecting</allowedValue>
<allowedValue>Disconnected</allowedValue>
<allowedValue>Connected</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>Uptime</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
<allowedValueRange>
<minimum>0</minimum>
<maximum />
<step>1</step>
</allowedValueRange>
</stateVariable>
<stateVariable sendEvents="no">
<name>RSIPAvailable</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>NATEnabled</name>
<dataType>boolean</dataType>
<defaultValue>1</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>LastConnectionError</name>
<dataType>string</dataType>
<defaultValue>ERROR_NONE</defaultValue>
<allowedValueList>
<allowedValue>ERROR_NONE</allowedValue>
<allowedValue>ERROR_ISP_TIME_OUT</allowedValue>
<allowedValue>ERROR_COMMAND_ABORTED</allowedValue>
<allowedValue>ERROR_NOT_ENABLED_FOR_INTERNET</allowedValue>
<allowedValue>ERROR_BAD_PHONE_NUMBER</allowedValue>
<allowedValue>ERROR_USER_DISCONNECT</allowedValue>
<allowedValue>ERROR_ISP_DISCONNECT</allowedValue>
<allowedValue>ERROR_IDLE_DISCONNECT</allowedValue>
<allowedValue>ERROR_FORCED_DISCONNECT</allowedValue>
<allowedValue>ERROR_SERVER_OUT_OF_RESOURCES</allowedValue>
<allowedValue>ERROR_RESTRICTED_LOGON_HOURS</allowedValue>
<allowedValue>ERROR_ACCOUNT_DISABLED</allowedValue>
<allowedValue>ERROR_ACCOUNT_EXPIRED</allowedValue>
<allowedValue>ERROR_PASSWORD_EXPIRED</allowedValue>
<allowedValue>ERROR_AUTHENTICATION_FAILURE</allowedValue>
<allowedValue>ERROR_NO_DIALTONE</allowedValue>
<allowedValue>ERROR_NO_CARRIER</allowedValue>
<allowedValue>ERROR_NO_ANSWER</allowedValue>
<allowedValue>ERROR_LINE_BUSY</allowedValue>
<allowedValue>ERROR_UNSUPPORTED_BITSPERSECOND</allowedValue>
<allowedValue>ERROR_TOO_MANY_LINE_ERRORS</allowedValue>
<allowedValue>ERROR_IP_CONFIGURATION</allowedValue>
<allowedValue>ERROR_UNKNOWN</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="yes">
<name>ExternalIPAddress</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>RemoteHost</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>ExternalPort</name>
<dataType>ui2</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>InternalPort</name>
<dataType>ui2</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingProtocol</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>TCP</allowedValue>
<allowedValue>UDP</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>InternalClient</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingDescription</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingEnabled</name>
<dataType>boolean</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingLeaseDuration</name>
<dataType>ui4</dataType>
</stateVariable>
<stateVariable sendEvents="yes">
<name>PortMappingNumberOfEntries</name>
<dataType>ui2</dataType>
</stateVariable>
</serviceStateTable>
</scpd>
2013-04-07 23:15:55,860 [messages.ActionMessage:?] DEBUG - POST prepared for URL http://192.168.0.1:1900/ipc
2013-04-07 23:15:55,862 [messages.ActionMessage:?] DEBUG - executing query :
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>51515</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>51515</NewInternalPort><NewInternalClient>192.168.0.30</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>MapTool</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:AddPortMapping></s:Body></s:Envelope>
2013-04-07 23:15:56,207 [messages.ActionMessage:?] DEBUG - received response :
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<u:AddPortMappingResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"></u:AddPortMappingResponse></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2013-04-07 23:16:01,967 [messages.ActionMessage:?] DEBUG - POST prepared for URL http://192.168.0.1:1900/ipc
2013-04-07 23:16:01,969 [messages.ActionMessage:?] DEBUG - executing query :
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSpecificPortMappingEntry xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>51515</NewExternalPort><NewProtocol>TCP</NewProtocol></u:GetSpecificPortMappingEntry></s:Body></s:Envelope>
2013-04-07 23:16:01,972 [messages.ActionMessage:?] DEBUG - received response :
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<u:GetSpecificPortMappingEntryResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewInternalPort>51515</NewInternalPort><NewInternalClient>192.168.0.30</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>MapTool</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:GetSpecificPortMappingEntryResponse></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2013-04-07 23:16:01,975 [messages.ActionMessage:?] DEBUG - POST prepared for URL http://192.168.0.1:1900/ipc
2013-04-07 23:16:01,976 [messages.ActionMessage:?] DEBUG - executing query :
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:DeletePortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>51515</NewExternalPort><NewProtocol>TCP</NewProtocol></u:DeletePortMapping></s:Body></s:Envelope>
2013-04-07 23:16:02,264 [messages.ActionMessage:?] DEBUG - received response :
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<u:DeletePortMappingResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"></u:DeletePortMappingResponse></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2013-04-07 23:16:02,267 [messages.ActionMessage:?] DEBUG - POST prepared for URL http://192.168.0.1:1900/ipc
2013-04-07 23:16:02,269 [messages.ActionMessage:?] DEBUG - POST prepared for URL http://192.168.0.1:1900/ipc
2013-04-07 23:16:02,269 [messages.ActionMessage:?] DEBUG - executing query :
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSpecificPortMappingEntry xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>51515</NewExternalPort><NewProtocol>TCP</NewProtocol></u:GetSpecificPortMappingEntry></s:Body></s:Envelope>
2013-04-07 23:16:02,271 [messages.ActionMessage:?] DEBUG - executing query :
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSpecificPortMappingEntry xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>51515</NewExternalPort><NewProtocol>TCP</NewProtocol></u:GetSpecificPortMappingEntry></s:Body></s:Envelope>
2013-04-07 23:16:02,275 [messages.ActionMessage:?] DEBUG - received response :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid ExternalPort</errorDescription>
</UPnPError>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2013-04-07 23:16:02,275 [messages.ActionMessage:?] DEBUG - received response :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid ExternalPort</errorDescription>
</UPnPError>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2013-04-07 23:16:02,278 [util.UPnPUtil:116] WARN - While closing UPnP port
net.sbbi.upnp.messages.UPNPResponseException: Detailed error code :402, Detailed error description :Invalid ExternalPort
at net.sbbi.upnp.messages.ActionMessageResponseParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
at net.sbbi.upnp.messages.ActionMessage.service(Unknown Source)
at net.sbbi.upnp.impls.InternetGatewayDevice.getSpecificPortMappingEntry(Unknown Source)
at net.rptools.maptool.util.UPnPUtil.closePort(UPnPUtil.java:101)
at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1021)
at net.rptools.maptool.client.ServerDisconnectHandler.handleDisconnect(ServerDisconnectHandler.java:28)
at net.rptools.clientserver.simple.AbstractConnection.fireDisconnect(AbstractConnection.java:108)
at net.rptools.clientserver.simple.client.ClientConnection$ReceiveThread.run(ClientConnection.java:183)
2013-04-07 23:16:02,278 [util.UPnPUtil:116] WARN - While closing UPnP port
net.sbbi.upnp.messages.UPNPResponseException: Detailed error code :402, Detailed error description :Invalid ExternalPort
at net.sbbi.upnp.messages.ActionMessageResponseParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
at net.sbbi.upnp.messages.ActionMessage.service(Unknown Source)
at net.sbbi.upnp.impls.InternetGatewayDevice.getSpecificPortMappingEntry(Unknown Source)
at net.rptools.maptool.util.UPnPUtil.closePort(UPnPUtil.java:101)
at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1021)
at net.rptools.maptool.client.AppActions.disconnectFromServer(AppActions.java:1953)
at net.rptools.maptool.client.AppActions$53.execute(AppActions.java:1945)
at net.rptools.maptool.client.AppActions$ClientAction.actionPerformed(AppActions.java:2697)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:128)
at java.awt.MenuItem.processActionEvent(MenuItem.java:669)
at java.awt.MenuItem.processEvent(MenuItem.java:628)
at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:351)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:339)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:732)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
2013-04-07 23:16:08,278 [messages.ActionMessage:?] DEBUG - POST prepared for URL http://192.168.0.1:1900/ipc
2013-04-07 23:16:08,281 [messages.ActionMessage:?] DEBUG - executing query :
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSpecificPortMappingEntry xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>51515</NewExternalPort><NewProtocol>TCP</NewProtocol></u:GetSpecificPortMappingEntry></s:Body></s:Envelope>
2013-04-07 23:16:08,283 [messages.ActionMessage:?] DEBUG - received response :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid ExternalPort</errorDescription>
</UPnPError>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2013-04-07 23:16:08,285 [util.UPnPUtil:116] WARN - While closing UPnP port
net.sbbi.upnp.messages.UPNPResponseException: Detailed error code :402, Detailed error description :Invalid ExternalPort
at net.sbbi.upnp.messages.ActionMessageResponseParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
at net.sbbi.upnp.messages.ActionMessage.service(Unknown Source)
at net.sbbi.upnp.impls.InternetGatewayDevice.getSpecificPortMappingEntry(Unknown Source)
at net.rptools.maptool.util.UPnPUtil.closePort(UPnPUtil.java:101)
at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1021)
at net.rptools.maptool.client.ui.MapToolFrame.close(MapToolFrame.java:1334)
at net.rptools.maptool.client.ui.MapToolFrame.closingMaintenance(MapToolFrame.java:1329)
at net.rptools.maptool.client.AppActions$66.execute(AppActions.java:2578)
at net.rptools.maptool.client.ui.MapToolFrame.macOSXExit(MapToolFrame.java:406)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at net.rptools.maptool.client.ui.OSXAdapter.callTarget(OSXAdapter.java:154)
at net.rptools.maptool.client.ui.OSXAdapter.invoke(OSXAdapter.java:165)
at com.sun.proxy.$Proxy5.handleQuit(Unknown Source)
at com.apple.eawt._AppEventLegacyHandler$7.dispatchEvent(_AppEventLegacyHandler.java:166)
at com.apple.eawt._AppEventLegacyHandler.sendEventToEachListenerUntilHandled(_AppEventLegacyHandler.java:188)
at com.apple.eawt._AppEventLegacyHandler.handleQuitRequestWith(_AppEventLegacyHandler.java:164)
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(_AppEventHandler.java:395)
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(_AppEventHandler.java:388)
at com.apple.eawt._AppEventHandler$_AppEventDispatcher$1.run(_AppEventHandler.java:497)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
2013-04-07 23:16:08,287 [messages.ActionMessage:?] DEBUG - POST prepared for URL http://192.168.0.1:1900/ipc
2013-04-07 23:16:08,289 [messages.ActionMessage:?] DEBUG - executing query :
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSpecificPortMappingEntry xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost><NewExternalPort>51515</NewExternalPort><NewProtocol>TCP</NewProtocol></u:GetSpecificPortMappingEntry></s:Body></s:Envelope>
2013-04-07 23:16:08,292 [messages.ActionMessage:?] DEBUG - received response :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid ExternalPort</errorDescription>
</UPnPError>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2013-04-07 23:16:08,295 [util.UPnPUtil:116] WARN - While closing UPnP port
net.sbbi.upnp.messages.UPNPResponseException: Detailed error code :402, Detailed error description :Invalid ExternalPort
at net.sbbi.upnp.messages.ActionMessageResponseParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
at net.sbbi.upnp.messages.ActionMessage.service(Unknown Source)
at net.sbbi.upnp.impls.InternetGatewayDevice.getSpecificPortMappingEntry(Unknown Source)
at net.rptools.maptool.util.UPnPUtil.closePort(UPnPUtil.java:101)
at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1021)
at net.rptools.maptool.client.ServerDisconnectHandler.handleDisconnect(ServerDisconnectHandler.java:28)
at net.rptools.clientserver.simple.AbstractConnection.fireDisconnect(AbstractConnection.java:108)
at net.rptools.clientserver.simple.client.ClientConnection$ReceiveThread.run(ClientConnection.java:183)
Last edited by Azhrei on Mon Apr 08, 2013 6:55 pm, edited 1 time in total.
Reason: fixed namespace comment re: prefixes
Reason: fixed namespace comment re: prefixes
Re: Replacement JAR for b89 for UPNP testing
(reserved)
- CoveredInFish
- Demigod
- Posts: 3104
- Joined: Mon Jun 29, 2009 10:37 am
- Location: Germany
- Contact:
Re: Replacement JAR for b89 for UPNP testing
I tried to follow your instructions, but when I check upnp it doesnt the server - there is no error msg either.
Any chance you've forgotten a step? Is it okay that I delete 2 files but replace only 1?
EDIT: funny, apparently it throws an upnp-related error when I try to quit MT
Any chance you've forgotten a step? Is it okay that I delete 2 files but replace only 1?
EDIT: funny, apparently it throws an upnp-related error when I try to quit MT
crash dump
java.lang.UnsupportedClassVersionError: net/sbbi/upnp/messages/UPNPResponseException : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1021)
at net.rptools.maptool.client.ui.MapToolFrame.close(MapToolFrame.java:1334)
at net.rptools.maptool.client.ui.MapToolFrame.closingMaintenance(MapToolFrame.java:1329)
at net.rptools.maptool.client.ui.MapToolFrame.windowClosing(MapToolFrame.java:1288)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:333)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
at java.awt.Window.processWindowEvent(Window.java:1871)
at javax.swing.JFrame.processWindowEvent(JFrame.java:274)
at java.awt.Window.processEvent(Window.java:1829)
at java.awt.Component.dispatchEventImpl(Component.java:4744)
at java.awt.Container.dispatchEventImpl(Container.java:2141)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:710)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:669)
at java.awt.EventQueue$2.run(EventQueue.java:667)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:683)
at java.awt.EventQueue$3.run(EventQueue.java:681)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:680)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at net.rptools.maptool.client.MapTool.disconnect(MapTool.java:1021)
at net.rptools.maptool.client.ui.MapToolFrame.close(MapToolFrame.java:1334)
at net.rptools.maptool.client.ui.MapToolFrame.closingMaintenance(MapToolFrame.java:1329)
at net.rptools.maptool.client.ui.MapToolFrame.windowClosing(MapToolFrame.java:1288)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:333)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
at java.awt.Window.processWindowEvent(Window.java:1871)
at javax.swing.JFrame.processWindowEvent(JFrame.java:274)
at java.awt.Window.processEvent(Window.java:1829)
at java.awt.Component.dispatchEventImpl(Component.java:4744)
at java.awt.Container.dispatchEventImpl(Container.java:2141)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:710)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:669)
at java.awt.EventQueue$2.run(EventQueue.java:667)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:683)
at java.awt.EventQueue$3.run(EventQueue.java:681)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:680)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:38)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Re: Replacement JAR for b89 for UPNP testing
I've had that crash dump as well, after I tried Lee's suggestion to test the upnp (not the above, need to do that still), which also involved replacing the .jar files.
GETTING STARTED WITH MAPTOOLS - TUTORIALS, DOCS, VIDEOS, TOOLS, ETC
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
- jfrazierjr
- Deity
- Posts: 5176
- Joined: Tue Sep 11, 2007 7:31 pm
Re: Replacement JAR for b89 for UPNP testing
Azhrei wrote: In addition, this router is not using XML namespaces, which may be why it's working. The previous failures in the UPNP library were in regards to XML namespace support...
Code: Select all
<root xmlns="urn:schemas-upnp-org:device-1-0"> [/quote] [spoiler=Stuff that's not germane in any way to this working or not]Technically, it IS using XML namespaces, it's just not using namespace prefixes(and hence the namespace declaration as presented here without a namespace prefix works by putting the entire contents of the message into the "urn:schemas-upnp-org:device-1-0" namespace). Now... if everything works correctly in the XML parser libraries being used, the code should see zero difference between the two(and that's a big "if" unfortunately as many get this crap wrong all the time!)[/spoiler]
I save all my Campaign Files to DropBox. Not only can I access a campaign file from pretty much any OS that will run Maptool(Win,OSX, linux), but each file is versioned, so if something goes crazy wild, I can always roll back to a previous version of the same file.
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
- JamzTheMan
- Great Wyrm
- Posts: 1872
- Joined: Mon May 10, 2010 12:59 pm
- Location: Chicagoland
- Contact:
Re: Replacement JAR for b89 for UPNP testing
Az, here's my log file from a working system if it helps.
- Attachments
-
- log.txt
- (27.63 KiB) Downloaded 106 times
-Jamz
____________________
Custom MapTool 1.4.x.x Fork: maptool.nerps.net
Custom TokenTool 2.0 Fork: tokentool.nerps.net
More information here: MapTool Nerps! Fork
____________________
Custom MapTool 1.4.x.x Fork: maptool.nerps.net
Custom TokenTool 2.0 Fork: tokentool.nerps.net
More information here: MapTool Nerps! Fork
Re: Replacement JAR for b89 for UPNP testing
Yes, that's correct. You don't need both the "debug" and "nodebug" versions anyway. The next build will only include one.CoveredInFish wrote:I tried to follow your instructions, but when I check upnp it doesnt the server - there is no error msg either.
Any chance you've forgotten a step? Is it okay that I delete 2 files but replace only 1?
Oops. I probably built that using the Java 7 compiler and you tested it with Java 6. I'll build a new JAR and upload it in a moment. Thanks.EDIT: funny, apparently it throws an upnp-related error when I try to quit MT
Not sure why you didn't get the error until you went to exit MT, though. It should've happened as soon as MT needed the UPNP library...
You're right. I misspoke. I'll go back and edit my post so that it's correct! Thanks.jfrazierjr wrote:Technically, it IS using XML namespaces, it's just not using namespace prefixesCode: Select all
<root xmlns="urn:schemas-upnp-org:device-1-0">
Yes! Every log report helps, whether it worked or not! In addition to identifying what fails, I need to identify what DOESN'T fail too!JamzTheMan wrote:Az, here's my log file from a working system if it helps.
- CoveredInFish
- Demigod
- Posts: 3104
- Joined: Mon Jun 29, 2009 10:37 am
- Location: Germany
- Contact:
Re: Replacement JAR for b89 for UPNP testing
I think I'm too stupid to set up my network correcty, it tells me I havent a upnp device but I think I should have
Well, at least here is a log.
Well, at least here is a log.
- Attachments
-
- cifs-log.zip
- (1.56 KiB) Downloaded 121 times
- jfrazierjr
- Deity
- Posts: 5176
- Joined: Tue Sep 11, 2007 7:31 pm
Re: Replacement JAR for b89 for UPNP testing
My quick guess here is that the code in fillUPNPDeviceIconsList is wrong. The error points to getting an xpath for upnp:icon[1]. My guess is that it's pulling back a list of nodes and while xpath indexes based on 1..n, java indexes based on 0..n. I would have to see the code to verify, but that's my quick guess based on the error in the log file and my knowledge of xml/xpath & java.CoveredInFish wrote:I think I'm too stupid to set up my network correcty, it tells me I havent a upnp device but I think I should have
Well, at least here is a log.
I save all my Campaign Files to DropBox. Not only can I access a campaign file from pretty much any OS that will run Maptool(Win,OSX, linux), but each file is versioned, so if something goes crazy wild, I can always roll back to a previous version of the same file.
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
- jfrazierjr
- Deity
- Posts: 5176
- Joined: Tue Sep 11, 2007 7:31 pm
Re: Replacement JAR for b89 for UPNP testing
Just an FYI, of the two posted logs that DO seem to work, neither of them had the iconList element while the one that FAILED did AND this area in the XML is where the failure is recorded.
I save all my Campaign Files to DropBox. Not only can I access a campaign file from pretty much any OS that will run Maptool(Win,OSX, linux), but each file is versioned, so if something goes crazy wild, I can always roll back to a previous version of the same file.
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
Re: Replacement JAR for b89 for UPNP testing
And here is my attempt. It failed on my pc, where the DEV version of Lee *does* work. So I know its possible and that the system is setup correctly it just does not work with b89.
I also tried lees dev version again (which still works and connects nicely) and checked the log, but nothing there...
I also tried lees dev version again (which still works and connects nicely) and checked the log, but nothing there...
GETTING STARTED WITH MAPTOOLS - TUTORIALS, DOCS, VIDEOS, TOOLS, ETC
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
- jfrazierjr
- Deity
- Posts: 5176
- Joined: Tue Sep 11, 2007 7:31 pm
Re: Replacement JAR for b89 for UPNP testing
And both of those boxes that fail are Fritz(you and CiF) brand machines. And both fail on the iconList section. My guess is that this section of code is wrong and it only manifest with routers that expose that information(where as the two that do NOT fail did NOT return an iconList element in the XML...)wolph42 wrote:And here is my attempt. It failed on my pc, where the DEV version of Lee *does* work. So I know its possible and that the system is setup correctly it just does not work with b89.
I also tried lees dev version again (which still works and connects nicely) and checked the log, but nothing there...
I save all my Campaign Files to DropBox. Not only can I access a campaign file from pretty much any OS that will run Maptool(Win,OSX, linux), but each file is versioned, so if something goes crazy wild, I can always roll back to a previous version of the same file.
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..
Re: Replacement JAR for b89 for UPNP testing
Thanks, wolph.
I don't understand why the 1.0.4 JAR would be more lenient than 1.0.5, when the only changes should have been to the XML namespace support, but there could be a subtle interaction with the latest Apache JXPath library (and its dependencies). Hopefully wolph will be able to produce a log from the dev version and we can see the differences.
In the mean time, I'll see if the 1.0.5 version of the library has some way to skip unrecognized elements...
And did you put this upnp JAR file into Lee's dev version? If you use the instructions in the OP on Lee's dev version, and put the logging.xml into place, then his dev version should produce the same logging output.wolph42 wrote:I also tried lees dev version again (which still works and connects nicely) and checked the log, but nothing there...
I also checked the official UPNP XML schema. It does not include the iconList element (or subelements, of course) which means the router is not adhering to the spec.jfrazierjr wrote:And both of those boxes that fail are Fritz(you and CiF) brand machines. And both fail on the iconList section. My guess is that this section of code is wrong and it only manifest with routers that expose that information(where as the two that do NOT fail did NOT return an iconList element in the XML...)
I don't understand why the 1.0.4 JAR would be more lenient than 1.0.5, when the only changes should have been to the XML namespace support, but there could be a subtle interaction with the latest Apache JXPath library (and its dependencies). Hopefully wolph will be able to produce a log from the dev version and we can see the differences.
In the mean time, I'll see if the 1.0.5 version of the library has some way to skip unrecognized elements...
Re: Replacement JAR for b89 for UPNP testing
tried that. first dumped your jar straight in: no log. then i renamed it so 1.0.4 and removed the one from lee and:same error.Azhrei wrote:Thanks, wolph.
And did you put this upnp JAR file into Lee's dev version? If you use the instructions in the OP on Lee's dev version, and put the logging.xml into place, then his dev version should produce the same logging output.wolph42 wrote:I also tried lees dev version again (which still works and connects nicely) and checked the log, but nothing there...
I also checked the official UPNP XML schema. It does not include the iconList element (or subelements, of course) which means the router is not adhering to the spec.jfrazierjr wrote:And both of those boxes that fail are Fritz(you and CiF) brand machines. And both fail on the iconList section. My guess is that this section of code is wrong and it only manifest with routers that expose that information(where as the two that do NOT fail did NOT return an iconList element in the XML...)
I don't understand why the 1.0.4 JAR would be more lenient than 1.0.5, when the only changes should have been to the XML namespace support, but there could be a subtle interaction with the latest Apache JXPath library (and its dependencies). Hopefully wolph will be able to produce a log from the dev version and we can see the differences.
In the mean time, I'll see if the 1.0.5 version of the library has some way to skip unrecognized elements...
GETTING STARTED WITH MAPTOOLS - TUTORIALS, DOCS, VIDEOS, TOOLS, ETC
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS