ID: 21366 Updated by: [EMAIL PROTECTED] Reported By: piotr at t-p-l dot com -Status: Open +Status: Feedback Bug Type: Sockets related Operating System: Linux PHP Version: 4.3.0 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip can't reproduce this.. Previous Comments: ------------------------------------------------------------------------ [2003-02-13 20:15:47] piotr at t-p-l dot com 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 ------------------------------------------------------------------------ [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] piotr at t-p-l dot com 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] piotr at t-p-l dot com 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
