Newer versions of libmonetra broke compatability with one function. Make workaround that detects version, and works with both.

This commit is contained in:
Brad House 2004-12-08 03:02:34 +00:00
parent c861ce463d
commit ab6faef7ee
2 changed files with 37 additions and 4 deletions

View File

@ -51,6 +51,20 @@ yes
],[ ],[
AC_MSG_ERROR([libmcve 3.2.2 or greater required.]) 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 CPPFLAGS=$saved_CPPFLAGS
PHP_ADD_INCLUDE($MCVE_DIR/include) PHP_ADD_INCLUDE($MCVE_DIR/include)

View File

@ -25,6 +25,14 @@
#include "php.h" #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 #if HAVE_MCVE
/* standard php include(s) */ /* 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 Set certificate key files and certificates if server requires client certificate
verification verification
*/ */
PHP_FUNCTION(m_setssl_files) PHP_FUNCTION(m_setssl_files)
{ {
MCVE_CONN *conn;
int retval; 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) if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
WRONG_PARAM_COUNT; WRONG_PARAM_COUNT;
#endif
convert_to_string_ex(arg1);
convert_to_string_ex(arg2); 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)); retval = MCVE_SetSSL_Files(Z_STRVAL_PP(arg1), Z_STRVAL_PP(arg2));
#endif
RETURN_LONG(retval); RETURN_LONG(retval);
} }
/* }}} */ /* }}} */