[mapguide-trac] #1767: Implement RFC 118 - Support IPv6

MapGuide Open Source trac_mapguide at osgeo.org
Thu Aug 4 04:50:47 EDT 2011


#1767: Implement RFC 118 - Support IPv6
----------------------+-----------------------------------------------------
   Reporter:  wuma    |       Owner:  Mars Wu
       Type:  task    |      Status:  new    
   Priority:  high    |   Milestone:         
  Component:  Server  |     Version:         
   Severity:  major   |    Keywords:         
External_id:          |  
----------------------+-----------------------------------------------------

Comment(by wuma):

 Replying to [ticket:1767 wuma]:
 > This ticket is for implementing RFC 118 - Support IPv6
 This change list implements IPv6 support for IM Server.
 1. Enabled IPv6 for ACE
 2. Changed the IP validation logic to consider IPv6.
 3. Changed the IP comparison logic to consider IPv6.
 4. Added a new internal function to determine if a given IP address is in
 v4 format
 4. Made Server listen to different address according to the MachineIp
 parameter in
 serverconfig.ini. If the the MachineIp parameter is empty or IPv4 format,
 Server
 will listen to 0.0.0.0 so that it could listen to all available IPv4
 addresses of the
 server machine. And if the MachineIp parameter is in IPv6 format, Server
 will listen
 to :: so that it could listen to all available IPv6 addresses of the
 server machine
 5. Changed the way how to encode the site server's ip address. Previsously
 the site server
 address was encoded to session id by converting the IPv4 numbers to be hex
 numbers.
 For IPv6, this approach is not applicable because IPv6 format is too
 complicated and has
 non-number separators. The new approach is: encode the ip address to be
 base64 string.
 6. There was logic in Ajax viewer to validate the session id (in php, aspx
 and jsp).
 Updated the regular expression pattern to adapt to the new sessionid
 format.
 7. To make QuickPlot work with IPv6, 2 MgMapBase methods are exposed as
 Web API:
 - void MgMapBase::SetDisplayDpi(int)
 - STRING MgMapBase::GetBackgroundColor()
 Previously QuickPlot uses HTTP API to get the map image. The mapagent URL
 is conposed
 at runtime and has "127.0.0.1" explicitly as the host name. It is to make
 the server
 gernerated URL could work with PHP + Apache when calling the php function
 imagecreatefrompng(url)
 8. Updated QuickPlot to use RenderingService::RenderMap() to generate the
 map image.
 9. Misc:
 - Removed a wrong compiler predirective for ServerAdminService:
 #define _WIN32_WINNT 0x0400
 This predirective will make the compiler always think the OS is very old
 (win9x) and use
 the wrong library to compile soket related code. It will make couple
 project fail to
 compile after ACE_HAS_IPV6 has been enabled for ACE.
 That macro should be maintained by windows SDK by detecting the OS
 version. So removed it

-- 
Ticket URL: <http://trac.osgeo.org/mapguide/ticket/1767#comment:1>
MapGuide Open Source <http://mapguide.osgeo.org/>
MapGuide Open Source Internals


More information about the mapguide-trac mailing list