#30057 [Opn->Fbk]: IPv6 support broken

2004-09-17 Thread wez
 ID:   30057
 Updated by:   [EMAIL PROTECTED]
 Reported By:  neon at neon-line dot net
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: FreeBSD 4.10
 PHP Version:  5.0.1
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip

Please test the next unstable (5.1/HEAD) snapshot to see if things work
out ok there; we can then backport the fix.


Previous Comments:


[2004-09-12 11:33:07] neon at neon-line dot net

Sorry, my typo. sys/socket.h is indeed the correct one.
On FreeBSD it works, but will it break on some other OS(s)?



[2004-09-12 11:27:24] [EMAIL PROTECTED]

 or  ? (I'd expect the latter to be
correct)

It sounds like we need to add that header to our configure check to
make it work (and also make IPV6 depend on its presence)



[2004-09-12 09:10:59] neon at neon-line dot net

wez:
I had to add stdlib.h and sys/sockets.h headers to compile it because
NULL is defined in stdlib.h (weird) and constant AF_INET in
sys/socket.h.
After those modifications output was "OK!" (as expected).



[2004-09-12 02:12:23] [EMAIL PROTECTED]

I recall the bug that prompted the extended check for ai_family and
sa_family (though not the bug# off hand).  It was also in BSD (I want
to say it was also FreeBSD4).

Enabling getaddrinfo when this behavior was present caused intermittent
segfaults in the reporters build, I'll track down that original bug
report, it had some detailed comments.



[2004-09-12 01:29:59] [EMAIL PROTECTED]

Please try manually compiling this (slightly altered code from
configure.in), running it, and pasting the output here in this bug
report; thanks!

1/ Copy the code into v6test.c
2/ cc -o v6test v6test.c
3/ ./v6test

#include 
#include 
int main(void) {
  struct addrinfo *ai, *pai, hints;

  memset(&hints, 0, sizeof(hints));
  hints.ai_flags = AI_NUMERICHOST;

  if (getaddrinfo("127.0.0.1", NULL, &hints, &ai) < 0) {
printf("FAIL-1\n");
exit(1);
  }

  if (ai == NULL) {
printf("FAIL-2\n");
exit(1);
  }

  pai = ai;

  while (pai) {
if (pai->ai_family != AF_INET) {
  /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
  printf("FAIL-3\n");
  exit(1);
}
if (pai->ai_addr->sa_family != AF_INET) {
  /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
  printf("FAIL-4\n");
  exit(1);
}
pai = pai->ai_next;
  }
  freeaddrinfo(ai);
  printf("OK!\n");
  exit(0);
}




The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/30057

-- 
Edit this bug report at http://bugs.php.net/?id=30057&edit=1


#30057 [Opn->Fbk]: IPv6 support broken

2004-09-12 Thread wez
 ID:   30057
 Updated by:   [EMAIL PROTECTED]
 Reported By:  neon at neon-line dot net
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: FreeBSD 4.10
 PHP Version:  5.0.1
 New Comment:

 or  ? (I'd expect the latter to be
correct)

It sounds like we need to add that header to our configure check to
make it work (and also make IPV6 depend on its presence)


Previous Comments:


[2004-09-12 09:10:59] neon at neon-line dot net

wez:
I had to add stdlib.h and sys/sockets.h headers to compile it because
NULL is defined in stdlib.h (weird) and constant AF_INET in
sys/socket.h.
After those modifications output was "OK!" (as expected).



[2004-09-12 02:12:23] [EMAIL PROTECTED]

I recall the bug that prompted the extended check for ai_family and
sa_family (though not the bug# off hand).  It was also in BSD (I want
to say it was also FreeBSD4).

Enabling getaddrinfo when this behavior was present caused intermittent
segfaults in the reporters build, I'll track down that original bug
report, it had some detailed comments.



[2004-09-12 01:29:59] [EMAIL PROTECTED]

Please try manually compiling this (slightly altered code from
configure.in), running it, and pasting the output here in this bug
report; thanks!

1/ Copy the code into v6test.c
2/ cc -o v6test v6test.c
3/ ./v6test

