summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mnogosearch/config.m426
-rw-r--r--ext/mnogosearch/php_mnogo.c38
2 files changed, 43 insertions, 21 deletions
diff --git a/ext/mnogosearch/config.m4 b/ext/mnogosearch/config.m4
index 76bc9c86e7..d2e9353fbb 100644
--- a/ext/mnogosearch/config.m4
+++ b/ext/mnogosearch/config.m4
@@ -17,14 +17,36 @@ PHP_ARG_WITH(mnogosearch,for mnoGoSearch support,
MNOGOSEARCH_LIBDIR=$PHP_MNOGOSEARCH/lib
fi
- AC_ADD_INCLUDE($MNOGOSEARCH_INCDIR)
+ AC_MSG_CHECKING(for mnoGoSearch version)
if test -x "$MNOGOSEARCH_BINDIR/udm-config"; then
+ MNOGOSEARCH_VERSION=`$MNOGOSEARCH_BINDIR/udm-config --version`
+ MNOGOSEARCH_VERSION_ID=`$MNOGOSEARCH_BINDIR/udm-config -version-id`
+
+ if test $? -ne 0; then
+ AC_MSG_RESULT(<= 3.1.9)
+ AC_MSG_ERROR(mnoGoSearch 3.1.10 at least required)
+ fi
+
+ if test -l "$MNOGOSEARCH_VERSION_ID" -gt 6; then
+ AC_MSG_RESULT(<= 3.1.9)
+ AC_MSG_ERROR(mnoGoSearch 3.1.10 at least required)
+ fi
+
+ if test "$MNOGOSEARCH_VERSION_ID" -lt 30110; then
+ AC_MSG_RESULT(<= 3.1.9)
+ AC_MSG_ERROR(mnoGoSearch 3.1.10 at least required)
+ fi
+
+ AC_MSG_RESULT($MNOGOSEARCH_VERSION)
+
PHP_EVAL_LIBLINE(`$MNOGOSEARCH_BINDIR/udm-config --libs`, MNOGOSEARCH_SHARED_LIBADD)
else
- AC_ADD_LIBRARY_WITH_PATH(udmsearch, $MNOGOSEARCH_LIBDIR, MNOGOSEARCH_SHARED_LIBADD)
+ AC_MSG_ERROR(udm-config script not found in $MNOGOSEARCH_BINDIR)
fi
+ AC_ADD_INCLUDE($MNOGOSEARCH_INCDIR)
+
AC_DEFINE(HAVE_MNOGOSEARCH,1,[ ])
PHP_SUBST(MNOGOSEARCH_SHARED_LIBADD)
diff --git a/ext/mnogosearch/php_mnogo.c b/ext/mnogosearch/php_mnogo.c
index 7c1246fb51..e8c2d9e305 100644
--- a/ext/mnogosearch/php_mnogo.c
+++ b/ext/mnogosearch/php_mnogo.c
@@ -682,12 +682,12 @@ DLEXPORT PHP_FUNCTION(udm_free_res)
/* }}} */
-/* {{{ proto int udm_errno(int agent)
- mnoGoSearch error number */
-DLEXPORT PHP_FUNCTION(udm_errno)
+/* {{{ proto int udm_free_agent(int agent)
+ Free mnoGoSearch session */
+DLEXPORT PHP_FUNCTION(udm_free_agent)
{
pval ** yyagent;
- UDM_AGENT * Agent;
+ UDM_RESULT * Agent;
switch(ZEND_NUM_ARGS()){
case 1: {
if (zend_get_parameters_ex(1, &yyagent)==FAILURE) {
@@ -699,19 +699,20 @@ DLEXPORT PHP_FUNCTION(udm_errno)
WRONG_PARAM_COUNT;
break;
}
- ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-Agent", le_link);
- RETURN_LONG(UdmDBErrorCode(Agent->db));
+ ZEND_FETCH_RESOURCE(Agent, UDM_RESULT *, yyagent, -1, "mnoGoSearch-agent", le_link);
+ zend_list_delete((*yyagent)->value.lval);
+
+ RETURN_TRUE;
}
/* }}} */
-/* {{{ proto string udm_error(int agent)
- mnoGoSearch error message */
-DLEXPORT PHP_FUNCTION(udm_error)
+/* {{{ proto int udm_errno(int agent)
+ Get mnoGoSearch error number */
+DLEXPORT PHP_FUNCTION(udm_errno)
{
pval ** yyagent;
UDM_AGENT * Agent;
-
switch(ZEND_NUM_ARGS()){
case 1: {
if (zend_get_parameters_ex(1, &yyagent)==FAILURE) {
@@ -724,17 +725,18 @@ DLEXPORT PHP_FUNCTION(udm_error)
break;
}
ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-Agent", le_link);
- RETURN_STRING(UdmDBErrorMsg(Agent->db),1);
+ RETURN_LONG(UdmDBErrorCode(Agent->db));
}
/* }}} */
-/* {{{ proto int udm_free_agent(int agent)
- Free mnoGoSearch session */
-DLEXPORT PHP_FUNCTION(udm_free_agent)
+/* {{{ proto string udm_error(int agent)
+ Get mnoGoSearch error message */
+DLEXPORT PHP_FUNCTION(udm_error)
{
pval ** yyagent;
- UDM_RESULT * Agent;
+ UDM_AGENT * Agent;
+
switch(ZEND_NUM_ARGS()){
case 1: {
if (zend_get_parameters_ex(1, &yyagent)==FAILURE) {
@@ -746,10 +748,8 @@ DLEXPORT PHP_FUNCTION(udm_free_agent)
WRONG_PARAM_COUNT;
break;
}
- ZEND_FETCH_RESOURCE(Agent, UDM_RESULT *, yyagent, -1, "mnoGoSearch-agent", le_link);
- zend_list_delete((*yyagent)->value.lval);
-
- RETURN_TRUE;
+ ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-Agent", le_link);
+ RETURN_STRING(UdmDBErrorMsg(Agent->db),1);
}
/* }}} */