]> granicus.if.org Git - php/commitdiff
sync to libmcve-3.0
authorBrad House <bradmssw@php.net>
Tue, 6 Aug 2002 16:36:05 +0000 (16:36 +0000)
committerBrad House <bradmssw@php.net>
Tue, 6 Aug 2002 16:36:05 +0000 (16:36 +0000)
ext/mcve/mcve.c
ext/mcve/php_mcve.h

index 420c7232281963c80e08aed2fbdf9f5754c26cec..0c243a48a03801b062d9aaeba1d398ab36f8908e 100644 (file)
@@ -33,7 +33,7 @@
 static int le_conn;    /* connection resource */
 static int le_user;  /* store add/edit/get user information */
 
-static int mcve_init;  /* For Safe Memory Dealocation */
+static int mcve_init;  /* For Safe Memory Deallocation */
 /* }}} */
 
 /* {{{ extension definition structures */
@@ -48,7 +48,17 @@ function_entry php_mcve_functions[] = {
        PHP_FE(mcve_setip,                      NULL)
        PHP_FE(mcve_setssl,                     NULL)
        PHP_FE(mcve_settimeout,                 NULL)
+       PHP_FE(mcve_verifyconnection,           NULL)
+       PHP_FE(mcve_verifysslcert,              NULL)
+       PHP_FE(mcve_maxconntimeout,             NULL)
+       PHP_FE(mcve_connectionerror,            NULL)
+       PHP_FE(mcve_deletetrans,                NULL)
        PHP_FE(mcve_connect,                    NULL)
+       PHP_FE(mcve_transnew,                   NULL)
+       PHP_FE(mcve_transparam,                 NULL)
+       PHP_FE(mcve_transsend,                  NULL)
+       PHP_FE(mcve_ping,                       NULL)
+       PHP_FE(mcve_responseparam,              NULL)
        PHP_FE(mcve_returnstatus,               NULL)
        PHP_FE(mcve_returncode,                 NULL)
        PHP_FE(mcve_transactionssent,           NULL)
@@ -144,8 +154,95 @@ PHP_MINIT_FUNCTION(mcve)
        le_conn = zend_register_list_destructors_ex(_free_mcve_conn, NULL,
            "mcve connection", module_number);
 
+       /* Key definitions for Transaction Parameters */
+       REGISTER_LONG_CONSTANT("MC_TRANTYPE", MC_TRANTYPE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USERNAME", MC_USERNAME, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_PASSWORD", MC_PASSWORD, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ACCOUNT", MC_ACCOUNT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRACKDATA", MC_TRACKDATA, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_EXPDATE", MC_EXPDATE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_STREET", MC_STREET, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ZIP", MC_ZIP, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_CV", MC_CV, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_COMMENTS", MC_COMMENTS, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_CLERKID", MC_CLERKID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_STATIONID", MC_STATIONID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_APPRCODE", MC_APPRCODE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_AMOUNT", MC_AMOUNT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_PTRANNUM", MC_PTRANNUM, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TTID", MC_TTID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER", MC_USER, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_PWD", MC_PWD, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ACCT", MC_ACCT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_BDATE", MC_BDATE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_EDATE", MC_EDATE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_BATCH", MC_BATCH, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_FILE", MC_FILE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN", MC_ADMIN, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_AUDITTYPE", MC_AUDITTYPE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_CUSTOM", MC_CUSTOM, MCVE_CONST);
+
+       /* Args for adding a user */
+       REGISTER_LONG_CONSTANT("MC_USER_PROC", MC_USER_PROC, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_USER", MC_USER_USER, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_PWD", MC_USER_PWD, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_INDCODE", MC_USER_INDCODE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_MERCHID", MC_USER_MERCHID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_BANKID", MC_USER_BANKID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_TERMID", MC_USER_TERMID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_CLIENTNUM", MC_USER_CLIENTNUM, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_STOREID", MC_USER_STOREID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_AGENTID", MC_USER_AGENTID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_CHAINID", MC_USER_CHAINID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_ZIPCODE", MC_USER_ZIPCODE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_TIMEZONE", MC_USER_TIMEZONE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_MERCHCAT", MC_USER_MERCHCAT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_MERNAME", MC_USER_MERNAME, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_MERCHLOC", MC_USER_MERCHLOC, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_STATECODE", MC_USER_STATECODE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_USER_PHONE", MC_USER_PHONE, MCVE_CONST);
+
+       /* Value definitions for Transaction Types */
+       REGISTER_LONG_CONSTANT("MC_TRAN_SALE", MC_TRAN_SALE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_PREAUTH", MC_TRAN_PREAUTH, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_VOID", MC_TRAN_VOID, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_PREAUTHCOMPLETE", MC_TRAN_PREAUTHCOMPLETE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_FORCE", MC_TRAN_FORCE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_OVERRIDE", MC_TRAN_OVERRIDE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_RETURN", MC_TRAN_RETURN, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_SETTLE", MC_TRAN_SETTLE, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_ADMIN", MC_TRAN_ADMIN, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_PING", MC_TRAN_PING, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_CHKPWD", MC_TRAN_CHKPWD, MCVE_CONST);
+
+       /* Engine Admin Transaction Types */
+       REGISTER_LONG_CONSTANT("MC_TRAN_CHNGPWD", MC_TRAN_CHKPWD, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_LISTSTATS", MC_TRAN_LISTSTATS, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_LISTUSERS", MC_TRAN_LISTUSERS, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_GETUSERINFO", MC_TRAN_GETUSERINFO, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_ADDUSER", MC_TRAN_ADDUSER, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_EDITUSER", MC_TRAN_EDITUSER, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_DELUSER", MC_TRAN_DELUSER, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_ENABLEUSER", MC_TRAN_ENABLEUSER, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_DISABLEUSER", MC_TRAN_DISABLEUSER, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_IMPORT", MC_TRAN_IMPORT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_TRAN_EXPORT", MC_TRAN_EXPORT, MCVE_CONST);
+
+       /* Value definitions for Admin Types */
+       REGISTER_LONG_CONSTANT("MC_ADMIN_GUT", MC_ADMIN_GUT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_GL", MC_ADMIN_GL, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_GFT", MC_ADMIN_GFT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_BT", MC_ADMIN_BT, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_UB", MC_ADMIN_UB, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_QC", MC_ADMIN_QC, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_RS", MC_ADMIN_RS, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_CTH", MC_ADMIN_CTH, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_CFH", MC_ADMIN_CFH, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MC_ADMIN_FORCESETTLE", MC_ADMIN_FORCESETTLE, MCVE_CONST);
+
        /* set up the mcve defines */
        REGISTER_LONG_CONSTANT("MCVE_UNUSED", MCVE_UNUSED, MCVE_CONST);
+       REGISTER_LONG_CONSTANT("MCVE_NEW", MCVE_NEW, MCVE_CONST);
        REGISTER_LONG_CONSTANT("MCVE_PENDING", MCVE_PENDING, MCVE_CONST);
        REGISTER_LONG_CONSTANT("MCVE_DONE", MCVE_DONE, MCVE_CONST);
 
@@ -202,12 +299,6 @@ PHP_MINFO_FUNCTION(mcve)
 {
        php_info_print_table_start();
        php_info_print_table_row(2, "mcve support", "enabled");
-       php_info_print_table_row(2, "mcve ssl support",
-#ifdef ENABLE_SSL
-       "enabled");
-#else
-       "disabled");
-#endif
        php_info_print_table_row(2, "version", PHP_MCVE_VERSION);
        php_info_print_table_end();
 }
@@ -261,7 +352,7 @@ PHP_FUNCTION(mcve_deleteresponse)
        if (ZEND_NUM_ARGS() != 2 ||
            zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
                WRONG_PARAM_COUNT;
-       
+
        ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
                                                le_conn);
 
@@ -273,6 +364,28 @@ PHP_FUNCTION(mcve_deleteresponse)
 }
 /* }}} */
 
+/* {{{ proto bool mcve_deletetrans(resource conn, int identifier)
+   Delete specified transaction from MCVE_CONN structure */
+PHP_FUNCTION(mcve_deletetrans)
+{
+       MCVE_CONN *conn;
+       zval **arg1, **arg2;
+
+       if (ZEND_NUM_ARGS() != 2 ||
+           zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
+                                               le_conn);
+
+       convert_to_long_ex(arg2);
+
+       MCVE_DeleteTrans(conn, Z_LVAL_PP(arg2));
+
+       RETURN_TRUE;
+}
+/* }}} */
+
 /* {{{ proto void mcve_destroyconn(resource conn)
    Destroy the connection and MCVE_CONN structure */
 PHP_FUNCTION(mcve_destroyconn)
@@ -343,7 +456,6 @@ PHP_FUNCTION(mcve_setip)
    Set the connection method to SSL */
 PHP_FUNCTION(mcve_setssl)
 {
-#ifdef ENABLE_SSL
        MCVE_CONN *conn;
        int retval;
        zval **arg1, **arg2, **arg3;
@@ -361,9 +473,6 @@ PHP_FUNCTION(mcve_setssl)
        retval = MCVE_SetSSL(conn, Z_STRVAL_PP(arg2), Z_LVAL_PP(arg3));
 
        RETURN_LONG(retval);
-#else
-       RETURN_LONG(MCVE_FAIL);
-#endif
 }
 /* }}} */
 
@@ -391,6 +500,99 @@ PHP_FUNCTION(mcve_settimeout)
 }
 /* }}} */
 
+/* {{{ proto int mcve_setblocking(resource conn, int tf)
+    Set blocking/non-blocking mode for connection
+*/
+PHP_FUNCTION(mcve_setblocking)
+{
+       MCVE_CONN *conn;
+       int retval;
+       zval **arg1, **arg2;
+
+       if (ZEND_NUM_ARGS() != 2 ||
+           zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
+           le_conn);
+
+       convert_to_long_ex(arg2);
+
+       retval = MCVE_SetBlocking(conn, Z_LVAL_PP(arg2));
+
+       RETURN_LONG(retval);
+}
+/* }}} */
+
+/* {{{ proto bool mcve_verifyconnection(resource conn, int tf)
+    Set whether or not to PING upon connect to verify connection
+*/
+PHP_FUNCTION(mcve_verifyconnection)
+{
+       MCVE_CONN *conn;
+       zval **arg1, **arg2;
+
+       if (ZEND_NUM_ARGS() != 2 ||
+           zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
+           le_conn);
+
+       convert_to_long_ex(arg2);
+
+       MCVE_VerifyConnection(conn, Z_LVAL_PP(arg2));
+
+       RETURN_TRUE;
+}
+/* }}} */
+
+/* {{{ proto bool mcve_verifysslcert(resource conn, int tf)
+    Set whether or not to verify the server ssl certificate
+*/
+PHP_FUNCTION(mcve_verifysslcert)
+{
+       MCVE_CONN *conn;
+       zval **arg1, **arg2;
+
+       if (ZEND_NUM_ARGS() != 2 ||
+           zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
+           le_conn);
+
+       convert_to_long_ex(arg2);
+
+       MCVE_VerifySSLCert(conn, Z_LVAL_PP(arg2));
+
+       RETURN_TRUE;
+}
+/* }}} */
+
+/* {{{ proto bool mcve_maxconntimeout(resource conn, int secs)
+    The maximum amount of time the API will attempt a connection to MCVE
+*/
+PHP_FUNCTION(mcve_maxconntimeout)
+{
+       MCVE_CONN *conn;
+       zval **arg1, **arg2;
+
+       if (ZEND_NUM_ARGS() != 2 ||
+           zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
+           le_conn);
+
+       convert_to_long_ex(arg2);
+
+       MCVE_MaxConnTimeout(conn, Z_LVAL_PP(arg2));
+
+       RETURN_TRUE;
+}
+/* }}} */
+
 /* {{{ proto int mcve_connect(resource conn)
    Establish the connection to MCVE */
 PHP_FUNCTION(mcve_connect)
@@ -411,6 +613,30 @@ PHP_FUNCTION(mcve_connect)
 }
 /* }}} */
 