#include 
#include 
int main(void) {
  struct addrinfo *ai, *pai, hints;

  memset(&hints, 0, sizeof(hints));
  hints.ai_flags = AI_NUMERICHOST;

  if (getaddrinfo("127.0.0.1", NULL, &hints, &ai) < 0) {
printf("FAIL-1\n");
exit(1);
  }

  if (ai == NULL) {
printf("FAIL-2\n");
exit(1);
  }

  pai = ai;

  while (pai) {
if (pai->ai_family != AF_INET) {
  /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
  printf("FAIL-3\n");
  exit(1);
}
if (pai->ai_addr->sa_family != AF_INET) {
  /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
  printf("FAIL-4\n");
  exit(1);
}
pai = pai->ai_next;
  }
  freeaddrinfo(ai);
  printf("OK!\n");
  exit(0);
}




[2004-09-11 19:05:49] neon at neon-line dot net

http://www.neon-line.net/dev/config.log
There's not much information about this issue, at least I couldn't
find. And the code in configure.in that checks for getaddrinfo seems
more or less like glue, but there's propably a reason for it to be that
way :)



[2004-09-11 18:45:42] [EMAIL PROTECTED]

Scratch that, it'll definately show undefined, the question is why. 
Can you just post your config.log file somewhere?  Or email it to me?



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/30057

-- 
Edit this bug report at http://bugs.php.net/?id=30057&edit=1


#30057 [Opn->Fbk]: IPv6 support broken

2004-09-11 Thread wez
 ID:   30057
 Updated by:   [EMAIL PROTECTED]
 Reported By:  neon at neon-line dot net
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: FreeBSD 4.10
 PHP Version:  5.0.1
 New Comment:

Please try manually compiling this (slightly altered code from
configure.in), running it, and pasting the output here in this bug
report; thanks!

1/ Copy the code into v6test.c
2/ cc -o v6test v6test.c
3/ ./v6test

#include 
#include 
int main(void) {
  struct addrinfo *ai, *pai, hints;

  memset(&hints, 0, sizeof(hints));
  hints.ai_flags = AI_NUMERICHOST;

  if (getaddrinfo("127.0.0.1", NULL, &hints, &ai) < 0) {
printf("FAIL-1\n");
exit(1);
  }

  if (ai == NULL) {
printf("FAIL-2\n");
exit(1);
  }

  pai = ai;

  while (pai) {
if (pai->ai_family != AF_INET) {
  /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
  printf("FAIL-3\n");
  exit(1);
}
if (pai->ai_addr->sa_family != AF_INET) {
  /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
  printf("FAIL-4\n");
  exit(1);
}
pai = pai->ai_next;
  }
  freeaddrinfo(ai);
  printf("OK!\n");
  exit(0);
}



Previous Comments:


[2004-09-11 19:05:49] neon at neon-line dot net

http://www.neon-line.net/dev/config.log
There's not much information about this issue, at least I couldn't
find. And the code in configure.in that checks for getaddrinfo seems
more or less like glue, but there's propably a reason for it to be that
way :)



[2004-09-11 18:45:42] [EMAIL PROTECTED]

Scratch that, it'll definately show undefined, the question is why. 
Can you just post your config.log file somewhere?  Or email it to me?



[2004-09-11 18:45:29] neon at neon-line dot net

It was:
/* #undef HAVE_GETADDRINFO */

After I added
#define HAVE_GETADDRINFO 1
and removed 
#define HAVE_GETHOSTBYNAME2 1

Everything worked just fine with those modifications, so after all it
is a bug in the configure script.



[2004-09-11 18:35:52] [EMAIL PROTECTED]

grep HAVE_GETADDRINFO main/php_config.h




[2004-09-11 11:50:50] neon at neon-line dot net

Configure command used:
./configure --disable-all  --enable-ipv6 \ --with-apxs2=/path/to/apxs2

grep "IPv6" config.log
configure:16103: checking for IPv6 support
configure:17764: checking whether to enable IPv6 support
phpinfo:
IPv6 Support => enabled

I don't see much more that I could have done in order to enable the
IPv6 support.

Maybe the --disable-all statement causes this problem?



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/30057

-- 
Edit this bug report at http://bugs.php.net/?id=30057&edit=1


#30057 [Opn->Fbk]: IPv6 support broken

2004-09-11 Thread pollita
 ID:   30057
 Updated by:   [EMAIL PROTECTED]
 Reported By:  neon at neon-line dot net
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: FreeBSD 4.10
 PHP Version:  5.0.1
 New Comment:

Scratch that, it'll definately show undefined, the question is why. 
Can you just post your config.log file somewhere?  Or email it to me?


Previous Comments:


[2004-09-11 18:45:29] neon at neon-line dot net

It was:
/* #undef HAVE_GETADDRINFO */

