summaryrefslogtreecommitdiff
path: root/ext/sybase_ct
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-08-19 10:22:38 +0200
committerOndřej Surý <ondrej@sury.org>2011-08-19 10:22:38 +0200
commitf452a2b3e4e4279b27594a8ddb66525442d59227 (patch)
treed05cb62c5515ada33076d3cc3e49b664733a478c /ext/sybase_ct
parent038ba12e8724d537040e88ec794354b0c063f0a6 (diff)
downloadphp-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.m433
-rw-r--r--ext/sybase_ct/php_sybase_ct.c12
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);