On 13/05/20 12:56 am, Marco van de Voort wrote:

Op 2020-05-12 om 12:32 schreef Michael Van Canneyt:

The names I use here are the libc names, which many other languages also use.

Now, StrToHostAddr and StrToHostAddr6 can call the appropriate function, and programs that use those functions won't notice any change. But new code will be able to use the new functions and have an unambiguous answer as to whether the address is valid or not.

The change is quite straightforward to make, and it won't break existing code, so I think it's worthwhile to do.

Any thoughts or opinions on this?

I'm all for it, but please use the following names:

function TryStrToHostAddr(IP: String; var ip4: in_addr): Boolean;
function TryStrToHostAddr6(IP: String; var ip6: in6_addr): Boolean;

Rationale for this request: All conversion calls in sysutils and dateutils use this naming scheme, it's good for consistency.

(and I hate underscores, but that's beside the point ;))

Yes to the principle and yes to the TryStrTo naming. But I would make the IP param CONST ;-)

Good idea, and normally I would, but the current implementation of StrToHostAddr (see below) does Delete on IP as it processes it. As it currently stands this function must accept a non-const.

function StrToHostAddr(IP : AnsiString) : in_addr ;

Var
    Dummy : AnsiString;
    I,j,k     : Longint;
    Temp : in_addr;

begin
  strtohostaddr.s_addr:=0;              //:=NoAddress;
  For I:=1 to 4 do
    begin
      If I<4 Then
        begin
          J:=Pos('.',IP);
          If J=0 then
            exit;
          Dummy:=Copy(IP,1,J-1);
          Delete (IP,1,J);
        end
       else
         Dummy:=IP;
      Val (Dummy,k,J);
      array4int(temp.s_addr)[i]:=k;
      If J<>0 then Exit;
   end;
   strtohostaddr.s_addr:=ntohl(Temp.s_addr);
end;



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

Reply via email to