From: Michael Wallner Date: Mon, 3 Apr 2006 13:52:37 +0000 (+0000) Subject: - PHP4, configure, ZTS, license fixes X-Git-Tag: RELEASE_0_8_0~32 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-ares;a=commitdiff_plain;h=a91fecd6cd84eb3dfb1937e654e23fa9e8602d59 - PHP4, configure, ZTS, license fixes - prepare release git-svn-id: http://svn.php.net/repository/pecl/ares/trunk@210606 c90b9560-bf6c-de11-be94-00142212c4b1 --- diff --git a/ares.c b/ares.c index 5670397..6f0342b 100644 --- a/ares.c +++ b/ares.c @@ -1,19 +1,13 @@ /* - +----------------------------------------------------------------------+ - | PHP Version 5 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ + +--------------------------------------------------------------------+ + | PECL :: ares | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted provided that the conditions mentioned | + | in the accompanying LICENSE file are met. | + +--------------------------------------------------------------------+ + | Copyright (c) 2006, Michael Wallner | + +--------------------------------------------------------------------+ */ /* $Id$ */ @@ -48,6 +42,12 @@ #ifndef ZEND_ENGINE_2 # define zend_is_callable(a,b,c) 1 +# ifndef ZTS +# undef TSRMLS_SET_CTX +# define TSRMLS_SET_CTX +# undef TSRMLS_FETCH_FROM_CTX +# define TSRMLS_FETCH_FROM_CTX +# endif #endif #define PHP_ARES_LE_NAME "AsyncResolver" @@ -55,8 +55,17 @@ static int le_ares; static int le_ares_query; -#define PHP_ARES_ERROR(err) \ +#ifdef HAVE_OLD_ARES_STRERROR +# define PHP_ARES_ERROR(err) { \ + char *__tmp = NULL; \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ares_strerror(err, &__tmp)); \ + if (__tmp) ares_free_errmem(__tmp); \ +} +#else +# define PHP_ARES_ERROR(err) \ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ares_strerror(err)) +#endif + #define RETURN_ARES_ERROR(err) \ PHP_ARES_ERROR(err); \ RETURN_FALSE @@ -76,7 +85,7 @@ typedef struct _php_ares { ares_channel channel; php_ares_options options; zend_llist queries; - TSRMLS_D; + void ***tsrm_ls; unsigned in_callback:1; unsigned reserved:31; } php_ares; @@ -776,12 +785,24 @@ static PHP_FUNCTION(ares_destroy) static PHP_FUNCTION(ares_strerror) { long err; +#ifdef HAVE_OLD_ARES_STRERROR + char *__tmp = NULL; + const char *__err; +#endif if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &err)) { RETURN_FALSE; } +#ifdef HAVE_OLD_ARES_STRERROR + __err = ares_strerror(err, &__tmp); + RETVAL_STRING(estrdup(__err), 0); + if (__tmp) { + ares_free_errmem(__tmp); + } +#else RETURN_STRING(estrdup(ares_strerror(err)), 0); +#endif } /* }}} */ @@ -1069,7 +1090,14 @@ static PHP_FUNCTION(ares_result) break; default: if (zerror) { +#ifdef HAVE_OLD_ARES_STRERROR + char *__tmp = NULL; + const char *__err = ares_strerror(query->error, &__tmp); + ZVAL_STRING(zerror, estrdup(__err), 0); + if (__tmp) ares_free_errmem(__tmp); +#else ZVAL_STRING(zerror, estrdup(ares_strerror(query->error)), 0); +#endif } RETVAL_FALSE; break; diff --git a/config.m4 b/config.m4 index 2acb051..46d96a3 100644 --- a/config.m4 +++ b/config.m4 @@ -3,8 +3,6 @@ dnl config.m4 for extension ares PHP_ARG_WITH(ares, for asynchronous resolver support, [ --with-ares Include asynchronous resolver support]) -PHP_ARG_WITH(ares-lib, type of ares library (cares), -[ --with-ares-lib MIT/ares or CURL/cares], "cares", "cares") if test "$PHP_ARES" != "no"; then PHP_ARES_DIR= @@ -20,28 +18,34 @@ if test "$PHP_ARES" != "no"; then AC_MSG_ERROR(could not find ares.h) fi - case "$PHP_ARES_LIB" in - MIT* [)] - PHP_ARES_LIB=ares - ;; - ares [)] - ;; - CURL* [)] + PHP_ARES_LIB= + PHP_CHECK_LIBRARY(cares, ares_init, [ PHP_ARES_LIB=cares - ;; - cares [)] - ;; - * [)] - PHP_ARES_LIB=cares - ;; - esac + ], [ + PHP_CHECK_LIBRARY(ares, ares_init, [ + PHP_ARES_LIB=ares + ], [ + PHP_ARES_LIB=unknown + ], [ + -L$PHP_ARES_DIR/$PHP_LIBDIR + ] + ) + ], [ + -L$PHP_ARES_DIR/$PHP_LIBDIR + ] + ) + AC_MSG_CHECKING(for libares/libcares) + AC_MSG_RESULT($PHP_ARES_LIB) - if test $PHP_ARES_LIB = "cares"; then + if test $PHP_ARES_LIB = "unknown"; then + AC_MSG_ERROR(could neither find libares nor libcares) + elif test $PHP_ARES_LIB = "cares"; then AC_DEFINE_UNQUOTED([PHP_ARES_LIBNAME], "c-ares (CURL)", [ ]) AC_DEFINE([PHP_ARES_EXPAND_LEN_TYPE], [long], [ ]) else AC_DEFINE_UNQUOTED([PHP_ARES_LIBNAME], "ares (MIT)", [ ]) AC_DEFINE([PHP_ARES_EXPAND_LEN_TYPE], [int], [ ]) + AC_DEFINE([HAVE_OLD_ARES_STRERROR], [1], [ ]) fi PHP_CHECK_LIBRARY($PHP_ARES_LIB, ares_cancel, @@ -70,8 +74,10 @@ if test "$PHP_ARES" != "no"; then ) AC_CHECK_HEADERS([netdb.h unistd.h arpa/inet.h arpa/nameser.h]) + PHP_ADD_INCLUDE($PHP_ARES_DIR/include) PHP_ADD_LIBRARY_WITH_PATH($PHP_ARES_LIB, $PHP_ARES_DIR/$PHP_LIBDIR, ARES_SHARED_LIBADD) + PHP_SUBST(ARES_SHARED_LIBADD) PHP_NEW_EXTENSION(ares, ares.c, $ext_shared) fi diff --git a/package.xml b/package.xml index 6a076bb..6629871 100644 --- a/package.xml +++ b/package.xml @@ -24,6 +24,9 @@ + + + @@ -34,6 +37,7 @@ + diff --git a/package2.xml b/package2.xml index c0b7486..1af328e 100644 --- a/package2.xml +++ b/package2.xml @@ -1,12 +1,12 @@ - ares @@ -21,8 +21,7 @@ mike@php.net yes - 2006-04-02 - + 2006-00-00 0.5.0 0.5.0 @@ -37,16 +36,17 @@ Initial PECL release ]]> + + + + + + - - - + + + - - - - - @@ -62,5 +62,7 @@ Initial PECL release ares - + + + diff --git a/php_ares.h b/php_ares.h index b7c8228..04d374d 100644 --- a/php_ares.h +++ b/php_ares.h @@ -1,19 +1,13 @@ /* - +----------------------------------------------------------------------+ - | PHP Version 5 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ + +--------------------------------------------------------------------+ + | PECL :: ares | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted provided that the conditions mentioned | + | in the accompanying LICENSE file are met. | + +--------------------------------------------------------------------+ + | Copyright (c) 2006, Michael Wallner | + +--------------------------------------------------------------------+ */ /* $Id$ */