New release of Cobalt

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

New release of Cobalt

John Dougan
Mark McCahill and I are pleased to announce the 2008-06-08 release of Cobalt. It can be downloaded from http://croquet-src-01.oit.duke.edu/cobalt-base-current-build-08062008.zip

Changes:
  • We have now punched through the NAT firewall!  The dispatcher and its infrastructure has been extended to have an understanding of NAT traversal and port forwarding.  The current implementation has some documentation at http://groups.google.com/group/cobaltcroquet/web/nat-traversal and currently has configuration options for no port forwarding, UPnP IGD based port forwarding, and statically configured forwarding. It still desperately need some UI and a global registry.
  • Mantis issue 26: We have an OpenAL null device class that will be used if the OpenAL libraries are not installed or if they have a startup problem. (Thanks to Mike Klein for this code)
  • Mantis issue 42:  Hitting the Esc key while the mouse is over the menubar no longer causes it to disappear.
  • Mantis issue 47: The suggested patch to make embedded apps work was integrated.
  • Mantis issue 48: MNU no longer thrown when closing the painter
  • The harness classes and their support classes have been partially refactored, and will continue to be refactored.
  • A race on quitting that was either added or uncovered was removed by carefully timing the tweak shutdown relative to the morph delete (Thanks Mark for figuring this out!)
  • Some packaging clean ups
  • ASE import has minor fixes to the some of the texture name handling code and more logging to aid in future fixes.
  • The code to import a new mesh collection for the avatar (switch avatar) has been updated to handle ASEs as well as the obsolete MDL format.
I just realized that there is one small glitch in the release. I added a separate project for my branch, and have copied all the package versions back into the main project branch. However, some of the packages are only associated with my branch (RefactoringCobalt001) and not the main branches (Cobalt and Contributions). Just adding the correct repository project to the packages in the monticello browser, as necessary, will be fine if you should need to do package operations.

Cheers,
 -- John

-- 
John Dougan
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: New release of Cobalt

Andreas.Raab
Nice job. How does one test whether the NAT traversal works as advertised?

Cheers,
   - Andreas

John Dougan wrote:

> Mark McCahill and I are pleased to announce the 2008-06-08 release of
> Cobalt. It can be downloaded from
> http://croquet-src-01.oit.duke.edu/cobalt-base-current-build-08062008.zip
>
> Changes:
>
>     * We have now punched through the NAT firewall!  The dispatcher and
>       its infrastructure has been extended to have an understanding of
>       NAT traversal and port forwarding.  The current implementation has
>       some documentation at
>       http://groups.google.com/group/cobaltcroquet/web/nat-traversal and
>       currently has configuration options for no port forwarding, UPnP
>       IGD based port forwarding, and statically configured forwarding.
>       It still desperately need some UI and a global registry.
>     * Mantis issue 26: We have an OpenAL null device class that will be
>       used if the OpenAL libraries are not installed or if they have a
>       startup problem. (Thanks to Mike Klein for this code)
>     * Mantis issue 42:  Hitting the Esc key while the mouse is over the
>       menubar no longer causes it to disappear.
>     * Mantis issue 47: The suggested patch to make embedded apps work
>       was integrated.
>     * Mantis issue 48: MNU no longer thrown when closing the painter
>     * The harness classes and their support classes have been partially
>       refactored, and will continue to be refactored.
>     * A race on quitting that was either added or uncovered was removed
>       by carefully timing the tweak shutdown relative to the morph
>       delete (Thanks Mark for figuring this out!)
>     * Some packaging clean ups
>     * ASE import has minor fixes to the some of the texture name
>       handling code and more logging to aid in future fixes.
>     * The code to import a new mesh collection for the avatar (switch
>       avatar) has been updated to handle ASEs as well as the obsolete
>       MDL format.
>
> I just realized that there is one small glitch in the release. I added a
> separate project for my branch, and have copied all the package versions
> back into the main project branch. However, some of the packages are
> only associated with my branch (RefactoringCobalt001) and not the main
> branches (Cobalt and Contributions). Just adding the correct repository
> project to the packages in the monticello browser, as necessary, will be
> fine if you should need to do package operations.
>
> Cheers,
>  -- John
>
> --
> John Dougan
> [hidden email]
>
Reply | Threaded
Open this post in threaded view
|

