Bug #8856 Updated: gethostbyname returns hostname instead of adress
| From: | andy@php.net | Date: | Sun, 22 Jul 2001 01:01:16 +0000 |
| Subject: | Bug #8856 Updated: gethostbyname returns hostname instead of adress | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-60518@lists.php.net to get a copy of this message | ||
ID: 8856
Updated by: andy
Reported By: niels@creatype.nl
Old Status: Open
Status: Closed
Bug Type: Network related
Operating System: Linux 2.2.17
PHP Version: 4.0.4pl1
New Comment:
Works fine for me with the latest version (4.0.6)
Previous Comments:
------------------------------------------------------------------------
[2001-03-10 20:21:46] venaas@php.net
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.
------------------------------------------------------------------------
[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
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=8856&edit=1