+/* {{{ proto string mcve_connectionerror(resource conn)
+   Get a textual representation of why a connection failed */
+PHP_FUNCTION(mcve_connectionerror)
+{
+       MCVE_CONN *conn;
+       char *retval;
+       zval **arg;
+
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg, -1, "mcve connection",
+           le_conn);
+
+       retval = MCVE_ConnectionError(conn);
+
+       if (retval == NULL) {
+         RETVAL_STRING("",1);
+       } else {
+         RETVAL_STRING(retval, 1);
+       }
+}
+/* }}} */
+
 /* {{{ proto int mcve_transactionssent(resource conn)
    Check to see if outgoing buffer is clear */
 PHP_FUNCTION(mcve_transactionssent)
@@ -431,6 +657,158 @@ PHP_FUNCTION(mcve_transactionssent)
 }
 /* }}} */
 
+/* {{{ proto int mcve_ping(resource conn)
+   Send a ping request to MCVE */
+PHP_FUNCTION(mcve_ping)
+{
+       MCVE_CONN *conn;
+       int retval;
+       zval **arg;
+
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg, -1, "mcve connection",
+           le_conn);
+
+       retval = MCVE_Ping(conn);
+
+       RETURN_LONG(retval);
+}
+/* }}} */
+
+/* {{{ proto long mcve_transnew(resource conn)
+   Start a new transaction */
+PHP_FUNCTION(mcve_transnew)
+{
+       MCVE_CONN *conn;
+       int retval;
+       zval **arg;
+
+       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg, -1, "mcve connection",
+           le_conn);
+
+       retval = MCVE_TransNew(conn);
+
+       RETURN_LONG(retval);
+}
+/* }}} */
+
+/* {{{ proto int mcve_transparam(resource conn, long identifier, int key, ...)
+   Add a parameter to a transaction */
+PHP_FUNCTION(mcve_transparam)
+{
+       MCVE_CONN *conn;
+       int retval;
+       int key;
+       zval **arg1, **arg2, **arg3, **arg4, **arg5;
+
+       if (ZEND_NUM_ARGS() == 4) {
+               if (zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE)
+                       WRONG_PARAM_COUNT;
+       } else if (ZEND_NUM_ARGS() == 5) {
+               if (zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE)
+                       WRONG_PARAM_COUNT;
+       } else {
+               WRONG_PARAM_COUNT;
+       }
+
+       convert_to_long_ex(arg3);
+
+       key = Z_LVAL_PP(arg3);
+
+       if (key == MC_CUSTOM && ZEND_NUM_ARGS() != 5)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
+           le_conn);
+
+       convert_to_long_ex(arg2);
+
+       switch (key) {
+               case MC_TRANTYPE:
+               case MC_PTRANNUM:
+               case MC_TTID:
+               case MC_ADMIN:
+               case MC_AUDITTYPE:
+                       convert_to_long_ex(arg4);
+                       retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_LVAL_PP(arg4));
+               break;
+
+               case MC_AMOUNT:
+                       convert_to_double_ex(arg4);
+                       retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_DVAL_PP(arg4));
+               break;
+
+               case MC_CUSTOM:
+                       convert_to_string_ex(arg4);
+                       convert_to_string_ex(arg5);
+                       retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4), Z_STRVAL_PP(arg5));
+               break;
+
+               default:
+                       convert_to_string_ex(arg4);
+                       retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4));
+               break;
+       }
+
+       RETURN_LONG(retval);
+}
+/* }}} */
+
+/* {{{ proto int mcve_transsend(resource conn, long identifier)
+   Finalize and send the transaction */
+PHP_FUNCTION(mcve_transsend)
+{
+       MCVE_CONN *conn;
+       int retval;
+       zval **arg1, **arg2;
+
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE)
+               WRONG_PARAM_COUNT;
+
+       ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection",
+           le_conn);
+
+       convert_to_long_ex(arg2);
+
+       retval = MCVE_TransSend(conn, Z_LVAL_PP(arg2));
+
+       RETURN_LONG(retval);
+}
+/* }}} */
+
+/* {{{ proto string mcve_responseparam(resource conn, long identifier, string key)
+   Get a custom response parameter */
+PHP_FUNCTION(mcve_responseparam)
+{
+       MCVE_CONN *conn;
+       char *retval;
+       zval **arg1, **arg2, **arg3;
+
+       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);
+
+       convert_to_long_ex(arg2);
+       convert_to_string_ex(arg3);
+
+       retval = MCVE_ResponseParam(conn, Z_LVAL_PP(arg2), Z_STRVAL_PP(arg3));
+
+       if (retval == NULL) {
+         RETVAL_STRING("",1);
+       } else {
+         RETVAL_STRING(retval, 1);
+       }
+}
+/* }}} */
+
 /* {{{ proto int mcve_returnstatus(resource conn, int identifier)
    Check to see if the transaction was successful */
 PHP_FUNCTION(mcve_returnstatus)
