From: Brad House Date: Wed, 8 Dec 2004 03:02:34 +0000 (+0000) Subject: Newer versions of libmonetra broke compatability with one function. Make workaround... X-Git-Tag: RELEASE_0_2~552 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab6faef7ee682fdf5060f3ae497bee27f81edb9e;p=php Newer versions of libmonetra broke compatability with one function. Make workaround that detects version, and works with both. --- diff --git a/ext/mcve/config.m4 b/ext/mcve/config.m4 index 7f104f876d..b49dee6ae3 100644 --- a/ext/mcve/config.m4 +++ b/ext/mcve/config.m4 @@ -51,6 +51,20 @@ yes ],[ AC_MSG_ERROR([libmcve 3.2.2 or greater required.]) ]) + + AC_MSG_CHECKING([for correct libmonetra 4.2 or higher]) + AC_EGREP_CPP(yes,[ +#include "$MCVE_DIR/include/mcve.h" +#ifdef MCVE_SetSSL_CAfile +yes +#endif + ],[ + AC_MSG_RESULT([yes]) + ],[ + AC_DEFINE([LIBMONETRA_BELOW_4_2], 1, [Whether or not we're using libmonetra 4.2 or higher ]) + AC_MSG_ERROR([no]) + ]) + CPPFLAGS=$saved_CPPFLAGS PHP_ADD_INCLUDE($MCVE_DIR/include) diff --git a/ext/mcve/mcve.c b/ext/mcve/mcve.c index d7864abf4e..663ba72013 100644 --- a/ext/mcve/mcve.c +++ b/ext/mcve/mcve.c @@ -25,6 +25,14 @@ #include "php.h" +#if PHP_WIN32 +#include "config.w32.h" +#elif defined NETWARE +#include "config.nw.h" +#else +#include "php_config.h" +#endif + #if HAVE_MCVE /* standard php include(s) */ @@ -719,23 +727,34 @@ PHP_FUNCTION(m_setssl) } /* }}} */ -/* {{{ proto int m_setssl_files(string sslkeyfile, string sslcertfile) +/* {{{ proto int m_setssl_files(resource conn, string sslkeyfile, string sslcertfile) Set certificate key files and certificates if server requires client certificate verification */ PHP_FUNCTION(m_setssl_files) { + MCVE_CONN *conn; int retval; - zval **arg1, **arg2; + zval **arg1, **arg2, **arg3; +#ifndef LIBMONETRA_BELOW_4_2 + if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) + WRONG_PARAM_COUNT; + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", le_conn); +#else if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) WRONG_PARAM_COUNT; +#endif - convert_to_string_ex(arg1); convert_to_string_ex(arg2); +#ifndef LIBMONETRA_BELOW_4_2 + convert_to_string_ex(arg3); + retval = MCVE_SetSSL_Files(conn, Z_STRVAL_PP(arg2), Z_STRVAL_PP(arg3)); +#else + convert_to_string_ex(arg1); retval = MCVE_SetSSL_Files(Z_STRVAL_PP(arg1), Z_STRVAL_PP(arg2)); - +#endif RETURN_LONG(retval); } /* }}} */