ID: 21366
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Feedback
+Status: Open
Bug Type: Sockets related
Operating System: Linux
PHP Version: 4.3.0
New Comment:
Here it goes ..
<?php
$sock = socket_create(AF_UNIX, SOCK_STREAM, 0);
socket_bind($sock, "/tmp/mysock");
socket_listen($sock);
$asock = socket_accept($sock);
socket_getpeername($asock, $address, $port);
echo "Connection from Address: $address Port: $port\n";
?>
the result (after connecting to the socket .. I used the utility "sock"
to quickly connect to the socket) was the following:
Connection from Address: ��0
Port:
aka .. gibberish ..
here is the result of php -v for your reference:
PHP 4.3.0 (cli) (built: Jan 13 2003 01:39:49)
Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies
Previous Comments:
------------------------------------------------------------------------
[2003-02-13 19:42:42] [EMAIL PROTECTED]
Could your please provide a short but _complete_, self-contained
script? (yes, we're lazy :)
------------------------------------------------------------------------
[2003-01-02 19:48:49] [EMAIL PROTECTED]
just to remove the confusion .. that is a cleaned up sniped from a
generic socket class I'm working on thats why the refernces to the
socket's Domain (as oposed to being hardcoded)
the socket ($sock) was created with its domain set to the value of
$Domain
------------------------------------------------------------------------
[2003-01-02 19:23:01] [EMAIL PROTECTED]
sample code: (not complete .. just gives the idea)
///////////////
$Domain = // either AF_UNIX or AF_INET
$result = socket_accept($sock);
$address = "<undefined>";
$port = "<undefined>";
if ($Domain == AF_UNIX) {
socket_getpeername($result,$address,$port);
echo "Accepted Connection from: $address\n";
} else { // its AF_INET
socket_getpeername($result,$address,$port);
echo "Accepted Connection from: $address:$port\n";
}
///////////////
when the socket is a AF_INET socket the result if properly filled in.
sample output:
Accepted Connection from: 123.123.123.123:1234
but when the socket is a unix socket .. the result is somehow wrong ..
sample:
Accepted Connection from: $0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=21366&edit=1