Доступ к общедоступному IP-адресу в DataSnap XE / Перекомпиляция DataSnap Framework - PullRequest
2 голосов
/ 30 июня 2011

Метод «method TDSTCPChannel.Open» в DSTCPServerTransport.pas использует частный IP-адрес подключенного пользователя при назначении «FChannelInfo». Когда я отслеживал транспорт HTTP, он использовал публичный IP-адрес пользователя. Если DSTCPServerTransport.pas был обновлен так, что

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: Обсуждение # 1 , Обсуждение # 2 . QC # для этого - # 91030.

Я пытался внести изменения самостоятельно, но узнал, что не могу перекомпилировать DataSnap Framework ( см. Здесь ).

Будет ли это исправлено в XE2 и / или смогут ли конечные пользователи перекомпилировать DataSnap Framework в XE2? Будет ли патч для DataSnap до XE2, который будет включать это исправление?

Спасибо, Джеймс

1 Ответ

0 голосов
/ 27 июля 2011

Вчера я позвонил в Embarcadero по этому поводу, и они подтвердили, что это исправлено и будет доступно в следующем общем выпуске (например, XE2).

...