2011-06-30 16 views
2

DSTCPServerTransport.pas中的「procedure TDSTCPChannel.Open」方法在分配「FChannelInfo」時使用連接用戶的私有IP地址。當我跟蹤HTTP傳輸時,它使用用戶的公共IP。如果DSTCPServerTransport.pas進行了更新,從而在DataSnap XE /重新編譯DataSnap框架中訪問公共IP地址

FChannelInfo := TDBXSocketChannelInfo.Create(Integer(FContext.Connection), FContext.Connection.Socket.Binding.IP); 

改爲

FChannelInfo := TDBXSocketChannelInfo.Create(Integer(FContext.Connection), FContext.Connection.Socket.Binding.PeerIP); 

然後DSTCPServerTransport.pas將匹配HTTP傳輸實現和連接的用戶的公網IP地址將在TDSServer.OnConnect可用事件也通過「DSConnectEventObject.ChannelInfo.Info」用於TCP連接。幾位開發人員在這兩次EBT討論中討論了這個問題:Discussion #1,Discussion #2。質量控制編號爲#91030。

我試圖自己做出更改,但得知我無法重新編譯DataSnap Framework(see here)。

這會在XE2中修復嗎?並且/或者最終用戶能夠在XE2中重新編譯DataSnap Framework?在XE2之前是否會有DataSnap補丁包含此修補程序?

謝謝, 詹姆斯

回答

0

我昨天叫Embarcadero公司關於這一點,他們證實,它已得到修復,並會在下次常規發佈(例如,XE2)可用。