index 83e3c57200a7922a6f7d9eb2dc0a4915bc0a0189..6847538c36cca2c3b25667a3aacd17da590db8ef 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * basic mcve php module
  *
- * $Id$
  */
 
 #ifndef _PHP_MCVE_H
@@ -18,7 +17,7 @@ extern zend_module_entry php_mcve_module_entry;
 //#endif
 
 
-#define PHP_MCVE_VERSION       "1.0"
+#define PHP_MCVE_VERSION       "3.0"
 
 #define MCVE_CONST (CONST_CS | CONST_PERSISTENT)
 
@@ -33,7 +32,17 @@ PHP_FUNCTION(mcve_setdropfile);
 PHP_FUNCTION(mcve_setip);
 PHP_FUNCTION(mcve_setssl);
 PHP_FUNCTION(mcve_settimeout);
+PHP_FUNCTION(mcve_verifyconnection);
+PHP_FUNCTION(mcve_verifysslcert);
+PHP_FUNCTION(mcve_maxconntimeout);
+PHP_FUNCTION(mcve_connectionerror);
+PHP_FUNCTION(mcve_deletetrans);
 PHP_FUNCTION(mcve_connect);
+PHP_FUNCTION(mcve_transnew);
+PHP_FUNCTION(mcve_transparam);
+PHP_FUNCTION(mcve_transsend);
+PHP_FUNCTION(mcve_ping);
+PHP_FUNCTION(mcve_responseparam);
 PHP_FUNCTION(mcve_returnstatus);
 PHP_FUNCTION(mcve_returncode);
 PHP_FUNCTION(mcve_transactionssent);