Okay, I've dug into this a little further (as far in as the debugger
seemed to want to let me step in), and have at least got to the point
where the behavior diverges in FreePascal vs. Kylix.

In FreePascal, the actual call to resolve the host name is on line 688
of ssfpc.pas, a call to "ResolveName" in GetAddr, a function in
SetVarSin. After this line is executed, I can see the DNS request go
out to my DNS server, which returns back the actual address of the
host name, which gets populated into  the in_addr record.

In Kylix, I end up in sslinux.pas, in GetAddr in SetVarSin, on line
887, a call to synsock.GetAddrInfo. Unlike the call to ResolveName in
the FreePascal code, stepping over this line in the debugger does NOT
make a request to the DNS server as long as the host in question is in
/etc/hosts. If I take the line out of /etc/hosts, then GetAddrInfo
DOES make a DNS request.

So that seems to be the difference: In the FreePascal code,
ResolveName is being called, which makes a DNS request whether or not
the entry is in /etc/hosts. In Kylix, GetAddrInfo only makes the DNS
request if the entry is not present in /etc/hosts.

-SG

========================
Computer over. Virus = very yes.

Seth Grover
sethdgrover[at]gmail[dot]com

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
synalist-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synalist-public

Reply via email to