From: John Donagher Date: Tue, 1 May 2001 05:04:43 +0000 (+0000) Subject: - Remove some stale code X-Git-Tag: php-4.0.6RC1~220 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0f42480b48447df34ba15e68db76aafa02037764;p=php - Remove some stale code - Fix spelling mistakes - Add build-time version detection - Add support for v3 Verisign SDK @ pfpro extension now supports version 3 of the Verisign SDK (John Donagher) --- diff --git a/ext/pfpro/config.m4 b/ext/pfpro/config.m4 index 3c68048528..27853d9954 100644 --- a/ext/pfpro/config.m4 +++ b/ext/pfpro/config.m4 @@ -5,17 +5,23 @@ PHP_ARG_WITH(pfpro, whether to include Verisign Payflow Pro support, [ --with-pfpro[=DIR] Include Verisign Payflow Pro support]) if test "$PHP_PFPRO" != "no"; then + PFPRO_LIB=libpfpro.so + PFPRO_HDR=pfpro.h for i in /usr/local /usr $PHP_PFPRO; do - if test -r $i/pfpro.h; then + if test -r $i/$PFPRO_HDR; then PFPRO_INC_DIR=$i - elif test -r $i/include/pfpro.h; then + elif test -r $i/include/$PFPRO_HDR; then PFPRO_INC_DIR=$i/include + elif test -r $i/lib/$PFPRO_HDR; then + PFPRO_INC_DIR=$i/lib + elif test -r $i/bin/$PFPRO_HDR; then + PFPRO_INC_DIR=$i/bin fi - if test -r $i/libpfpro.so; then + if test -r $i/$PFPRO_LIB; then PFPRO_LIB_DIR=$i - elif test -r $i/lib/libpfpro.so; then + elif test -r $i/lib/$PFPRO_LIB; then PFPRO_LIB_DIR=$i/lib fi done @@ -32,7 +38,19 @@ if test "$PHP_PFPRO" != "no"; then ./configure --with-pfpro= if necessary) fi - AC_MSG_RESULT(found in $PFPRO_LIB_DIR) + PFPRO_VERSION3=`nm $PFPRO_LIB_DIR/$PFPRO_LIB | awk '{print $3}' | grep ^pfpro > /dev/null && echo 1 || echo 0` + PFPRO_VERSION2=`nm $PFPRO_LIB_DIR/$PFPRO_LIB | awk '{print $3}' | grep ^PN > /dev/null && echo 1 || echo 0` + + if test "$PFPRO_VERSION3" -eq 1 ; then + PFPRO_VERSION=3 + elif test "$PFPRO_VERSION2" -eq 1 ; then + PFPRO_VERSION=2 + else + AC_MSG_ERROR(The pfpro extension requires version 2 or 3 of the SDK) + fi + + AC_DEFINE_UNQUOTED(PFPRO_VERSION, $PFPRO_VERSION, [Version of SDK]) + dnl AC_MSG_RESULT(found in $PFPRO_LIB_DIR) PHP_ADD_INCLUDE($PFPRO_INC_DIR) diff --git a/ext/pfpro/pfpro.c b/ext/pfpro/pfpro.c index 2be78d2a5f..b8ac438427 100644 --- a/ext/pfpro/pfpro.c +++ b/ext/pfpro/pfpro.c @@ -107,7 +107,7 @@ PHP_RSHUTDOWN_FUNCTION(pfpro) PFPROLS_FETCH(); if (PFPROG(initialized) == 1) { - PNCleanup(); + pfproCleanup(); } return SUCCESS; @@ -119,7 +119,7 @@ PHP_MINFO_FUNCTION(pfpro) { php_info_print_table_start(); php_info_print_table_header(2, "Verisign Payflow Pro support", "enabled"); - php_info_print_table_row(2, "libpfpro version", PNVersion()); + php_info_print_table_row(2, "libpfpro version", pfproVersion()); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); @@ -134,12 +134,12 @@ PHP_FUNCTION(pfpro_version) WRONG_PARAM_COUNT; } - RETURN_STRING(PNVersion(), 1); + RETURN_STRING((char *)pfproVersion(), 1); } /* }}} */ /* {{{ proto void pfpro_init() - Initialises the Payflow Pro library */ + Initializes the Payflow Pro library */ PHP_FUNCTION(pfpro_init) { PFPROLS_FETCH(); @@ -148,7 +148,7 @@ PHP_FUNCTION(pfpro_init) WRONG_PARAM_COUNT; } - PNInit(); + pfproInit(); PFPROG(initialized) = 1; @@ -166,7 +166,7 @@ PHP_FUNCTION(pfpro_cleanup) WRONG_PARAM_COUNT; } - PNCleanup(); + pfproCleanup(); PFPROG(initialized) = 0; @@ -180,7 +180,7 @@ PHP_FUNCTION(pfpro_process_raw) { zval ***args; - char *parmlist; + char *parmlist = NULL; char *address = NULL; int port = PFPROG(defaultport); int timeout = PFPROG(defaulttimeout); @@ -191,10 +191,12 @@ PHP_FUNCTION(pfpro_process_raw) int freeaddress = 0; - /* No, I don't like that Signio tell you to use a - fixed length buffer either */ - +#if PFPRO_VERSION < 3 char response[512] = ""; +#else + int context; + char *response; +#endif PFPROLS_FETCH(); @@ -269,20 +271,28 @@ PHP_FUNCTION(pfpro_process_raw) printf("Proxy password: >%s<\n", proxyPassword); #endif +#if PFPRO_VERSION < 3 /* Blank the response buffer */ - memset(response, 0, sizeof(response)); +#endif - /* Initialise the library if needed */ + /* Initialize the library if needed */ if (PFPROG(initialized) == 0) { - PNInit(); + pfproInit(); PFPROG(initialized) = 1; } /* Perform the transaction */ +#if PFPRO_VERSION < 3 ProcessPNTransaction(address, port, proxyAddress, proxyPort, proxyLogon, proxyPassword, parmlist, strlen(parmlist), timeout, response); +#else + pfproCreateContext(&context, address, port, timeout, proxyAddress, proxyPort, proxyLogon, proxyPassword); + pfproSubmitTransaction(context, parmlist, strlen(parmlist), &response); + //pfproCompleteTransaction(response); + pfproDestroyContext(context); +#endif if (freeaddress) { efree(address); @@ -304,6 +314,7 @@ PHP_FUNCTION(pfpro_process) zval **entry; int pass; + char *parmlist = NULL; char *address = NULL; int port = PFPROG(defaultport); int timeout = PFPROG(defaulttimeout); @@ -312,22 +323,21 @@ PHP_FUNCTION(pfpro_process) char *proxyLogon = PFPROG(proxylogon); char *proxyPassword = PFPROG(proxypassword); - int freeaddress = 0; - - char *parmlist = NULL; int parmlength = 0; + int freeaddress = 0; - /* No, I don't like that Signio tell you to use a - fixed length buffer either */ - +#if PFPRO_VERSION < 3 char response[512] = ""; +#else + int context; + char *response; +#endif char tmpbuf[128]; - char *rsppos, *valpos; char buf[128], sbuf[128]; char *p1, *p2, *p_end, /* Pointers for string manipulation */ - *sp1, *sp2, *sp_end, + *sp1, *sp2, *pdelim1="&", *pdelim2="="; PFPROLS_FETCH(); @@ -514,43 +524,34 @@ PHP_FUNCTION(pfpro_process) RETURN_FALSE; } +#if PFPRO_VERSION < 3 /* Blank the response buffer */ - memset(response, 0, sizeof(response)); +#endif - /* Initialise the library if needed */ + /* Initialize the library if needed */ if (PFPROG(initialized) == 0) { - PNInit(); + pfproInit(); PFPROG(initialized) = 1; } /* Perform the transaction */ - ProcessPNTransaction(address, port, proxyAddress, proxyPort, proxyLogon, proxyPassword, parmlist, parmlength, timeout, response); +#if PFPRO_VERSION < 3 + ProcessPNTransaction(address, port, proxyAddress, proxyPort, proxyLogon, proxyPassword, parmlist, strlen(parmlist), timeout, response); +#else + pfproCreateContext(&context, address, port, timeout, proxyAddress, proxyPort, proxyLogon, proxyPassword); + pfproSubmitTransaction(context, parmlist, strlen(parmlist), &response); + //pfproCompleteTransaction(response); + pfproDestroyContext(context); +#endif if (freeaddress) { efree(address); } -#if 0 - /* Decode the response back into a PHP array */ - - rsppos = strtok(response, "&"); - - do { - valpos = strchr(rsppos, '='); - if (valpos) { - strncpy(tmpbuf, rsppos, valpos - rsppos); - tmpbuf[valpos - rsppos] = 0; - add_assoc_string(return_value, tmpbuf, valpos + 1, 1); - } - - } while (rsppos = strtok(NULL, "&")); -#else - - /* This final chunk of code is to walk the string returned by Signio and build a string array to return to the user */ @@ -606,7 +607,6 @@ PHP_FUNCTION(pfpro_process) add_assoc_string(return_value, &buf[0], &sbuf[0], 1); } -#endif } /* }}} */ diff --git a/ext/pfpro/php_pfpro.h b/ext/pfpro/php_pfpro.h index 31d21c3bd0..1f97100fd0 100644 --- a/ext/pfpro/php_pfpro.h +++ b/ext/pfpro/php_pfpro.h @@ -12,7 +12,8 @@ | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ - | Author: David Croft | + | Authors: David Croft | + | John Donagher | +----------------------------------------------------------------------+ */ @@ -32,6 +33,12 @@ extern zend_module_entry pfpro_module_entry; #define PHP_PFPRO_API #endif +#if PFPRO_VERSION < 3 +#define pfproVersion() PNVersion() +#define pfproInit() PNInit() +#define pfproCleanup() PNCleanup() +#endif + PHP_MINIT_FUNCTION(pfpro); PHP_MSHUTDOWN_FUNCTION(pfpro); PHP_RINIT_FUNCTION(pfpro);