After I added
#define HAVE_GETADDRINFO 1
and removed 
#define HAVE_GETHOSTBYNAME2 1

Everything worked just fine with those modifications, so after all it
is a bug in the configure script.



[2004-09-11 18:35:52] [EMAIL PROTECTED]

grep HAVE_GETADDRINFO main/php_config.h




[2004-09-11 11:50:50] neon at neon-line dot net

Configure command used:
./configure --disable-all  --enable-ipv6 \ --with-apxs2=/path/to/apxs2

grep "IPv6" config.log
configure:16103: checking for IPv6 support
configure:17764: checking whether to enable IPv6 support
phpinfo:
IPv6 Support => enabled

I don't see much more that I could have done in order to enable the
IPv6 support.

Maybe the --disable-all statement causes this problem?



[2004-09-11 11:37:04] [EMAIL PROTECTED]

Check your configure output and config.log for stuff related to IPv6;
it looks like PHP isn't actually using IPv6 at all.
(gethostbyname is IPv4; PHP would use getaddrinfo for IPv6)



[2004-09-11 11:16:52] neon at neon-line dot net

Warning: fsockopen(): unable to connect to tcp://::1:80 (Operation
timed out) in /dev/php5-v6/test.php on line 2
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in
/dev/php5-v6/test.php on line 3
Warning: fsockopen(): unable to connect to tcp://[::1]:80 (Unknown
error) in /dev/php5-v6/test.php on line 3
Warning: stream_socket_client(): php_network_getaddresses:
gethostbyname failed in /dev/php5-v6/test.php on line 4
Warning: stream_socket_client(): unable to connect to tcp://[::1]:80
(Unknown error) in /dev/php5-v6/test.php on line 4

To cut the above in short: no, none of those work.



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/30057

-- 
Edit this bug report at http://bugs.php.net/?id=30057&edit=1


#30057 [Opn->Fbk]: IPv6 support broken

2004-09-11 Thread pollita
 ID:   30057
 Updated by:   [EMAIL PROTECTED]
 Reported By:  neon at neon-line dot net
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: FreeBSD 4.10
 PHP Version:  5.0.1
 New Comment:

grep HAVE_GETADDRINFO main/php_config.h



Previous Comments:


[2004-09-11 11:50:50] neon at neon-line dot net

Configure command used:
./configure --disable-all  --enable-ipv6 \ --with-apxs2=/path/to/apxs2

grep "IPv6" config.log
configure:16103: checking for IPv6 support
configure:17764: checking whether to enable IPv6 support
phpinfo:
IPv6 Support => enabled

I don't see much more that I could have done in order to enable the
IPv6 support.

Maybe the --disable-all statement causes this problem?



[2004-09-11 11:37:04] [EMAIL PROTECTED]

Check your configure output and config.log for stuff related to IPv6;
it looks like PHP isn't actually using IPv6 at all.
(gethostbyname is IPv4; PHP would use getaddrinfo for IPv6)



[2004-09-11 11:16:52] neon at neon-line dot net

Warning: fsockopen(): unable to connect to tcp://::1:80 (Operation
timed out) in /dev/php5-v6/test.php on line 2
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in
/dev/php5-v6/test.php on line 3
Warning: fsockopen(): unable to connect to tcp://[::1]:80 (Unknown
error) in /dev/php5-v6/test.php on line 3
Warning: stream_socket_client(): php_network_getaddresses:
gethostbyname failed in /dev/php5-v6/test.php on line 4
Warning: stream_socket_client(): unable to connect to tcp://[::1]:80
(Unknown error) in /dev/php5-v6/test.php on line 4

To cut the above in short: no, none of those work.



[2004-09-10 23:56:41] [EMAIL PROTECTED]

Do any of these work?

fsockopen('tcp://::1', 80);
fsockopen('tcp://[::1]', 80);
stream_socket_client('tcp://[::1]:80');



[2004-09-10 22:18:48] neon at neon-line dot net

Description:

Unable to connect to IPv6 addresses or hostnames pointing to an IPv6
address, even though IPv6 is properly configured.
PHP has been configured with --enable-ipv6 option and phpinfo shows
that it is indeed enabled.

I checked with telnet utility that these hosts respond and with that
they did.

Reproduce code:
---
fsockopen("[::1]",80);
echo "--\n";
fsockopen("[fe80:1:1::1]",80);
echo "--\n";
fsockopen("fe80:1:1::1",80);
echo "--\n";
fsockopen("ipv6.host.name",80);

