[fpc-pascal] fcl-web: Trequest.RemoteAddr is empty (sometimes)

2021-01-07 Thread Luca Olivetti via fpc-pascal

Hello,

I need to tailor the content based on the remote ip address.
I use the property RemoteAddr of a TRequest, but sometimes it is empty.
I see that it is a header, what I didn't see (yet, I'll trace through 
the code later) is if it is sent from the remote host or is it filled 
based on the ip address of the connection.
If the former, is there a more reliable way to obtain the connected ip 
address?

If the latter is it a bug?

Bye
--
Luca
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] fcl-web: Trequest.RemoteAddr is empty (sometimes)

2021-01-07 Thread Luca Olivetti via fpc-pascal

El 7/1/21 a les 16:15, Luca Olivetti via fpc-pascal ha escrit:

Hello,

I need to tailor the content based on the remote ip address.
I use the property RemoteAddr of a TRequest, but sometimes it is empty.
I see that it is a header, what I didn't see (yet, I'll trace through 
the code later) is if it is sent from the remote host or is it filled 
based on the ip address of the connection.
If the former, is there a more reliable way to obtain the connected ip 
address?

If the latter is it a bug?


I now see that it set in TFPHTTPConnection.ReadRequestHeaders:

   Result.RemoteAddress := SocketAddrToString(FSocket.RemoteAddress)

In turn SocketAddrToString returns an empty string if the address is 
ipv6, but in my case it shouldn't be (the clients, firefox under windows 
10 uses the ipv4 address of the server and most of the time I get the 
correct remote address, even from the same client).
Another option is that  TSocketStream.GetRemoteAddress cannot get the 
address (if fpGetPeerName fails).


Bye
--
Luca

___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal