pollita Fri Jan 5 21:30:06 2007 UTC Modified files: /php-src/ext/posix config.m4 posix.c Log: Refix posix_ttyname(), test for a working implementation of ttyname_r() -- which BSD doesn't have http://cvs.php.net/viewvc.cgi/php-src/ext/posix/config.m4?r1=1.15&r2=1.16&diff_format=u Index: php-src/ext/posix/config.m4 diff -u php-src/ext/posix/config.m4:1.15 php-src/ext/posix/config.m4:1.16 --- php-src/ext/posix/config.m4:1.15 Thu Dec 7 01:41:29 2006 +++ php-src/ext/posix/config.m4 Fri Jan 5 21:30:06 2007 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.15 2006/12/07 01:41:29 iliaa Exp $ +dnl $Id: config.m4,v 1.16 2007/01/05 21:30:06 pollita Exp $ dnl PHP_ARG_ENABLE(posix,whether to enable POSIX-like functions, @@ -11,5 +11,22 @@ AC_CHECK_HEADERS(sys/mkdev.h) - AC_CHECK_FUNCS(seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod getrlimit getlogin getgroups makedev initgroups getpwuid_r getgrgid_r ttyname_r) + AC_CHECK_FUNCS(seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod getrlimit getlogin getgroups makedev initgroups getpwuid_r getgrgid_r) + + AC_MSG_CHECKING([for working ttyname_r() implementation]) + AC_TRY_RUN([ +#include <unistd.h> + +int main(int argc, char *argv[]) +{ + char buf[64]; + + return ttyname_r(0, buf, 64) ? 1 : 0; +} + ],[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_TTYNAME_R, 1, [Whether you have a working ttyname_r]) + ],[ + AC_MSG_RESULT([no, posix_ttyname() will be thread-unsafe]) + ]) fi http://cvs.php.net/viewvc.cgi/php-src/ext/posix/posix.c?r1=1.86&r2=1.87&diff_format=u Index: php-src/ext/posix/posix.c diff -u php-src/ext/posix/posix.c:1.86 php-src/ext/posix/posix.c:1.87 --- php-src/ext/posix/posix.c:1.86 Fri Jan 5 20:01:44 2007 +++ php-src/ext/posix/posix.c Fri Jan 5 21:30:06 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: posix.c,v 1.86 2007/01/05 20:01:44 pollita Exp $ */ +/* $Id: posix.c,v 1.87 2007/01/05 21:30:06 pollita Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -147,7 +147,7 @@ static PHP_MINFO_FUNCTION(posix) { php_info_print_table_start(); - php_info_print_table_row(2, "Revision", "$Revision: 1.86 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.87 $"); php_info_print_table_end(); } /* }}} */ @@ -575,12 +575,7 @@ fd = Z_LVAL_PP(z_fd); } #if HAVE_TTYNAME_R -#ifdef _SC_TTY_NAME_MAX buflen = sysconf(_SC_TTY_NAME_MAX); -#else - /* Arbitrary buffer size for systems which don't extrospect their tty name lengths, way overkill */ - buflen = 64; -#endif p = emalloc(buflen); if (ttyname_r(fd, p, buflen)) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php