flagflag  
Page Top

サーバの NAT 越え anchor.png

  • UDP でのアドレス通知は無くなった(プロトコルとしては残っているが,使われなくなった)
  • InternalAddress の使い方が簡単になった.(というか殆ど使用されていない)
     
Page Top

ServerIPAddress anchor.png

  • OpenSim/Framework/RegionInfo.cs
  • OpenSim/Services/Interfaces/IGridService​.cs
    • DB の regions の Token を間借り (InternalIPAddess を入れる)
       
Page Top
IGridService.cs anchor.png
  • OpenSim.exe
    • public GridRegion(Dictionary<string, object> kvp)
      • 他のリージョンの情報を得る
    • public Dictionary<string, object> ToKeyValuePairs()
      • 自分のリージョンの情報を書き込む
  • Robust.exe
    • public GridRegion(Dictionary<string, object> kvp)
      • 他のリージョンの情報を得る
    • public Dictionary<string, object> ToKeyValuePairs()
      • ???
         
Page Top

NetworkUtil.cs anchor.png

  • OpenSim/Framework/NetworkUtil.cs
     
Page Top

sim_ip anchor.png

  • OpenSim/Services/LLLoginService/LLLoginR​esponse.cs
     
Page Top

SimIP anchor.png

  • OpenSim/Region/ClientStack/Linden/UDP/LL​ClientView.cs
    • CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint externalIPEndPoint, string capsURL)
      • OpenSim/Region/CoreModules/Framework/Ent​ityTransfer/EntityTransferModule.cs
      • OpenSim/Region/ClientStack/Linden/Caps/E​ventQueue/EventQueueGetModule.cs
    • SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID, uint flags, string capsURL)
      • OpenSim/Region/CoreModules/Framework/Ent​​ityTransfer/EntityTransferModule.cs
  • OpenSim/Region/ClientStack/Linden/Caps/E​ventQueue/EventQueueHelper.cs
    • CrossRegion() : newRegionExternalEndPoint
    • TeleportFinishEvent() : regionExternalEndPoint
       
Page Top

IP anchor.png

  • OpenSim/Region/CoreModules/Framework/Eve​ntQueue/EventQueueHelper.cs
    • EnableSimulator(ulong handle, IPEndPoint endPoint, UUID avatarID, int regionSizeX, int regionSizeY)
      • OpenSim/Region/CoreModules/Framework/Ent​​ityTransfer/EntityTransferModule.cs
         
Page Top

Caps anchor.png

  • OpenSim/Capabilities/Caps.cs
    • HostName を書き換え可能にする
  • OpenSim/Region/CoreModules/Framework/Cap​​s/CapabilitiesModule.cs
    • 接続してきた Viewer のアドレスを直接知ることができない.
    • aCircuit (AgentCircuitData) の Channel から Region のプライベートアドレス情報を取り出す
  • OpenSim/Region/CoreModules/Framework/Ent​ityTransfer/EntityTransferModule.cs
  • OpenSim/Services/LLLoginService/LLLoginS​ervice.cs
    • aCircuit (AgentCircuitData) の Channel に Region のプライベートアドレス情報を載せる
       
Page Top

Uploader anchor.png

  • OpenSim/Region/ClientStack/Linden/Caps/U​ploadBakedTextureModule.cs
    • 接続してきた Viewer のアドレスを直接知ることができない.
    • aCircuit (AgentCircuitData) の Channel から Region のプライベートアドレス情報を取り出す
       
Page Top

Private IP 情報 anchor.png

  • hash[]
    • OpenSim/Server/Handlers/Hypergrid/Hyperg​ridHandlers.cs
    • OpenSim/Server/Handlers/Hypergrid/UserAg​entServerConnector.cs
    • OpenSim/Services/Connectors/Hypergrid/Ga​tekeeperServiceConnector.cs
    • OpenSim/Services/Connectors/Hypergrid/Us​erAgentServiceConnector.cs
       
Page Top

Teleport anchor.png

  • OpenSim/Region/Framework/Interfaces/IEnt​ityTransferModule.cs
  • OpenSim/Region/CoreModules/Framework/Ent​ityTransfer/EntityTransferModule.cs
  • OpenSim/Region/CoreModules/Framework/Ent​ityTransfer/HGEntityTransferModule.cs
  • OpenSim/Region/Framework/Scenes/Scene.cs​
  • OpenSim/Region/CoreModules/Avatar/Lure/H​GLureModule.cs
     
Page Top
通常のTeleport anchor.png
  • Scene.cs: RequestTeleportLocation()
  • Teleport()
  • TeleportAgentToDifferentRegion()
  • DoTeleportInternal()
     
Page Top
Telepot to Home anchor.png
  • OpenSim/Region/CoreModules/Framework/Ent​ityTransfer/HGEntityTransferModule.cs
  • TeleportHome()
  • DoTeleport()
  • DoTeleportInternal()
     
Page Top

-- OLD -- サーバの NAT 越え -- OLD -- anchor.png

Page Top

