[fpc-pascal]winsock telnet proxy question #1

ron wilson ron.wilson at coastgames.com
Wed Mar 13 19:15:25 CET 2002


thanks - i just tried that and it works great.  you just have to change one
thing, but i'm not sure why the change works.  i think it has to do with the
h_addr definition as ^pchar, but i'm not sure.  i did this:

   move(server.h_addr^, serv_addr.sin_addr.s_addr, server.length);

also, this gives s_addr in network byte order, so you have to add this line
if you need host byte order:

   serv_addr.sin_addr.s_addr := htonl(serv_addr.sin_addr.s_addr);

here's my function, with old method commented out:

   function pchar_to_ulong(s: pchar): u_long;
   var
   //i: u_short;
     rslt: u_long;
   begin
   //rslt:=0;
   //for i:=0 to min(sizeof(s),4)-1 do
   //  rslt+=u_long(s[i]) shl ((3-i)*8);
     move(s^,rslt,min(sizeof(s),4));
     rslt:=htonl(rslt);
     pchar_to_ulong:=rslt;
   end;

ron wilson.

-----Original Message-----
From: fpc-pascal-admin at deadlock.et.tudelft.nl
[mailto:fpc-pascal-admin at deadlock.et.tudelft.nl]On Behalf Of Marco van
de Voort
Sent: Wednesday, March 13, 2002 12:35 AM
To: fpc-pascal at deadlock.et.tudelft.nl
Subject: Re: [fpc-pascal]winsock telnet proxy question #1


> after that, i had to figure out what the C bcopy() command did and reverse
> engineer it.  i don't think freepascal has one of those.  or maybe it
> does... can anybody tranlsate this line into freepascal for me?  all the
> type-casting got me lost in fp.
>
>   bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr,
> server->h_length);

bcopy is afaik simply move, just with pointers as arguments, since C has
no open arrays as params.

> note: server->h_addr is ^pchar and serv_addr.sin_addr.s_addr is u_long.

Afaik it is simply:

move (server.h_addr,serv_addr.sin_addr.s_addr,server.length);

_______________________________________________
fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal






More information about the fpc-pascal mailing list