diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-08-19 10:22:38 +0200 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-08-19 10:22:38 +0200 |
| commit | f452a2b3e4e4279b27594a8ddb66525442d59227 (patch) | |
| tree | d05cb62c5515ada33076d3cc3e49b664733a478c /ext/sybase_ct | |
| parent | 038ba12e8724d537040e88ec794354b0c063f0a6 (diff) | |
| download | php-f452a2b3e4e4279b27594a8ddb66525442d59227.tar.gz | |
Imported Upstream version 5.3.7upstream/5.3.7
Diffstat (limited to 'ext/sybase_ct')
| -rw-r--r-- | ext/sybase_ct/config.m4 | 33 | ||||
| -rw-r--r-- | ext/sybase_ct/php_sybase_ct.c | 12 |
2 files changed, 36 insertions, 9 deletions
diff --git a/ext/sybase_ct/config.m4 b/ext/sybase_ct/config.m4 index f335c4cd3..b24f378f4 100644 --- a/ext/sybase_ct/config.m4 +++ b/ext/sybase_ct/config.m4 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4 302918 2010-08-31 12:28:30Z thekid $ +dnl $Id: config.m4 312059 2011-06-11 18:55:15Z thekid $ dnl PHP_ARG_WITH(sybase-ct, for Sybase-CT support, @@ -15,7 +15,7 @@ if test "$PHP_SYBASE_CT" != "no"; then AC_DEFINE(HAVE_SYBASE_CT,1,[ ]) PHP_NEW_EXTENSION(sybase_ct, php_sybase_ct.c, $ext_shared) PHP_SUBST(SYBASE_CT_SHARED_LIBADD) - + if test "$PHP_SYBASE_CT" = "yes"; then SYBASE_CT_INCDIR=/home/sybase/include SYBASE_CT_LIBDIR=/home/sybase/lib @@ -24,17 +24,37 @@ if test "$PHP_SYBASE_CT" != "no"; then SYBASE_CT_LIBDIR=$PHP_SYBASE_CT/lib fi + dnl Determine whether we're building 64 or 32 bit... + AC_CHECK_SIZEOF(long int, 4) + AC_MSG_CHECKING([checking if we're on a 64-bit platform]) + if test "$ac_cv_sizeof_long_int" = "4"; then + AC_MSG_RESULT([no]) + PHP_SYBASE_64=no + else + AC_MSG_RESULT([yes]) + PHP_SYBASE_64=yes + fi + + + AC_MSG_CHECKING([Checking for ctpublic.h]) if test -f $SYBASE_CT_INCDIR/ctpublic.h; then + AC_MSG_RESULT([found in $SYBASE_CT_INCDIR]) PHP_ADD_INCLUDE($SYBASE_CT_INCDIR) else AC_MSG_ERROR([ctpublic.h missing!]) fi - + + AC_MSG_CHECKING([Checking Sybase libdir]) + AC_MSG_RESULT([Have $SYBASE_CT_LIBDIR]) + + AC_MSG_CHECKING([Checking for Sybase platform libraries]) + PHP_ADD_LIBPATH($SYBASE_CT_LIBDIR, SYBASE_CT_SHARED_LIBADD) if test -f $SYBASE_CT_INCDIR/tds.h || test -f $SYBASE_CT_INCDIR/tds_sysdep_public.h; then PHP_ADD_LIBRARY(ct,, SYBASE_CT_SHARED_LIBADD) SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lct" - elif test -f $SYBASE_CT_INCDIR/libsybct64.so; then + AC_MSG_RESULT([FreeTDS: $SYBASE_CT_LIBS]) + elif test -f $SYBASE_CT_LIBDIR/libsybct64.so && test $PHP_SYBASE_64 = "yes"; then PHP_ADD_LIBRARY(sybcs64,, SYBASE_CT_SHARED_LIBADD) PHP_ADD_LIBRARY(sybct64,, SYBASE_CT_SHARED_LIBADD) PHP_ADD_LIBRARY(sybcomn64,, SYBASE_CT_SHARED_LIBADD) @@ -46,6 +66,7 @@ if test "$PHP_SYBASE_CT" != "no"; then *) CFLAGS="${CFLAGS} -DSYB_LP64" ;; # esac SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lsybcs64 -lsybct64 -lsybcomn64 -lsybintl64" + AC_MSG_RESULT([Sybase64: $SYBASE_CT_LIBS]) PHP_CHECK_LIBRARY(sybtcl64, netg_errstr, [ PHP_ADD_LIBRARY(sybtcl64,,SYBASE_CT_SHARED_LIBADD) @@ -57,13 +78,14 @@ if test "$PHP_SYBASE_CT" != "no"; then PHP_CHECK_LIBRARY(insck64, insck__getVdate, [PHP_ADD_LIBRARY(insck64,, SYBASE_CT_SHARED_LIBADD)],[],[-L$SYBASE_CT_LIBDIR]) PHP_CHECK_LIBRARY(insck64, bsd_tcp, [PHP_ADD_LIBRARY(insck64,, SYBASE_CT_SHARED_LIBADD)],[],[-L$SYBASE_CT_LIBDIR]) - elif test -f $SYBASE_CT_INCDIR/libsybct.so; then + elif test -f $SYBASE_CT_LIBDIR/libsybct.so; then PHP_ADD_LIBRARY(sybcs,, SYBASE_CT_SHARED_LIBADD) PHP_ADD_LIBRARY(sybct,, SYBASE_CT_SHARED_LIBADD) PHP_ADD_LIBRARY(sybcomn,, SYBASE_CT_SHARED_LIBADD) PHP_ADD_LIBRARY(sybintl,, SYBASE_CT_SHARED_LIBADD) SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lsybcs -lsybct -lsybcomn -lsybintl" + AC_MSG_RESULT([Sybase32 syb-prefix: $SYBASE_CT_LIBS]) PHP_CHECK_LIBRARY(sybtcl, netg_errstr, [ PHP_ADD_LIBRARY(sybtcl,,SYBASE_CT_SHARED_LIBADD) @@ -82,6 +104,7 @@ if test "$PHP_SYBASE_CT" != "no"; then PHP_ADD_LIBRARY(intl,, SYBASE_CT_SHARED_LIBADD) SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lcs -lct -lcomn -lintl" + AC_MSG_RESULT([Sybase32 default: $SYBASE_CT_LIBS]) PHP_CHECK_LIBRARY(tcl, netg_errstr, [ PHP_ADD_LIBRARY(tcl,,SYBASE_CT_SHARED_LIBADD) diff --git a/ext/sybase_ct/php_sybase_ct.c b/ext/sybase_ct/php_sybase_ct.c index d881f6201..256ef31d3 100644 --- a/ext/sybase_ct/php_sybase_ct.c +++ b/ext/sybase_ct/php_sybase_ct.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_sybase_ct.c 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_sybase_ct.c 313903 2011-07-28 21:16:51Z pajoye $ */ #ifdef HAVE_CONFIG_H @@ -204,7 +204,7 @@ const zend_function_entry sybase_functions[] = { PHP_FALIAS(mssql_set_message_handler, sybase_set_message_handler, arginfo_sybase_set_message_handler) PHP_FALIAS(mssql_deadlock_retry_count, sybase_deadlock_retry_count, arginfo_sybase_deadlock_retry_count) #endif - {NULL, NULL, NULL} + PHP_FE_END }; zend_module_entry sybase_module_entry = { @@ -388,7 +388,7 @@ static CS_RETCODE CS_PUBLIC _client_message_handler(CS_CONTEXT *context, CS_CONN TSRMLS_FETCH(); if (CS_SEVERITY(errmsg->msgnumber) >= SybCtG(min_client_severity)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sybase: Client message: %s (severity %d)", errmsg->msgstring, CS_SEVERITY(errmsg->msgnumber)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sybase: Client message: %s (severity %ld)", errmsg->msgstring, (long)CS_SEVERITY(errmsg->msgnumber)); } STR_FREE(SybCtG(server_message)); SybCtG(server_message) = estrdup(errmsg->msgstring); @@ -728,7 +728,7 @@ static int php_sybase_do_connect_internal(sybase_link *sybase, char *host, char static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) { - char *user, *passwd, *host, *charset, *appname; + char *user = NULL, *passwd = NULL, *host = NULL, *charset = NULL, *appname = NULL; char *hashed_details; int hashed_details_length, len; zend_bool new = 0; @@ -777,6 +777,10 @@ static void php_sybase_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) } sybase_ptr = (sybase_link *) malloc(sizeof(sybase_link)); + if (!sybase_ptr) { + efree(hashed_details); + RETURN_FALSE; + } if (!php_sybase_do_connect_internal(sybase_ptr, host, user, passwd, charset, appname TSRMLS_CC)) { free(sybase_ptr); efree(hashed_details); |