ExternalHostName anchor.png

  • ExternalIPAddress を定義して,ExternalHostName と明確に役目を分離
  • ExternalHostName : CAP用 URL生成に使用
  • ExternalIPAddress : UDP通信のためのサーバIP通知に使用.NATの外側のアドレス
  • 関連ファイル
    • OpenSim/Framework/RegionInfo.cs
      • ExternalIPAddress を定義
    • OpenSim/Framework/Communications/Clients​/GridClient.cs
    • OpenSim/Framework/Communications/Tests/L​oginServiceTests.cs
    • OpenSim/Services/Interfaces/IGridService​.cs
    • OpenSim/Data/RegionProfileData.cs
      • serverIP -> serverName
      • serverIPadr を新しく定義
    • OpenSim/Data/RegionProfileServiceProxy.c​s
    • OpenSim/Data/MySQL/MySQLManager.cs
    • OpenSim/Data/MSSQL/MSSQLGridData.cs
    • OpenSim/Data/SQLite/SQLiteManager.cs
    • OpenSim/Grid/GridServer.Modules/GridXmlR​pcModule.cs
    • OpenSim/Grid/GridServer.Modules/GridRest​Module.cs
    • OpenSim/Region/Framework/Scenes/Scene.cs​
    • OpenSim/Region/Framework/Scenes/Tests/Sc​eneTests.cs
    • OpenSim/Tests/Common/Setup/SceneSetupHel​pers.cs
    • OpenSim/Framework/NetworkUtil.cs
      • GetIPformString() を追加
      • GetNATIP() を追加
    • OpenSim/Region/Framework/Scenes/SceneCom​municationService.cs
    • OpenSim/Grid/UserServer.Modules/UserLogi​nService.cs
    • OpenSim/ApplicationPlugins/RemoteControl​ler/RemoteAdminPlugin.cs
    • OpenSim/Client/Linden/LLStandaloneLoginS​ervice.cs
       
Page Top

NATの外側と内側へのUDPアドレスの通知 anchor.png

  • 外側へは ExternalIPAddress を通知
  • 内側へは InternalEndPoint.IPAddress または ローカルIP(自動取得)を通知
  • Opensim/Framework/NetworkUtil.cs
    • GetNATIP() を作成
       
Page Top
sim_ip (login) anchor.png
  • OpenSim/Framework/Communications/Service​s/LoginResponse.cs
  • OpenSim/Client/Linden/LLStandaloneLoginS​ervice.cs
    • SimAddress
    • OpenSim/Grid/UserServer.Modules/UserLogi​nService.cs
      • PrepareLoginToRegion(RegionProfileData regionInfo, UserProfileData user, LoginResponse response, IPEndPoint remoteClient)
    • OpenSim/Client/Linden/LLStandaloneLoginS​ervice.cs
      • PrepareLoginToRegion(RegionInfo regionInfo, UserProfileData user, LoginResponse response, IPEndPoint remoteClient)
Page Top
sim-ip-and-port anchor.png
  • OpenSim/Region/CoreModules/Framework/Eve​ntQueue/EventQueueHelper.cs:
    • EstablishAgentCommunication(UUID agentID, string simIpAndPort, string seedcap)
    • OpenSim/Region/CoreModules/Framework/Eve​ntQueue/EventQueueGetModule.cs
      • EstablishAgentCommunication(UUID avatarID, IPEndPoint endPoint, string capsPath)
      • OpenSim/Region/Framework/Scenes/SceneCom​municationService.cs
        • InformClientOfNeighbourAsync(ScenePresen​ce avatar, AgentCircuitData a, GridRegion reg, IPEndPoint endPoint, bool newAgent)
          • EnableNeighbourChildAgents(ScenePresence​ avatar, List<RegionInfo> lstneighbours)
          • InformNeighborChildAgent(ScenePresence avatar, GridRegion region)
Page Top
SimIP (CrossRegion, TeleportFinish) anchor.png
  • OpenSim/Region/CoreModules/Framework/Eve​ntQueue/EventQueueHelper.cs
    • CrossRegion(ulong handle, Vector3 pos, Vector3 lookAt, IPEndPoint newRegionExternalEndPoint, string capsURL, UUID agentID, UUID sessionID)
    • OpenSim/Region/Framework/Scenes/SceneCom​municationService.cs
      • ScenePresence CrossAgentToNewRegionAsync(ScenePresence​ agent, Vector3 pos, uint neighbourx, uint neighboury, bool isFlying)
    • TeleportFinishEvent(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags, string capsURL, UUID agentID)
    • OpenSim/Region/Framework/Scenes/SceneCom​municationService.cs
      • RequestTeleportToLocation(ScenePresence avatar, ulong regionHandle, Vector3 position, Vector3 lookAt, uint teleportFlags)
Page Top
IP (EnableSimulator) anchor.png
  • OpenSim/Region/CoreModules/Framework/Eve​ntQueue/EventQueueHelper.cs
    • EnableSimulator(ulong handle, IPEndPoint endPoint)
    • OpenSim/Region/Framework/Scenes/SceneCom​municationService.cs
      • InformClientOfNeighbourAsync(ScenePresen​ce avatar, AgentCircuitData a, GridRegion reg, IPEndPoint endPoint, bool newAgent)
        • EnableNeighbourChildAgents(ScenePresence​ avatar, List<RegionInfo> lstneighbours)
        • InformNeighborChildAgent(ScenePresence avatar, GridRegion region)
           
Page Top

注意: NetworkUtil anchor.png

  • static NetworkUtil() で address.IPv4Mask は mono では未実装!!
     

Front page   Freeze Diff Backup Copy Rename Reload   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 3689, today: 1, yesterday: 1
Last-modified: 2015-04-02 (Thu) 00:36:34 (JST) (3314d) by iseki

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthApr 2024Next Month
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Today

Who's Online

92 user(s) are online (33 user(s) are browsing xpwiki)

Members: 0
Guests: 92

more...

Access Counter

Today : 5422542254225422
Yesterday : 2042920429204292042920429
Total : 2338482823384828233848282338482823384828233848282338482823384828
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com