PHP 4.0 Bug #8856 Updated: gethostbyname returns hostname instead of adress
| From: | venaas@php.net | Date: | Sun, 11 Mar 2001 01:21:47 +0000 |
| Subject: | PHP 4.0 Bug #8856 Updated: gethostbyname returns hostname instead of adress | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-48617@lists.php.net to get a copy of this message | ||
ID: 8856
Updated by: venaas
Reported By: niels@creatype.nl
Status: Open
Bug Type: Network related
Assigned To:
Comments:
For at least some months, gethostbyname() in sockets.c has
been replaced by gethostbyname() in ext/standard/dns.c
which does
memcpy(&in.s_addr, *(hp->h_addr_list), sizeof(in.s_addr));
Could you try the latest CVS? Could you test both
gethostbyname() and gethostbynamel() in PHP? They do it
differently. I think both should work.
Previous Comments:
---------------------------------------------------------------------------
[2001-03-10 17:13:23] niels@creatype.nl
>It sounds like a DNS problem to me.
>It would be wise if you check that out too.
I though about this too at first, but the right information is in both cases stored in the
host_struct->h_addr_list.
But the information is only correct if you memcpy it to a.s_addr, instead of typecasting it.
---------------------------------------------------------------------------
[2001-03-10 16:30:21] derick@php.net
It sounds like a DNS problem to me. It would be wise if you check that out too.
---------------------------------------------------------------------------
[2001-03-10 16:12:27] sniper@php.net
Works for me just fine with latest CVS. Please try the
latest CVS snapshot from http://snaps.php.net/
--Jani
---------------------------------------------------------------------------
[2001-01-23 12:28:11] niels@creatype.nl
The gethostbyname doesn't seem to work on some of the systems I use. The problem only occurs on
some machines, others work fine. The problem only occurs on 4.0x, but not on 3.0x on the same
machine.
All machines use the same build of php4.
For example:
<PHP
echo (gethostbyname ("sql-1.vuurwerk.nl"));
?>
Result:
sql-1.vuurwerk.nl
The bug? also affects functions like mysql_connect.
I am unable to connect to a sql server unless I replace the hostname with an ip adress.
I've traced the problem back to sockets.c, line 817:
a.s_addr = (int) (*(host_struct->h_addr_list[0]));
If I replace the code above with the equivalent code used in php3 the problem is solved:
memcpy (&a.s_addr, *(host_struct->h_addr_list), sizeof (a.s_addr));
If you need more information please let me know.
Niels Leenheer
niels@creatype.nl
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=8856&edit=2