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

Reply via email to