Expected result:

--
--
--

Actual result:
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to [::1]:80 (Unknown error)
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to [fe80:1:1::1]:80 (Unknown
error)
--
Warning: fsockopen(): unable to connect to fe80:1:1::1:80 (Operation
timed out)
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to ipv6.host.name:80 (Unknown
error)





-- 
Edit this bug report at http://bugs.php.net/?id=30057&edit=1


#30057 [Opn->Fbk]: IPv6 support broken

2004-09-11 Thread wez
 ID:   30057
 Updated by:   [EMAIL PROTECTED]
 Reported By:  neon at neon-line dot net
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: FreeBSD 4.10
 PHP Version:  5.0.1
 New Comment:

Check your configure output and config.log for stuff related to IPv6;
it looks like PHP isn't actually using IPv6 at all.
(gethostbyname is IPv4; PHP would use getaddrinfo for IPv6)


Previous Comments:


[2004-09-11 11:16:52] neon at neon-line dot net

Warning: fsockopen(): unable to connect to tcp://::1:80 (Operation
timed out) in /dev/php5-v6/test.php on line 2
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in
/dev/php5-v6/test.php on line 3
Warning: fsockopen(): unable to connect to tcp://[::1]:80 (Unknown
error) in /dev/php5-v6/test.php on line 3
Warning: stream_socket_client(): php_network_getaddresses:
gethostbyname failed in /dev/php5-v6/test.php on line 4
Warning: stream_socket_client(): unable to connect to tcp://[::1]:80
(Unknown error) in /dev/php5-v6/test.php on line 4

To cut the above in short: no, none of those work.



[2004-09-10 23:56:41] [EMAIL PROTECTED]

Do any of these work?

fsockopen('tcp://::1', 80);
fsockopen('tcp://[::1]', 80);
stream_socket_client('tcp://[::1]:80');



[2004-09-10 22:18:48] neon at neon-line dot net

Description:

Unable to connect to IPv6 addresses or hostnames pointing to an IPv6
address, even though IPv6 is properly configured.
PHP has been configured with --enable-ipv6 option and phpinfo shows
that it is indeed enabled.

I checked with telnet utility that these hosts respond and with that
they did.

Reproduce code:
---
fsockopen("[::1]",80);
echo "--\n";
fsockopen("[fe80:1:1::1]",80);
echo "--\n";
fsockopen("fe80:1:1::1",80);
echo "--\n";
fsockopen("ipv6.host.name",80);

Expected result:

--
--
--

Actual result:
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to [::1]:80 (Unknown error)
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to [fe80:1:1::1]:80 (Unknown
error)
--
Warning: fsockopen(): unable to connect to fe80:1:1::1:80 (Operation
timed out)
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to ipv6.host.name:80 (Unknown
error)





-- 
Edit this bug report at http://bugs.php.net/?id=30057&edit=1


#30057 [Opn->Fbk]: IPv6 support broken

2004-09-10 Thread pollita
 ID:   30057
 Updated by:   [EMAIL PROTECTED]
 Reported By:  neon at neon-line dot net
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: FreeBSD 4.10
 PHP Version:  5.0.1
 New Comment:

Do any of these work?

fsockopen('tcp://::1', 80);
fsockopen('tcp://[::1]', 80);
stream_socket_client('tcp://[::1]:80');


Previous Comments:


[2004-09-10 22:18:48] neon at neon-line dot net

Description:

Unable to connect to IPv6 addresses or hostnames pointing to an IPv6
address, even though IPv6 is properly configured.
PHP has been configured with --enable-ipv6 option and phpinfo shows
that it is indeed enabled.

I checked with telnet utility that these hosts respond and with that
they did.

Reproduce code:
---
fsockopen("[::1]",80);
echo "--\n";
fsockopen("[fe80:1:1::1]",80);
echo "--\n";
fsockopen("fe80:1:1::1",80);
echo "--\n";
fsockopen("ipv6.host.name",80);

Expected result:

--
--
--

Actual result:
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to [::1]:80 (Unknown error)
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to [fe80:1:1::1]:80 (Unknown
error)
--
Warning: fsockopen(): unable to connect to fe80:1:1::1:80 (Operation
timed out)
--
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed
Warning: fsockopen(): unable to connect to ipv6.host.name:80 (Unknown
error)





-- 
Edit this bug report at http://bugs.php.net/?id=30057&edit=1