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

Метод «procedure 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, который будет включать это исправление?

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


person James L.    schedule 30.06.2011    source источник


Ответы (1)


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

person James L.    schedule 26.07.2011