PHP 4.0 Bug #8283: Impossible to connect to socket made by other unix daemon...
| From: | roman at loveme dot spb dot ru | Date: | Fri, 15 Dec 2000 20:04:48 +0000 |
| Subject: | PHP 4.0 Bug #8283: Impossible to connect to socket made by other unix daemon... | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-41511@lists.php.net to get a copy of this message | ||
From: roman@loveme.spb.ru
Operating system: FreeBSD 4.1-STABLE
PHP version: 4.0.3pl1
PHP Bug Type: Sockets related
Bug description: Impossible to connect to socket made by other unix daemon...
After creating local Unix (AF_UNIX) socket using other program daemon PHP script with function
connect() is not able connect to this socket.
'./configure' '--prefix=/usr/local' '--with-system-regex'
'--with-apache=/usr/ports/www/apache13-php3/work/apache_1.3.12'
'--with-config-file-path=/usr/local/lib' '--disable-debug'
'--enable-track-vars' '--with-gd=/usr/local' '--with-zlib'
'--with-mysql=/usr/local' '--with-pgsql' '--with-ndbm'
'--enable-wddx' '--includedir=/usr/local' '--enable-sockets'
PHP program text:
$sockfd=socket(AF_UNIX, SOCK_STREAM);
connect($sockfd, "/tmp/my_sock.sock");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this cause the error
FreeBSD program:
main() {
struct sockaddr_un serv_addr;
int addrlen, old_umask;
int sockfd, ns;
sockfd=socket(AF_UNIX, SOCK_STREAM, 0);
unlink("/tmp/my_sock.sock");
old_umask=umask(0);
bzero(&serv_addr, sizeof(serv_addr));
serv_addr.sun_family=AF_UNIX;
strcpy(serv_addr.sun_path, "/tmp/my_sock.sock");
addrlen=sizeof(serv_addr.sun_family)+strlen(serv_addr.sun_path)+1;
bind(sockfd, (struct sockaddr *)&serv_addr, addrlen);
listen(sockfd, MAX_USERS);
umask(old_umask);
ns=accept(sockfd, (struct sockaddr *)&clnt_addr, &addrlen));
}
--
Edit Bug report at: http://bugs.php.net/?id=8283&edit=1