On Thu, 2016-07-28 at 10:14 +0200, Koenraad Lelong wrote:
> When I enter 192.168.185.297 (i.e. not a valid ipv4 address) in 
> IPAddressStr I get
> 192.168.185.41
> not the expected error-message.
> 
> According to the rtl-manual :
> 
> function StrToHostAddr(IP: AnsiString) : in_addr
> Description: StrToHostAddr converts the string representation in IP to a 
> host address and returns the host
> address.
> Errors: On error, the host address is filled with zeroes.
> 
> I would think that converting those zeroes to a host-address would yield 
> 0.0.0.0.
> 
> Am I missing something ?
> Is there a better way, without using some other network-library ?

The in_addr IP address type is a packed record of byte, so if an IP
address part larger than 255 is encountered in a string it will be
truncated when copied to the byte record using StrToHostAddr.  This
probably means you have to use some other means of detecting an invalid
address, or add a check for (tmpAddress <> IPAddressStr) to cater for
your situation.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to