Future of MapTool?

Thoughts, Help, Feature Requests, Bug Reports, Developing code for...

Moderators: dorpond, trevor, Azhrei

Forum rules
PLEASE don't post images of your entire desktop, attach entire campaign files when only a single file is needed, or generally act in some other anti-social behavior. :)

User avatar
JamzTheMan
Great Wyrm
Posts: 1872
Joined: Mon May 10, 2010 12:59 pm
Location: Chicagoland
Contact:

Re: Future of MapTool?

Post by JamzTheMan »

Azhrei wrote:Sorry guys. Long time, no write. Life has been wicked lately (I got stuck in NYC during Sandy and I certainly have sympathy for those who are still stuck there without power or other basic necessities!)

To help prevent people from taking my name in vain too loudly, I've attached the fixed UPNP library source code (two JARs are inside, a "debug" and "nondebug" version).

I'm teaching a class this week and writing new lectures in the hotel each evening as I go along (this group of students is much more advanced than expected!) so no time this week. I'll try to allocate some time on Friday and/or this weekend to look into things and get some code committed. :|
Glad you made it out safe! That was one hell of a storm and there appears to be another one looming. Those poor people :cry:

Lee wrote: Edit # 3: Can anyone test UPnP using what I shared above? Also, as it might be related, can you also post MT debug info? I'm curious if it still detects IGDs but fails to do so when attempting UPnP when starting a server, or is blind altogether.
Ok, latest JAR starts up ok (yea!) but I also got an error starting a server with upnp enabled. LMK if you need any other info or need to add additional debug-logs to the jar and rerun.
MT Debug Info
==== MapTool Information ====
MapTool Version: DEVELOPMENT
MapTool Home...: C:\Users\Jamz\.maptool
Max mem avail..: 227M
Max mem used...: 154M

==== Java Information ====
Java Vendor.: Oracle Corporation
Java Home...: C:\Program Files\Java\jre7
Java Version: 1.7.0_04
............: Java(TM) SE Runtime Environment (build 1.7.0_04-b22)
............: Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)


==== OS Information ====
OS Name........: Windows 7
OS Version.....: 6.1
OS Architecture: amd64
Processor......: Intel64 Family 6 Model 15 Stepping 11, GenuineIntel
PATH...........: null
Number of Procs: 4

==== User Information ====
User Name: Jamz
User Home: C:\Users\Jamz
User Dir.: D:\Google Drive\Custom MapTool\MapTool_Dev

==== Network Interfaces ====
Display Name..: Software Loopback Interface 1
Interface Name: lo
Address...: 127.0.0.1
Address...: 0:0:0:0:0:0:0:1

Display Name..: Atheros L1 Gigabit Ethernet 10/100/1000Base-T Controller
Interface Name: eth3
Address...: 192.168.0.110
Address...: fe80:0:0:0:3cbc:290b:f27a:e74%13

Display Name..: VirtualBox Host-Only Ethernet Adapter
Interface Name: eth5
Address...: 169.254.161.10
Address...: fe80:0:0:0:8c1:279e:51b7:a10a%16

Host Address...: 192.168.0.110
Default Gateway: 192.168.0.1

==== Locale Information ====
Country.: United States
Language: English
Locale..: English (United States)
Variant.:

==== Display Information ====
Number of Displays: 3
Display 1: 1920x1200(32)
Display 2: 1200x1920(32)
Display 3: 1280x1024(32)

==== Internet Gateway Devices ====
Device Name.: Xtreme N Gaming Router
Model Name..: Xtreme N Gaming Router
Manufacturer: D-Link Systems
Model Number: DGL-4500
Model Desc..: Xtreme N Gaming Router
Firmware....: ipOS/7.6 UPnP/1.0 Ubicom/1.0
External IP.: 69.47.159.158
Error messages
upnp-error1.jpg
upnp-error1.jpg (28.3 KiB) Viewed 967 times
upnp-error2.jpg
upnp-error2.jpg (17.08 KiB) Viewed 967 times
Edit: Lee, you may be able to test this if you have a second windows machine by turning on internet sharing as windows supports upnp. Also found the following but never used it. Bottom line, you may be able to emulate upnp at some level. http://miniupnp.free.fr/
-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

tiorthan
Cave Troll
Posts: 84
Joined: Fri Aug 24, 2012 8:56 am
Location: Germany
Contact:

Re: Future of MapTool?

Post by tiorthan »

Here's the patch for comparison. It removes the FTPCommand class and changes FTPClientConn to use sun.net.ftp.FtpClient directly.