Re: New release of Cobalt

John Dougan
I've just been informed that the file has been renamed to
http://croquet-src-01.oit.duke.edu/cobalt-base-current-build-20080608.zip
The stable page to get cobalt downloads is at:
http://croquet-src-01.oit.duke.edu/cobalt.html

Andreas Raab wrote:
> Nice job. How does one test whether the NAT traversal works as
> advertised?
Like I said, it really needs some UI.  In the interim however, there is
software available that can help you manage your UPnP port forwarding
(e.g. http://codelaide.com/blog/products/lighthouse ) and running:

SsdpListener wanIpConnectionServices anyOne getPortMappings

with a running listener (started by the CobaltMaster or start with
SsdpListener restart) should return an ordered collection of ordered
collections. Each sub collection is a port mapping entry for the UPnP
IGD in the order specified in the docs.  It works on my routers at home
(linksys wrt54g and gs with the g using custom firmware; and a cheap
router I use as a spare) and Mark M. was successful in integration
testing with his netgear.  I expect that we'll have some odd problems
with some hardware, we'll hammer them out as we get to them.

The current policies for UPnP port forwarding try to make the external
port the same as the internal port as some routers only support that
configuration.  So if you take the postcard xml and replace the IP
address with the external address, it should be useable.  The external
address can be found in the running CobaltDispatcher in the instance var
externalIpAddress, assuming the forwarding setup was successful.
Otherwise it should be nil.

Cheers,
 -- John

> Cheers,
>   - Andreas
>
> John Dougan wrote:
>> Mark McCahill and I are pleased to announce the 2008-06-08 release of
>> Cobalt. It can be downloaded from
>> http://croquet-src-01.oit.duke.edu/cobalt-base-current-build-08062008.zip 
>>
>>
>> Changes:
>>
>>     * We have now punched through the NAT firewall!  The dispatcher and
>>       its infrastructure has been extended to have an understanding of
>>       NAT traversal and port forwarding.  The current implementation has
>>       some documentation at
>>       http://groups.google.com/group/cobaltcroquet/web/nat-traversal and
>>       currently has configuration options for no port forwarding, UPnP
>>       IGD based port forwarding, and statically configured forwarding.
>>       It still desperately need some UI and a global registry.
>>     * Mantis issue 26: We have an OpenAL null device class that will be
>>       used if the OpenAL libraries are not installed or if they have a
>>       startup problem. (Thanks to Mike Klein for this code)
>>     * Mantis issue 42:  Hitting the Esc key while the mouse is over the
>>       menubar no longer causes it to disappear.
>>     * Mantis issue 47: The suggested patch to make embedded apps work
>>       was integrated.
>>     * Mantis issue 48: MNU no longer thrown when closing the painter
>>     * The harness classes and their support classes have been partially
>>       refactored, and will continue to be refactored.
>>     * A race on quitting that was either added or uncovered was removed
>>       by carefully timing the tweak shutdown relative to the morph
>>       delete (Thanks Mark for figuring this out!)
>>     * Some packaging clean ups
>>     * ASE import has minor fixes to the some of the texture name
>>       handling code and more logging to aid in future fixes.
>>     * The code to import a new mesh collection for the avatar (switch
>>       avatar) has been updated to handle ASEs as well as the obsolete
>>       MDL format.
>>
>> I just realized that there is one small glitch in the release. I
>> added a separate project for my branch, and have copied all the
>> package versions back into the main project branch. However, some of
>> the packages are only associated with my branch
>> (RefactoringCobalt001) and not the main branches (Cobalt and
>> Contributions). Just adding the correct repository project to the
>> packages in the monticello browser, as necessary, will be fine if you
>> should need to do package operations.
>>
>> Cheers,
>>  -- John
>>
>> --
>> John Dougan
>> [hidden email]
>>
>

--
John Dougan
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: New release of Cobalt

Andreas.Raab
John Dougan wrote:
> Andreas Raab wrote:
>> Nice job. How does one test whether the NAT traversal works as
>> advertised?
> Like I said, it really needs some UI.  In the interim however, there is
> software available that can help you manage your UPnP port forwarding
> (e.g. http://codelaide.com/blog/products/lighthouse ) and running:
>
> SsdpListener wanIpConnectionServices anyOne getPortMappings

It took me a while to find this but do note that the shipping image has
a default SsdpListener running which -due to its populated cache- leads
to *extremely* confusing results. Basically the above hangs in a request
which (on my box) is mapped to the (inactive) vmware interface. The
cache should probably be cleared on system startup to avoid this kind of
problem.

> with a running listener (started by the CobaltMaster or start with
> SsdpListener restart) should return an ordered collection of ordered
> collections. Each sub collection is a port mapping entry for the UPnP
> IGD in the order specified in the docs.  It works on my routers at home
> (linksys wrt54g and gs with the g using custom firmware; and a cheap
> router I use as a spare) and Mark M. was successful in integration
> testing with his netgear.  I expect that we'll have some odd problems
> with some hardware, we'll hammer them out as we get to them.

Like time capsule (my wireless home station). From what Google tells me
it doesn't support UPnP. Bummer.

Cheers,
   - Andreas
Reply | Threaded
Open this post in threaded view
|

Re: New release of Cobalt

John Dougan
Andreas Raab wrote:
>
> It took me a while to find this but do note that the shipping image
> has a default SsdpListener running which -due to its populated cache-
> leads to *extremely* confusing results. Basically the above hangs in a
> request which (on my box) is mapped to the (inactive) vmware
> interface. The cache should probably be cleared on system startup to
> avoid this kind of problem.
Whoops, thanks for the catch.  Something to add to the release task list.
> Like time capsule (my wireless home station). From what Google tells
> me it doesn't support UPnP. Bummer.
The Time Capsule does support NAT-PMP and static routing though. NAT-PMP
is on our wishlist, unfortunately not enough routers in the wild support
it for use to make it high priority.  If someone could point me at code
to drive the DNS-SD and NAT-PMP protocols from Croquet, it would be a
big help.

As a stopgap until we have resolved more infrastructure issues, there is
a class var RouterPrefs in CobaltHarness whose contents are used to
configure the dispatcher.  Currently it is initialized in
CobaltHarness>>initialize to use a UPnP configuration.  If you want to
try configuring static routes, set something reasonable up on the NAT
router, then on CobaltHarness:

RouterPrefs := (TManualRouterConfig new)
            internalPort: 12000 ;
            externalPort: 12001 ;
            externalIp: '123.45.67.89' ;
            yourself

(with the port numbers and addresses configured to whatever it was you
actually set) then start up Cobalt. if you have a Mac, you may fine the
free utility Port Map ( http://www.codingmonkeys.de/portmap/ ) useful
for setting up the router.

Cheers,
  --John

--
John Dougan
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: New release of Cobalt

Andreas.Raab
John Dougan wrote:
> The Time Capsule does support NAT-PMP and static routing though. NAT-PMP
> is on our wishlist, unfortunately not enough routers in the wild support
> it for use to make it high priority.  If someone could point me at code
> to drive the DNS-SD and NAT-PMP protocols from Croquet, it would be a
> big help.

One thing that would be helpful for the systems that don't support UPnP
is faster failure. The way things are now requests fail at earliest
after 12 seconds. This is too long for an operation without displaying
some indication that it's going to take a while (i.e., like a progress bar).

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: New release of Cobalt

John Dougan


Andreas Raab wrote:

> John Dougan wrote:
>> The Time Capsule does support NAT-PMP and static routing though.
>> NAT-PMP is on our wishlist, unfortunately not enough routers in the
>> wild support it for use to make it high priority.  If someone could
>> point me at code to drive the DNS-SD and NAT-PMP protocols from
>> Croquet, it would be a big help.
>
> One thing that would be helpful for the systems that don't support
> UPnP is faster failure. The way things are now requests fail at
> earliest after 12 seconds. This is too long for an operation without
> displaying some indication that it's going to take a while (i.e., like
> a progress bar).
>
Unfortunately one of the many lame things about UPnP is SSDP, which when
used according to directions can take a long time to time out.  I'm
considering cutting the delay down to 3 sec. per query attempt and only
2 attempts, which should help some. As we redo the support code in
Cobalt, we'll get to better user UI cues.

Cheers,
  --John

--
John Dougan
[hidden email]