The patch only changes behaviour used when updating an ftp based repository.
Attachments
maptool.ftpclient.patch.txt
(10.07 KiB) Downloaded 56 times

Lee
Dragon
Posts: 958
Joined: Wed Oct 19, 2011 2:07 am

Re: Future of MapTool?

Post by Lee »

Yeah, consolidating the 2 is the way to go at this stage of 1.3. It's not as if anyone else will use FTPCommand as intended and extend on it; they can always extend the unified class. On my part, I just ironed out the creases to make it run, using the new convenience methods in place of the ones that stopped working as they are. Yours should go into Testing :)

Edit: Oh, and once you do put it in testing, we should clear the patches we put here to avoid clutter and confusion.
Edit # 2: @Jamz Thanks for the tip, and for the testing. Unfortunately, I'm currently on just this one laptop. At least it's known now that what's committed at the source wasn't the fix for UPnP.
Edit # 3: I took out my patch since it wasn't being reviewed. It was there only for academic interest anyway, and tiorthan's patch works just as well and is leaner.

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Future of MapTool?

Post by Azhrei »

A Google search for "nat-pmp java" brought up this page on SourceForge: http://sourceforge.net/projects/jnat-pmplib/

Since that library appears to be maintained we should look into using it instead of the sbbi library. If anyone wants to tackle an interface layer to allow this code to be used, I'd appreciate it! Note that the IGD library that is currently there is the older technique so I have no problem going with NAT-PMP (although a lib that supported both would be ultra nice!).

Lee
Dragon
Posts: 958
Joined: Wed Oct 19, 2011 2:07 am

Re: Future of MapTool?

Post by Lee »

Since it seems we're open to using other libraries, I came across other UPnP libraries in Cling and weUPnP; both seem to be documented and active. Of the two, Cling sets the bar higher for itself, it seems.

Since we're also open to using other protocols, there's ice4j, IcedJava, and PJNATH; although the last one is C based suggested as JNI for usage.

Currently, I have my hands tied due to router problems. I was told we had an old AT&T router buried somewhere in the mound of junk we call a storehouse. When I feel up to it, I'll dig around in the hopes of finding it. I could write something one of these weekdays for one of these libraries, perhaps Cling as it seems the most elegant of the 2. Testing would have to be the problem of others, understandably. Perhaps, if one writes for NAT-PMP, it would then be trivial to combine the 2.

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Future of MapTool?

Post by Azhrei »

AFAIAC the "UPNP not working" thing is a bug and should be fixed for 1.3. It's important for it to work properly so that users will have a reasonably robust environment while work progresses on 1.4. Not having UPNP would be a real pain. :|

I don't want to go overboard on this, though. If we find something that works, great. I would rather not implement a library of our own if we don't have to! Ideally we'd have an abstract factory class that does the query using all known protocols, then instantiates a protocol-specific factory that can give us an an interface implementation. Something like...

Code: Select all

UPNPFactory[] uf = UPNPFactory.getInstance();  // returns one per router
UPNPInterface ui = uf[0].getInstance();        // pick the "best" router and use it
/* Then invoke methods of 'ui' to do the real port mapping work. */ 
The factory's getInstance() would query the local network and make a list of all available UPNP destinations. It returns a reference to all factories that know how to create protocol interfaces for each type of router. Then we invoke the getInstance() method on those factory objects to actually talk to the router and turn on/off the port mapping.

This gives us flexibility: we can talk to multiple routers using multiple protocols all at once. We don't really need that in 1.3 because we don't have the GUI to support it (allowing users to pick one interface from a list of interfaces, for example) but it's the Right Way(tm) to do it so that's the ideal implementation. ;)

User avatar
PinkRose
Dragon
Posts: 732
Joined: Sat Nov 15, 2008 2:28 pm
Location: The City of Roses, Oregon

Re: Future of MapTool?

Post by PinkRose »

Hello all.
Just a poke to see how a Final Final version was going.

I want to also say that I came here today and posted a very upset post on the Java7 fix thread.
However, after reading this thread I have more hope for MapTool to become finished.

However, there was discussion in this thread about making the homepage more open to new people back in July and nothing has been changed.
Sep 3, 2011
First Ever Commercial Maptool Adventure - The Breaking of Forstor Nagar!
That's the last news entry.
The site looks dead. And with other products coming on strong, Roll20, EpicTable and others, we are losing the community.

I also think this thread should be in the announcements, or rather a new Future of MapTool starting with whatever the plan is at this time.

Those are my thoughts. From someone that had used MapTool from March 2008 until Oct 2012. I would like to come back soon.
I am a special snowflake!

Post Reply

Return to “MapTool”