Compare commits

..
1 Commits
336 changed files with 8987 additions and 17596 deletions

No files matched your search

-2941
View File
File diff suppressed because it is too large. Load diff
-6
View File
@@ -72,9 +72,6 @@ If you get an error telling you that the apxs script could not be found,
look for it on your system and if you find it, provide the full path to it
as: --with-apxs=/path/to/apxs
Make sure you specify the version of apxs that is actually installed on
your system and NOT the one that is in the apache source tarball.
Next you must copy php.ini-dist to the appropriate place (normally
/usr/local/lib/php.ini) and edit it as necessary to set PHP options.
@@ -163,9 +160,6 @@ Installing PHP can be done in four simple steps:
look for it on your system and if you find it, provide the full path to it
as: --with-apxs=/path/to/apxs
Make sure you specify the version of apxs that is actually installed on
your system and NOT the one that is in the apache source tarball.
You might also want other flags on this configure line. --with-mysql
is just an example.
+17 -21
View File
@@ -1,5 +1,5 @@
--------------------------------------------------------------------
The PHP License, version 3.0
The PHP License, version 3.0a1
Copyright (c) 1999 - 2002 The PHP Group. All rights reserved.
--------------------------------------------------------------------
@@ -8,38 +8,34 @@ modification, is permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
3. The name "PHP" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact group@php.net.
4. Products derived from this software may not be called "PHP", nor
may "PHP" appear in their name, without prior written permission
from group@php.net. You may indicate that your software works in
conjunction with PHP by saying "Foo for PHP" instead of calling
it "PHP Foo" or "phpfoo"
3. The name "PHP" must not be used to endorse or promote products
derived from this software without prior permission from the
PHP Group. This does not apply to add-on libraries or tools
that work in conjunction with PHP. In such a case the PHP
name may be used to indicate that the product supports PHP.
5. The PHP Group may publish revised and/or new versions of the
4. The PHP Group may publish revised and/or new versions of the
license from time to time. Each version will be given a
distinguishing version number.
Once covered code has been published under a particular version
of the license, you may always continue to use it under the terms
of that version. You may also choose to use such covered code
under the terms of any subsequent version of the license
of the license, you may always continue to use it under the
terms of that version. You may also choose to use such covered
code under the terms of any subsequent version of the license
published by the PHP Group. No one other than the PHP Group has
the right to modify the terms applicable to covered code created
under this License.
6. Redistributions of any form whatsoever must retain the following
5. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes PHP, freely available from
<http://www.php.net/>".
http://www.php.net/".
THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+9 -11
View File
@@ -14,23 +14,21 @@ libphp4.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
libs/libphp4.bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp4.so
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp4.so
php: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(BUILD_CGI)
$(LIBTOOL) --mode=link $(CC) -export-dynamic $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
sapi/cli/php: $(PHP_GLOBAL_OBJS) $(PHP_CLI_OBJS)
$(BUILD_CLI)
$(LIBTOOL) --mode=link $(CC) -export-dynamic $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_CLI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
install: $(install_targets)
install-cli: sapi/cli/php
@echo "Installing PHP CLI binary: $(INSTALL_ROOT)$(bindir)/"
@$(INSTALL_CLI)
$(INSTALL_CLI)
install-sapi: libphp4.la
@echo "Installing PHP SAPI module"
-@$(LIBTOOL) --silent --mode=install cp libphp4.la $(phptempdir)/libphp4.la >/dev/null 2>&1
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-@if test ! -r $(phptempdir)/libphp4.$(SHLIB_SUFFIX_NAME); then \
@@ -41,17 +39,17 @@ install-sapi: libphp4.la
fi; \
done; \
fi
@$(INSTALL_IT)
$(INSTALL_IT)
install-modules: build-modules
install-modules:
@test -d modules && \
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR) && \
echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/" && \
echo "installing shared modules into $(EXTENSION_DIR)" && \
rm -f modules/*.la && \
cp modules/* $(INSTALL_ROOT)$(EXTENSION_DIR) >/dev/null 2>&1 || true
install-tester:
@echo "Installing regression tester: $(INSTALL_ROOT)$(PEAR_INSTALLDIR)/"
@echo "Installing regression tester"
@$(mkinstalldirs) $(PEAR_INSTALLDIR)
@$(INSTALL) -m 755 $(top_srcdir)/run-tests.php $(INSTALL_ROOT)$(PEAR_INSTALLDIR)
+18 -83
View File
@@ -1,80 +1,13 @@
PHP 4 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
? ? ??? 2002, Version 4.3.0
- Added ob_list_handlers() which returns an array of all active output
handlers. (marcus)
- Added mbstring encoding/decoding "HTML-ENTITIES". (Marcus)
- Added parameter 'L' for mb_http_input() to retrieve input encoding as a
comma separated string. (Marcus)
- Added the ability for declare() compiler modifications to occur globally
by using an empty statement. (Jason, Zend Engine)
i.e.
//Globally enables the ticks modifier for the whole program
declare (ticks=1);
//Enables the ticks modifier for just the lexical block containing
//"statement".
declare (ticks=1) {
statement;
}
- Bring strtotime() "next" keyword handling in line with documentation and
its glibc cousin. (Rasmus)
- Fixed str_rot13() to not mangle source string. (Rasmus)
- Fixed imap_get_quota() to work with multiple returned resources as per
the RFC 2087 and bug #14673. (kalowsky, Sander Steffann)
- Added MarkerNote decoding to exif_read_data() for several Cameras. (Marcus)
- Disabled zlib.output_compression for "image/" content-type
headers which can be changed during script execution. (Stefan)
- Added new asynchronous FTP functions. (Stefan)
- Added optional 5th parameter to FTP functions to support resuming. (Stefan)
- Added optional 2nd parameter to print_r() to make it return the variable
representation instead of echoing it. (Derick)
- Added mysql_ping(), mysql_real_escape_string(), mysql_character_set_name(),
mysql_thread_id(), mysql_stat() and mysql_list_processes(). (Zak, Georg)
- Added pg_fetch_all() which fetches all rows in a result. (Yasuo)
- Changed "session.use_trans_sid" to be disabled by default in php.ini. (Yasuo)
- Added safe_mode & open_basedir checks for pg_lo_export(). (Yasuo)
- Added open_basedir check for pg_lo_import(). (Yasuo)
- Fixed infinite recursion crash bug in ticks. (Jason)
- Added php.ini option "mysql.connect_timeout" to set the timeout limit for
mysql_connect() and mysql_pconnect(). (Georg)
- Added optional parameter "flags" to mysql_connect() and mysql_pconnect()
which can be used to set usage of idle timeout and different protocols,
SSL and compressed. (Georg)
- Added automatic rollback to ext/mysql for non committed transactions. (Georg)
- Fixed cases where preg_split() incorrectly terminated final element if it
contained null bytes. (Andrei)
- Added persistent connections/pipelining to thttpd. (Sascha)
- Fixed two potential blocking issues in thttpd. (Sascha)
- Fixed broken header file detection on Solaris. (Sascha)
- Improved nss/socket-related symbol/library detection. (Jani, Sascha)
- Made iconv() work well with both libiconv and libgconv. (Moriyoshi, Yasuo)
- Fixed socket_set_timeout() on win32. (Jason, Edin, Jani)
- Added domxml_node_namespace_uri(). (Rui Lopes)
- Fixed win32 memory leak in /ext/sockets that would occur on any error
condition. Also fixed host resolution error messages on win32. (Jason)
- Added optional 3rd parameter 'recursive' to ftp_rawlist() which will
do 'LIST -R' instead of 'LIST'. (Jani)
- Disabled the fifth parameter in mail() when safe-mode is turned on. (Derick)
- Changed getimagesize() to always set unknown fields to 0 and added support
iff imagetype. (Marcus)
- Added runtime Apache2 thread check to ensure we don't run a non-threaded
PHP inside a threaded Apache2 MPM. (Rasmus)
- Made getimagesize() and exif_read_data() to return also the mime-type and
exif_thumbnail() to return also the image-type. (Marcus)
- Added image_type_to_mime_type() which converts image-types to mime-types.
(Marcus)
- Made GD functions to only exist if they are available in libgd. Now the
availability can be tested with function_exists(). (Derick)
- Added an optional parameter to the header() function which overrides the HTTP
response code. (Derick)
- Changed the order of which modules are unloaded to the reverse order of
which they were loaded. (Derick, Zend Engine)
- Fixed a crash in ereg_replace() when backreference number was greater
than the number of subpatterns. (oliver@billix.franken.de)
?? ??? 2002, Version 4.3.0
- Added preliminary SAX-Input support. It's now possible to build a DomDocument
with SAX-Events. (chregu)
- Bundled GD library 2.0.1 with php (ext/gd/libgd) (Rasmus, Jani, Markus, Edin)
with SAX-Events (added domxml_parser_start_document(), domxml_parser_end_document(),
domxml_parser_start_element(tagname[,attributes]), domxml_parser_end_element(tagname),
domxml_parser_characters(characters), domxml_parser_cdata_block(cdata),
domxml_parser_comment(comment), domxml_parser_get_document(). (chregu)
- Bundle gd library 2.0.1 with php (ext/gd/libgd) (Rasmus), tweak config.m4 to
work with it (Jani), smallers tweaks for Win32 (Markus, Edin)
- Fixed bug with Apache which let PHP_AUTH_* variables to be set when
external basic auth mechanism was used. (Jani)
- Fixed bzopen() crash in thread-safe mode. (Andrei)
@@ -99,13 +32,14 @@ PHP 4 NEWS
- Added pctnl_alarm() function. (Edin)
- Fixed array_rand() on thread-safe platforms such as Windows. (Edin)
- If zlib.output_compression is enabled and a page is compressed
a "Vary: Accept-Encoding" header is now added. (Stefan)
a "Vary: Accept-Encoding" header is added. (Stefan)
- Renamed getallheaders() to apache_request_headers() and kept getallheaders()
as an alias to it. Also added apache_response_headers() which returns the
current response headers from Apache. (Rasmus)
- Added missing AddRef() calls in the COM extension. This should fix weird
behaviour (in particular with ADODB). (Harald)
- Fixed segfault in version_compare(). (Stig)
- Fixed some dummy errors. (dets)
- Fix segfault in version_compare(). (Stig)
- Added compressed Flash MX files support to getimagesize(). (Derick)
- Added ability to capture string offsets in preg_split() results.
(David Brown, Andrei)
@@ -117,7 +51,7 @@ PHP 4 NEWS
Korean encodings into mbstring. (Rui)
- Misc. Win32 mail() enhancements: support 'From:' header (msisolak@yahoo.com),
support Bcc header, case-insensitive headers, enhanced error reporting,
automatic proper line ending conversion, fixed crash with Cc, fixed buffer
automatic proper line ending conversion, fix crash with Cc, fix buffer
overflows with $header. (Markus)
- Improved IMAP extension performance. (adam.kauffman@mindspring.com,
rjs3@andrew.cmu.edu, Jon)
@@ -131,13 +65,15 @@ PHP 4 NEWS
and remove variables from the URL-Rewriter. (Thies)
- The Windows build can now be configured more comfortably, for example
when dealing with built-in extensions. (Sebastian)
- Added optional 3rd parameter to mysql_select_db() which makes it return
the previously selected database name. (Jani)
- Added large OID value (2^31 to 2^32) support for pg_lo_import(),
pg_lo_unlink(), pg_lo_open() and pg_lo_export(). (Yasuo)
- Changed the mbstring extension to be enabled by default. (Yasuo)
- Made the mbstring extension to be enabled by default. (Yasuo)
- Fixed mixing OCIPlogon() and OCINLogon() to not leak Oracle-Sessions. (Thies)
- Added php.ini options for EXIF extension to encode and decode Unicode/JIS
user comments. (Marcus)
- Changed the "-c" CLI/CGI option to allow both 'filename' and
- Changed the "-c" CLI/CGI option to allow both 'filename' and
'path to php.ini'. (Yasuo)
- Added version information to the .dll and .exe files created under Windows.
(jtate)
@@ -180,7 +116,7 @@ PHP 4 NEWS
. Added memory stream support. (Marcus)
- Fixed memory allocation problem on systems that have iconv() support in libc.
(Yasuo)
- Made var_dump() handle recursive structures better. (Yasuo, Derick)
- Made var_dump() handle recursive structures better. (Yasuo)
- Added exif_imagetype() function. (Marcus)
- New improved build system. Among other improvements, replaces the slow
recursive make with one global Makefile and eases the integration of proper
@@ -468,7 +404,6 @@ PHP 4 NEWS
GMT +0100 and GMT -0100. (Derick)
10 Dec 2001, Version 4.1.0
- Fixed return values for strtok (Bug #13866) (jmoore)
- Worked around a bug in the MySQL client library that could cause PHP to hang
when using unbuffered queries. (Zeev)
- Fixed a bug which caused set_time_limit() to affect all subsequent requests
@@ -533,9 +468,9 @@ PHP 4 NEWS
there's no need to import them using the 'global' statement. (Andi & Zeev)
- Added vprintf() and vsprintf() functions that allow passing all arguments
after format as an array. (Andrei)
- Added support for GD2 image type for ImageCreateFromString(). (Jani)
- Added support for GD2 image type for ImageCreateFromString() (Jani)
- Added ImageCreateFromGD(), ImageCreateFromGD2(), ImageCreateFromGD2part(),
ImageGD() and ImageGD2() functions. (Jani)
ImageGD() and ImageGD2() functions (Jani)
- addcslashes now warns when charlist is invalid. The returned string
remained the same (Jeroen)
- Added optional extra argument to gmp_init(). The extra argument
+1 -1
View File
@@ -84,7 +84,7 @@ For datetime.c:
For string.c:
(php_trim) Fixed a memory leak resulting from improper use of zval_dtor().
# Man, that thing was leaking all over the place!
@- Fixed memory leak in trim(). (Bob)
@- Memory leak in trim() function has finally been fixed. (Bob)
The lines above marked with @ will go into NEWS file automagically, and the
# lines will be omitted from the ChangeLog. Alternatively, you might want
+1 -10
View File
@@ -105,20 +105,11 @@ if (zend_parse_parameters(3 TSRMLS_CC, "zbr!",
/* Get either a set of 3 longs or a string. */
long l1, l2, l3;
char *s;
/*
* The function expects a pointer to a integer in this case, not a long
* or any other type. If you specify a type which is larger
* than a 'int', the upper bits might not be initialized
* properly, leading to random crashes on platforms like
* Tru64 or Linux/Alpha.
*/
int length;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"lll", &l1, &l2, &l3) == SUCCESS) {
/* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"s", &s, &length) == SUCCESS) {
"s", &s) == SUCCESS) {
/* manipulate string */
} else {
/* output error */
+19 -187
View File
@@ -103,7 +103,7 @@ dnl relative to source- or build-directory?
dnl ac_srcdir/ac_bdir include trailing slash
case $1 in
""[)] ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
/*[)] ac_srcdir=`echo "$1"|cut -c 2-`"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
/*[)] ac_srcdir=`echo $ac_n "$1$ac_c"|cut -c 2-`"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
*[)] ac_srcdir="$abs_srcdir/$1/"; ac_bdir="$1/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
esac
@@ -255,7 +255,7 @@ AC_DEFUN(PHP_EVAL_LIBLINE,[
case $ac_i in
-l*)
ac_ii=`echo $ac_i|cut -c 3-`
PHP_ADD_LIBRARY($ac_ii,1,$2)
PHP_ADD_LIBRARY($ac_ii,,$2)
;;
-L*)
ac_ii=`echo $ac_i|cut -c 3-`
@@ -875,7 +875,7 @@ AC_DEFUN(PHP_ADD_LIBPATH,[
PHP_ADD_LIBPATH_GLOBAL([$ai_p])
],[
if test "$ext_shared" = "yes"; then
$2="$ld_runpath_switch$ai_p -L$ai_p [$]$2"
$2="-R$ai_p -L$ai_p [$]$2"
else
PHP_ADD_LIBPATH_GLOBAL([$ai_p])
fi
@@ -884,26 +884,19 @@ AC_DEFUN(PHP_ADD_LIBPATH,[
])
dnl
dnl PHP_UTILIZE_RPATHS()
dnl PHP_BUILD_RPATH()
dnl
dnl builds RPATHS/LDFLAGS from PHP_RPATHS
dnl builds RPATH from PHP_RPATHS
dnl
AC_DEFUN(PHP_UTILIZE_RPATHS,[
OLD_RPATHS=$PHP_RPATHS
unset PHP_RPATHS
for i in $OLD_RPATHS; do
dnl Can be passed to native cc/libtool
PHP_LDFLAGS="$PHP_LDFLAGS -L$i"
dnl Libtool-specific
PHP_RPATHS="$PHP_RPATHS -R $i"
dnl cc-specific
NATIVE_RPATHS="$NATIVE_RPATHS $ld_runpath_switch$i"
done
if test "$PHP_RPATH" = "no"; then
AC_DEFUN(PHP_BUILD_RPATH,[
if test "$PHP_RPATH" = "yes" && test -n "$PHP_RPATHS"; then
OLD_RPATHS=$PHP_RPATHS
unset PHP_RPATHS
unset NATIVE_RPATHS
for i in $OLD_RPATHS; do
PHP_LDFLAGS="$PHP_LDFLAGS -L$i"
PHP_RPATHS="$PHP_RPATHS -R $i"
NATIVE_RPATHS="$NATIVE_RPATHS $ld_runpath_switch$i"
done
fi
])
@@ -934,8 +927,8 @@ dnl
dnl internal, don't use
AC_DEFUN(PHP_ADD_LIBRARY_SKELETON,[
case $1 in
c|c_r|pthread*[)] ;;
*[)] ifelse($3,,[
c|c_r|pthread*) ;;
*) ifelse($3,,[
PHP_X_ADD_LIBRARY($1,$2,$5)
],[
if test "$ext_shared" = "yes"; then
@@ -992,78 +985,14 @@ ifelse($3,,[
])
dnl
dnl PHP_ADD_LIBRARY_DEFER_WITH_PATH(library, path[, shared-libadd])
dnl PHP_ADD_LIBRARY_DEFER_WITH_PATH(library, path)
dnl
dnl add a library to the link line (deferred)
dnl and path to linkpath/runpath (not deferred)
dnl if shared-libadd is not empty and $ext_shared is yes,
dnl shared-libadd will be assigned the library information
dnl
AC_DEFUN(PHP_ADD_LIBRARY_DEFER_WITH_PATH,[
ifelse($3,,[
if test -n "$2"; then
PHP_ADD_LIBPATH($2)
fi
PHP_ADD_LIBPATH($2)
PHP_ADD_LIBRARY_DEFER($1)
],[
if test "$ext_shared" = "yes"; then
$3="-l$1 [$]$3"
if test -n "$2"; then
PHP_ADD_LIBPATH($2,$3)
fi
else
PHP_ADD_LIBRARY_DEFER_WITH_PATH($1,$2)
fi
])
])
dnl
dnl PHP_ADD_FRAMEWORK(framework [,before])
dnl
dnl add a (Darwin / Mac OS X) framework to the link
dnl line. if before is 1, the framework is added
dnl to the beginning of the line.
AC_DEFUN(PHP_ADD_FRAMEWORK, [
AC_PHP_ONCE(FRAMEWORK, $1, [
if test "$2"; then
PHP_FRAMEWORKS="-framework $1 $PHP_FRAMEWORKS"
else
PHP_FRAMEWORKS="$PHP_FRAMEWORKS -framework $1"
fi
])
])
dnl
dnl PHP_ADD_FRAMEWORKPATH(path [,before])
dnl
dnl add a (Darwin / Mac OS X) framework path to the link
dnl and include lines. default paths include (but are
dnl not limited to) /Local/Library/Frameworks and
dnl /System/Library/Frameworks, so these don't need
dnl to be specifically added. if before is 1, the
dnl framework path is added to the beginning of the
dnl relevant lines.
AC_DEFUN(PHP_ADD_FRAMEWORKPATH, [
PHP_EXPAND_PATH($1, ai_p)
AC_PHP_ONCE(FRAMEWORKPATH, $ai_p, [
if test "$2"; then
PHP_FRAMEWORKS="-F$ai_p $PHP_FRAMEWORKS"
else
PHP_FRAMEWORKS="$PHP_FRAMEWORKS -F$ai_p"
fi
])
])
dnl
dnl PHP_ADD_FRAMEWORK_WITH_PATH(framework, path)
dnl
dnl add a (Darwin / Mac OS X) framework path and the
dnl framework itself to the link and include lines.
AC_DEFUN(PHP_ADD_FRAMEWORK_WITH_PATH, [
PHP_ADD_FRAMEWORKPATH($2)
PHP_ADD_FRAMEWORK($1)
])
dnl
@@ -1223,7 +1152,7 @@ AC_DEFUN(PHP_NEW_EXTENSION,[
ext_builddir=[]PHP_EXT_BUILDDIR($1)
ext_srcdir=[]PHP_EXT_SRCDIR($1)
ifelse($5,,ac_extra=,[ac_extra=`echo "$5"|sed s#@ext_srcdir@#$ext_srcdir#g`])
ifelse($5,,ac_extra=,[ac_extra=`echo $ac_n "$5$ac_c"|sed s#@ext_srcdir@#$ext_srcdir#g`])
if test "$3" != "shared" && test "$3" != "yes" && test "$4" != "cli"; then
dnl ---------------------------------------------- Static module
@@ -1239,7 +1168,7 @@ dnl ---------------------------------------------- Static module
dnl ---------------------------------------------- Shared module
PHP_ADD_SOURCES_X(PHP_EXT_DIR($1),$2,$ac_extra,shared_objects_$1,yes)
PHP_SHARED_MODULE($1,shared_objects_$1, $ext_builddir)
AC_DEFINE_UNQUOTED([COMPILE_DL_]translit($1,a-z_-,A-Z__), 1, Whether to build $1 as dynamic module)
AC_DEFINE_UNQUOTED([COMPILE_DL_]translit($1,a-z-,A-Z_), 1, Whether to build $1 as dynamic module)
fi
fi
@@ -1452,26 +1381,6 @@ AC_DEFUN(PHP_CHECK_LIBRARY, [
])dnl
])
dnl
dnl PHP_CHECK_FRAMEWORK(framework, function [, action-found [, action-not-found ]])
dnl
dnl El cheapo wrapper for AC_CHECK_LIB
dnl
AC_DEFUN(PHP_CHECK_FRAMEWORK, [
save_old_LDFLAGS=$LDFLAGS
LDFLAGS="-framework $1 $LDFLAGS"
dnl supplying "c" to AC_CHECK_LIB is technically cheating, but
dnl rewriting AC_CHECK_LIB is overkill and this only affects
dnl the "checking.." output anyway.
AC_CHECK_LIB(c,[$2],[
LDFLAGS=$save_old_LDFLAGS
$3
],[
LDFLAGS=$save_old_LDFLAGS
$4
])
])
dnl
dnl PHP_SETUP_ICONV(shared-add [, action-found [, action-not-found]])
dnl
@@ -1547,80 +1456,3 @@ AC_DEFUN(PHP_SETUP_ICONV, [
ifelse([$3],[],,[else $3])
fi
])
AC_DEFUN(PHP_DEF_HAVE,[AC_DEFINE([HAVE_]translit($1,a-z_-,A-Z__), 1, [ ])])
dnl
dnl PHP_CHECK_FUNC_LIB(func, libs)
dnl This macro checks whether 'func' or '__func' exists
dnl in the specified library.
dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS.
dnl This should be called in the ACTION-IF-NOT-FOUND part of PHP_CHECK_FUNC
dnl
dnl autoconf undefines the builtin "shift" :-(
dnl If possible, we use the builtin shift anyway, otherwise we use
dnl the ubercool definition I have tested so far with FreeBSD/GNU m4
ifdef([builtin],[builtin(define, phpshift, [builtin(shift, $@)])],[
define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,])))])])
])
AC_DEFUN(PHP_CHECK_FUNC_LIB,[
ifelse($2,,:,[
unset ac_cv_lib_$2[]_$1
unset ac_cv_lib_$2[]___$1
unset found
AC_CHECK_LIB($2, $1, [found=yes], [
AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
])
if test "$found" = "yes"; then
PHP_ADD_LIBRARY($2)
PHP_DEF_HAVE($1)
PHP_DEF_HAVE(lib$2)
ac_cv_func_$1=yes
else
PHP_CHECK_FUNC_LIB($1,phpshift(phpshift($@)))
fi
])
])
dnl
dnl PHP_CHECK_FUNC(func, ...)
dnl This macro checks whether 'func' or '__func' exists
dnl in the default libraries and as a fall back in the specified library.
dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS.
dnl
AC_DEFUN(PHP_CHECK_FUNC,[
unset ac_cv_func_$1
unset ac_cv_func___$1
unset found
AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
case $found in
yes)
PHP_DEF_HAVE($1)
ac_cv_func_$1=yes
;;
ifelse($#,1,,[
*) PHP_CHECK_FUNC_LIB($@) ;;
])
esac
])
dnl
dnl PHP_AP_EXTRACT_VERSION(/path/httpd)
dnl This macro is used to get a comparable
dnl version for apache1/2.
dnl
AC_DEFUN(PHP_AP_EXTRACT_VERSION,[
ac_output=`$1 -v 2>&1`
ac_IFS=$IFS
IFS="- /.
"
set $ac_output
IFS=$ac_IFS
APACHE_VERSION=`expr [$]4 \* 1000000 + [$]5 \* 1000 + [$]6`
])
+8 -10
View File
@@ -20,27 +20,24 @@
# Makefile to generate build tools
#
ZENDDIR = Zend
SUBDIRS = $(ZENDDIR) TSRM
SUBDIRS = Zend TSRM
STAMP = buildmk.stamp
ALWAYS = generated_lists
all: $(STAMP) $(ALWAYS)
@$(MAKE) AMFLAGS=$(AMFLAGS) -s -f build/build2.mk
generated_lists:
@echo makefile_am_files = $(ZENDDIR)/Makefile.am \
@echo makefile_am_files = Zend/Makefile.am \
TSRM/Makefile.am > $@
@echo config_h_files = $(ZENDDIR)/acconfig.h TSRM/acconfig.h >> $@
@echo config_m4_files = $(ZENDDIR)/Zend.m4 TSRM/tsrm.m4 TSRM/threads.m4 \
$(ZENDDIR)/acinclude.m4 ext/*/config*.m4 sapi/*/config.m4 >> $@
@echo config_h_files = Zend/acconfig.h TSRM/acconfig.h >> $@
@echo config_m4_files = Zend/Zend.m4 TSRM/tsrm.m4 TSRM/threads.m4 \
Zend/acinclude.m4 ext/*/config*.m4 sapi/*/config.m4 >> $@
$(STAMP): build/buildcheck.sh
@build/buildcheck.sh $(STAMP)
@build/buildcheck.sh && touch $(STAMP)
snapshot:
distname='$(DISTNAME)'; \
@@ -67,7 +64,8 @@ snapshot:
cvsclean:
@for i in `find . -name .cvsignore`; do \
(cd `dirname $$i` 2>/dev/null && rm -rf `cat .cvsignore` *.o *.a .libs || true); \
(cd `dirname $$i` 2>/dev/null && rm -rf `cat .cvsignore` *.o *.a || true); \
done
@rm -f $(SUBDIRS) 2>/dev/null || true
.PHONY: $(ALWAYS) snapshot cvsclean
+1 -1
View File
@@ -39,7 +39,7 @@ acconfig.h: $(acconfig_h_SOURCES)
@echo rebuilding $@
cat $(acconfig_h_SOURCES) > $@
SUPPRESS_WARNINGS = (egrep -v '(AC_TRY_RUN called without default to allow cross compiling|AC_PROG_CXXCPP was called before AC_PROG_CXX|defined in acinclude.m4 but never used|AC_PROG_LEX invoked multiple times)'||true)
SUPPRESS_WARNINGS = (egrep -v '(AC_TRY_RUN called without default to allow cross compiling|AC_PROG_CXXCPP was called before AC_PROG_CXX|defined in acinclude.m4 but never used|AC_PROG_LEX invoked multiple times|AC_PROG_CPP was called before AC_PROG_CC)'||true)
$(config_h_in): configure acconfig.h
# explicitly remove target since autoheader does not seem to work
+3 -17
View File
@@ -16,13 +16,11 @@
# | Sascha Schumann <sascha@schumann.cx> |
# +----------------------------------------------------------------------+
#
# $Id: buildcheck.sh,v 1.19 2002-07-21 13:09:07 sas Exp $
# $Id: buildcheck.sh,v 1.16 2002-03-04 08:28:57 sas Exp $
#
echo "buildconf: checking installation..."
stamp=$1
# autoconf 2.13 or newer
ac_version=`autoconf --version 2>/dev/null|head -1|sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
if test -z "$ac_version"; then
@@ -42,15 +40,6 @@ echo "buildconf: autoconf version $ac_version (ok)"
fi
if test "$1" = "2" && test "$2" -ge "50"; then
echo "buildconf: Your version of autoconf likely contains buggy cache code."
echo " Running cvsclean for you."
echo " To avoid this, install autoconf-2.13 and automake-1.5."
./cvsclean
stamp=
fi
# automake 1.4 or newer
am_version=`automake --version 2>/dev/null|head -1|sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'`
am_version_clean=`echo $am_version|sed -e 's/-p[0-9]*$//'`
@@ -71,9 +60,8 @@ echo "buildconf: automake version $am_version (ok)"
fi
# libtool 1.4 or newer
# Prefer glibtool over libtool for Mac OS X compatibility
libtool=`which glibtool 2> /dev/null`
if test ! -f "$libtool"; then libtool=`which libtool`; fi
libtool=`which libtool`
if test ! -f "$libtool"; then libtool=`which glibtool`; fi
lt_pversion=`$libtool --version 2>/dev/null|sed -n -e 's/^[^0-9]*//' -e 1's/[- ].*//p'`
if test "$lt_pversion" = ""; then
echo "buildconf: libtool not found."
@@ -102,6 +90,4 @@ if test "$am_prefix" != "$lt_prefix"; then
echo " continuing anyway"
fi
test -n "$stamp" && touch $stamp
exit 0
+29 -17
View File
@@ -1,24 +1,36 @@
#!/bin/sh
# $Id$
while test $# -gt 0; do
if test "$1" = "--copy"; then
automake_flags=--copy
fi
supplied_flag=$1
if test "$1" = "--ZendEngine2"; then
ZENDDIR=ZendEngine2
echo "Using Zend Engine 2 code"
fi
shift
done
if test -z "$ZENDDIR"; then
ZENDDIR=Zend
echo "using default Zend directory"
if test "$supplied_flag" = "--copy"; then
automake_flags=--copy
fi
## build.mk does not check aclocal exit status yet
##
#mv aclocal.m4 aclocal.m4.old 2>/dev/null
#aclocal
#if test "$?" != "0" -a "$am_prefix" != "$lt_prefix"; then
# echo "buildconf: ERROR: aclocal failed, probably because automake and"
# echo " libtool are installed with different prefixes;"
# echo " automake is installed in $am_prefix, but libtool in $lt_prefix."
# echo " Please re-install automake and/or libtool with a common prefix"
# echo " and try again."
# exit 1
#fi
if test "$supplied_flag" = "--local"; then
subdirs='SUBDIRS='
else
subdirs=''
fi
rm -f generated_lists
${MAKE:-make} -s -f build/build.mk AMFLAGS="$automake_flags" ZENDDIR="$ZENDDIR"
case "`uname`" in
*BSD/OS*)
./build/bsd_makefile;;
esac
${MAKE:-make} -s -f build/build.mk AMFLAGS="$automake_flags"
+67 -84
View File
@@ -1,9 +1,9 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
timestamp='2002-05-29'
timestamp='2001-11-08'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@ timestamp='2002-05-29'
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Per Bothner <per@bothner.com>.
# Originally written by Per Bothner <bothner@cygnus.com>.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
@@ -98,7 +98,7 @@ trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int dummy(){}" > $dummy.c ;
for c in cc gcc c89 c99 ; do
for c in cc gcc c89 ; do
($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
if test $? = 0 ; then
CC_FOR_BUILD="$c"; break ;
@@ -135,23 +135,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
# Determine the machine/vendor (is the vendor relevant).
case "${UNAME_MACHINE}" in
amiga) machine=m68k-unknown ;;
arm32) machine=arm-unknown ;;
atari*) machine=m68k-atari ;;
sun3*) machine=m68k-sun ;;
mac68k) machine=m68k-apple ;;
macppc) machine=powerpc-apple ;;
hp3[0-9][05]) machine=m68k-hp ;;
ibmrt|romp-ibm) machine=romp-ibm ;;
sparc*) machine=`uname -p`-unknown ;;
*) machine=${UNAME_MACHINE}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
case "${UNAME_MACHINE}" in
i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep __ELF__ >/dev/null
@@ -291,9 +291,6 @@ EOF
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
exit 0 ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
exit 0 ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit 0 ;;
@@ -342,7 +339,7 @@ EOF
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
@@ -429,9 +426,6 @@ EOF
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit 0 ;;
Night_Hawk:*:*:PowerMAX_OS)
echo powerpc-harris-powermax
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit 0 ;;
@@ -514,7 +508,7 @@ EOF
fi
exit 0 ;;
*:AIX:*:[45])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
@@ -688,6 +682,9 @@ EOF
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit 0 ;;
CRAY*X-MP:*:*:*)
echo xmp-cray-unicos
exit 0 ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
@@ -709,6 +706,9 @@ EOF
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
exit 0 ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
@@ -736,9 +736,6 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit 0 ;;
x86:Interix*:3*)
echo i386-pc-interix3
exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -764,30 +761,16 @@ EOF
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
echo ${UNAME_MACHINE}-unknown-linux
exit 0 ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef mips
#undef mipsel
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=mipsel
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=mips
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
rm -f $dummy.c
test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
big) echo mips-unknown-linux-gnu && exit 0 ;;
little) echo mipsel-unknown-linux-gnu && exit 0 ;;
esac
;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
@@ -836,8 +819,7 @@ EOF
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
# problems with other programs or directories called `ld' in the path.
# Set LC_ALL=C to ensure ld outputs messages in English.
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
ld_supported_targets=`cd /; ld --help 2>&1 \
| sed -ne '/supported targets:/!d
s/[ ][ ]*/ /g
s/.*supported targets: *//
@@ -861,29 +843,32 @@ EOF
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <features.h>
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
LIBC=gnu
# else
LIBC=gnulibc1
# endif
# else
LIBC=gnulibc1
# endif
#else
#ifdef __INTEL_COMPILER
LIBC=gnu
#else
LIBC=gnuaout
#endif
#endif
cat >$dummy.c <<EOF
#include <features.h>
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
printf ("%s-pc-linux-gnu\n", argv[1]);
# else
printf ("%s-pc-linux-gnulibc1\n", argv[1]);
# endif
# else
printf ("%s-pc-linux-gnulibc1\n", argv[1]);
# endif
#else
printf ("%s-pc-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
rm -f $dummy.c $dummy
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
i*86:DYNIX/ptx:4*:*)
@@ -921,13 +906,13 @@ EOF
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
(/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
@@ -962,7 +947,7 @@ EOF
exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -1063,17 +1048,15 @@ EOF
echo `uname -p`-apple-darwin${UNAME_RELEASE}
exit 0 ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_PROCESSOR=i386
if test "${UNAME_MACHINE}" = "x86pc"; then
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
echo `uname -p`-${UNAME_MACHINE}-nto-qnx
exit 0 ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit 0 ;;
NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
NSR-[KW]:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit 0 ;;
*:NonStop-UX:*:*)
Vendored
+56 -82
View File
@@ -1,9 +1,9 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
timestamp='2002-05-28'
timestamp='2001-11-08'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -118,7 +118,7 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -227,32 +227,31 @@ case $basic_machine in
1750a | 580 \
| a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| d10v | d30v | dsp16xx \
| fr30 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| m32r | m68000 | m68k | m88k | mcore \
| mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
| mips16 | mips64 | mips64el | mips64orion | mips64orionel \
| mips64vr4100 | mips64vr4100el | mips64vr4300 \
| mips64vr4300el | mips64vr5000 | mips64vr5000el \
| mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
| mipsisa32 | mipsisa64 \
| mipsisa32 \
| mn10200 | mn10300 \
| ns16k | ns32k \
| openrisc | or32 \
| openrisc \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| sh | sh[34] | sh[34]eb | shbe | shle | sh64 \
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
| sh | sh[34] | sh[34]eb | shbe | shle \
| sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
| strongarm \
| tahoe | thumb | tic80 | tron \
| v850 | v850e \
| v850 \
| we32k \
| x86 | xscale | xstormy16 | xtensa \
| x86 | xscale | xstormy16 \
| z8k)
basic_machine=$basic_machine-unknown
;;
@@ -279,21 +278,20 @@ case $basic_machine in
580-* \
| a29k-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| alphapca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armv*-* \
| avr-* \
| bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c54x-* \
| clipper-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| clipper-* | cray2-* | cydra-* \
| d10v-* | d30v-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| m32r-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | mcore-* \
| mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
| mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
@@ -305,14 +303,13 @@ case $basic_machine in
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
| v850-* | v850e-* | vax-* \
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
| sparc-* | sparc64-* | sparc86x-* | sparclite-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \
| t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
| v850-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
| xtensa-* \
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* | xstormy16-* \
| ymp-* \
| z8k-*)
;;
@@ -377,10 +374,6 @@ case $basic_machine in
basic_machine=ns32k-sequent
os=-dynix
;;
c90)
basic_machine=c90-cray
os=-unicos
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
@@ -401,8 +394,16 @@ case $basic_machine in
basic_machine=c38-convex
os=-bsd
;;
cray | j90)
basic_machine=j90-cray
cray | ymp)
basic_machine=ymp-cray
os=-unicos
;;
cray2)
basic_machine=cray2-cray
os=-unicos
;;
[cjt]90)
basic_machine=${basic_machine}-cray
os=-unicos
;;
crds | unos)
@@ -417,14 +418,6 @@ case $basic_machine in
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
decsystem10* | dec10*)
basic_machine=pdp10-dec
os=-tops10
;;
decsystem20* | dec20*)
basic_machine=pdp10-dec
os=-tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
@@ -605,6 +598,14 @@ case $basic_machine in
basic_machine=m68k-atari
os=-mint
;;
mipsel*-linux*)
basic_machine=mipsel-unknown
os=-linux-gnu
;;
mips*-linux*)
basic_machine=mips-unknown
os=-linux-gnu
;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
@@ -619,10 +620,6 @@ case $basic_machine in
basic_machine=m68k-rom68k
os=-coff
;;
morphos)
basic_machine=powerpc-unknown
os=-morphos
;;
msdos)
basic_machine=i386-pc
os=-msdos
@@ -702,10 +699,6 @@ case $basic_machine in
basic_machine=hppa1.1-oki
os=-proelf
;;
or32 | or32-*)
basic_machine=or32-unknown
os=-coff
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
@@ -866,7 +859,7 @@ case $basic_machine in
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
sv1)
sv1)
basic_machine=sv1-cray
os=-unicos
;;
@@ -874,16 +867,8 @@ case $basic_machine in
basic_machine=i386-sequent
os=-dynix
;;
t3d)
basic_machine=alpha-cray
os=-unicos
;;
t3e)
basic_machine=alphaev5-cray
os=-unicos
;;
t90)
basic_machine=t90-cray
basic_machine=t3e-cray
os=-unicos
;;
tic54x | c54x*)
@@ -896,10 +881,6 @@ case $basic_machine in
tx39el)
basic_machine=mipstx39el-unknown
;;
toad1)
basic_machine=pdp10-xkl
os=-tops20
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
@@ -950,13 +931,13 @@ case $basic_machine in
basic_machine=i386-pc
os=-windows32-msvcrt
;;
xmp)
basic_machine=xmp-cray
os=-unicos
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
ymp)
basic_machine=ymp-cray
os=-unicos
;;
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
@@ -977,6 +958,13 @@ case $basic_machine in
op60c)
basic_machine=hppa1.1-oki
;;
mips)
if [ x$os = x-linux-gnu ]; then
basic_machine=mips-unknown
else
basic_machine=mips-mips
fi
;;
romp)
basic_machine=romp-ibm
;;
@@ -999,9 +987,6 @@ case $basic_machine in
sh3 | sh4 | sh3eb | sh4eb)
basic_machine=sh-unknown
;;
sh64)
basic_machine=sh64-unknown
;;
sparc | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
@@ -1089,8 +1074,7 @@ case $os in
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
| -os2* | -vos* | -palmos* | -uclinux*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1142,18 +1126,12 @@ case $os in
-acis*)
os=-aos
;;
-atheos*)
os=-atheos
;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
-nova*)
os=-rtmk-nova
;;
-ns2 )
os=-nextstep2
;;
@@ -1228,7 +1206,6 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
;;
@@ -1259,9 +1236,6 @@ case $basic_machine in
mips*-*)
os=-elf
;;
or32-*)
os=-coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
@@ -1409,7 +1383,7 @@ case $basic_machine in
-ptx*)
vendor=sequent
;;
-vxsim* | -vxworks* | -windiss*)
-vxsim* | -vxworks*)
vendor=wrs
;;
-aux*)
+132 -71
View File
@@ -82,6 +82,39 @@ if test -n "$with_apache" && test -n "$with_apxs"; then
fi
dnl Platform-specific compile settings.
dnl -------------------------------------------------------------------------
dnl if host_alias is empty, ac_cv_host_alias may still have the info
if test -z "$host_alias"; then
host_alias=$ac_cv_host_alias
fi
BSD_MAKEFILE=no
case $host_alias in
*solaris*)
CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
if test "${enable_libgcc+set}" != "set" && test "$GCC" = "yes"; then
enable_libgcc=yes
fi
;;
*dgux*)
CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR";;
*darwin*|*rhapsody*)
CPPFLAGS="$CPPFLAGS -no-cpp-precomp";;
*bsdi*)
BSD_MAKEFILE=yes;;
*beos*)
beos_threads=1
LIBS="$LIBS -lbe -lroot";;
*mips*)
CPPFLAGS="$CPPFLAGS -D_XPG_IV";;
esac
dnl Settings we want to make before the checks.
dnl -------------------------------------------------------------------------
@@ -96,6 +129,9 @@ T_ME=`$php_shtool echo -n -e %b`
dnl We want this one before the checks, so the checks can modify CFLAGS.
test -z "$CFLAGS" && auto_cflags=1
dnl AC_AIX needs to be before any macros that run the C compiler.
AC_AIX
abs_srcdir=`(cd $srcdir; pwd)`
abs_builddir=`pwd`
@@ -118,15 +154,35 @@ AC_PROG_CC_C_O
dnl Change to AC_PROG_CC_STDC when we start requiring a post-2.13 autoconf
dnl AC_PROG_CC_STDC
AC_PROG_CPP
AC_AIX
dnl AC_PROG_CXX
dnl AC_PROG_CXXCPP
dnl check for -R, etc. switch
PHP_RUNPATH_SWITCH
AC_MSG_CHECKING([whether compiler supports -R])
AC_CACHE_VAL(php_cv_cc_dashr,[
SAVE_LIBS=$LIBS
LIBS="-R /usr/lib $LIBS"
AC_TRY_LINK([], [], php_cv_cc_dashr=yes, php_cv_cc_dashr=no)
LIBS=$SAVE_LIBS
])
AC_MSG_RESULT([$php_cv_cc_dashr])
if test $php_cv_cc_dashr = "yes"; then
ld_runpath_switch=-R
else
AC_MSG_CHECKING([whether compiler supports -Wl,-rpath,])
AC_CACHE_VAL(php_cv_cc_rpath, [
SAVE_LIBS=$LIBS
LIBS="-Wl,-rpath,/usr/lib $LIBS"
AC_TRY_LINK([], [], php_cv_cc_rpath=yes, php_cv_cc_rpath=no)
LIBS=$SAVE_LIBS
])
AC_MSG_RESULT([$php_cv_cc_rpath])
if test $php_cv_cc_rpath = "yes"; then
ld_runpath_switch=-Wl,-rpath,
else
dnl something innocuous
ld_runpath_switch=-L
fi
fi
AC_PROG_RANLIB
AC_PROG_LN_S
AC_PROG_AWK
@@ -155,33 +211,6 @@ if test "$ac_cv_c_const" = "yes" ; then
fi
dnl Platform-specific compile settings.
dnl -------------------------------------------------------------------------
dnl if host_alias is empty, ac_cv_host_alias may still have the info
if test -z "$host_alias"; then
host_alias=$ac_cv_host_alias
fi
case $host_alias in
*solaris*)
CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
if test "${enable_libgcc+set}" != "set" && test "$GCC" = "yes"; then
enable_libgcc=yes
fi
;;
*dgux*)
CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR";;
*darwin*|*rhapsody*)
CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
php_multiple_shlib_versions_ok=yes;;
*beos*)
beos_threads=1
LIBS="$LIBS -lbe -lroot";;
*mips*)
CPPFLAGS="$CPPFLAGS -D_XPG_IV";;
esac
dnl Include Zend and TSRM configurations.
dnl -------------------------------------------------------------------------
@@ -268,29 +297,73 @@ test -d /usr/ucblib && PHP_ADD_LIBPATH(/usr/ucblib)
dnl First, library checks.
dnl -------------------------------------------------------------------------
AC_CHECK_LIB(socket, socket, [
PHP_ADD_LIBRARY(socket)
AC_DEFINE(HAVE_LIBSOCKET,1,[ ]) ], [
AC_CHECK_LIB(socket, htonl, [
PHP_ADD_LIBRARY(socket)
])])
dnl Some systems (OpenServer 5) dislike -lsocket -lnsl, so we try
dnl to avoid -lnsl checks, if we already have the functions which
dnl are usually in libnsl
dnl Also, uClibc will bark at linking with glibc's libnsl.
PHP_CHECK_FUNC(socket, socket)
PHP_CHECK_FUNC(htonl, socket)
PHP_CHECK_FUNC(gethostname, nsl)
PHP_CHECK_FUNC(gethostbyaddr, nsl)
PHP_CHECK_FUNC(yp_get_default_domain, nsl)
unset ac_cv_func_gethostname
unset ac_cv_func_yp_get_default_domain
AC_CHECK_FUNC(gethostname, [
php_no_nsl_checks=yes
],[
AC_CHECK_FUNC(yp_get_default_domain, [
php_no_nsl_checks=yes
])
])
unset ac_cv_func_gethostname
unset ac_cv_func_yp_get_default_domain
AC_CHECK_LIB(dl, dlopen, [PHP_ADD_LIBRARY(dl)])
if test "$php_no_nsl_checks" != "yes"; then
AC_CHECK_LIB(nsl, gethostname, [
PHP_ADD_LIBRARY(nsl)
AC_DEFINE(HAVE_LIBNSL,1,[ ]) ],[
AC_CHECK_LIB(nsl, gethostbyaddr, [
PHP_ADD_LIBRARY(nsl)
AC_DEFINE(HAVE_LIBNSL,1,[ ]) ], [])
])
fi
AC_CHECK_LIB(dl, dlopen,[PHP_ADD_LIBRARY(dl)])
dnl The sin may be in a library which need not be specifed
dnl as well as res_search resides in libsocket
AC_CHECK_LIB(m, sin)
dnl Check for resolver routines.
dnl Need to check for both res_search and __res_search
dnl in -lc, -lbind, -lresolv and -lsocket
PHP_CHECK_FUNC(res_search, resolv, bind, socket)
dnl Only include libbind if inet_aton is not found in
dnl libresolv.
AC_CHECK_LIB(resolv, inet_aton, [], [
AC_CHECK_LIB(bind, inet_aton, [], [
AC_CHECK_LIB(bind, __inet_aton)
])
])
dnl The res_search may be in libsocket as well, and if it is
dnl make sure to check for dn_skipname in libresolv, or if res_search
dnl is in neither of these libs, still check for dn_skipname in libresolv
AC_CHECK_LIB(socket, res_search, [
AC_CHECK_LIB(resolv, dn_skipname)
AC_CHECK_LIB(resolv, __dn_skipname)
LIBS="$LIBS -lsocket"
AC_DEFINE(HAVE_LIBSOCKET,1,[ ]) ], [
AC_CHECK_LIB(resolv, res_search, [
LIBS="$LIBS -lresolv"
AC_DEFINE(HAVE_LIBRESOLV,1,[ ])
], [
AC_CHECK_LIB(resolv, dn_skipname)
AC_CHECK_LIB(resolv, __dn_skipname)
])
])
dnl Check for inet_aton and dn_skipname
dnl in -lc, -lbind and -lresolv
PHP_CHECK_FUNC(inet_aton, resolv, bind)
PHP_CHECK_FUNC(dn_skipname, resolv, bind)
dnl Then headers.
@@ -307,11 +380,8 @@ else
fi
PHP_MISSING_FCLOSE_DECL
dnl QNX requires unix.h to allow functions in libunix to work properly
AC_CHECK_HEADERS([ \
AC_CHECK_HEADERS(
ApplicationServices/ApplicationServices.h \
sys/types.h \
sys/time.h \
netinet/in.h \
alloca.h \
arpa/inet.h \
arpa/nameser.h \
@@ -324,6 +394,7 @@ langinfo.h \
limits.h \
locale.h \
mach-o/dyld.h \
netinet/in.h \
pwd.h \
resolv.h \
signal.h \
@@ -343,26 +414,15 @@ sys/statfs.h \
sys/statvfs.h \
sys/vfs.h \
sys/sysexits.h \
sys/time.h \
sys/types.h \
sys/varargs.h \
sys/wait.h \
unistd.h \
unix.h \
utime.h \
sys/utsname.h \
],[],[],[
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif
])
)
@@ -430,6 +490,7 @@ flock \
gai_strerror \
gcvt \
getlogin \
gethostbyaddr \
getprotobyname \
getprotobynumber \
getservbyname \
@@ -437,6 +498,7 @@ getservbyport \
getrusage \
gettimeofday \
gmtime_r \
inet_aton \
isascii \
link \
localtime_r \
@@ -889,7 +951,7 @@ AC_SUBST(EXPANDED_SYSCONFDIR)
AC_SUBST(EXPANDED_LOCALSTATEDIR)
AC_SUBST(EXPANDED_PHP_CONFIG_FILE_PATH)
PHP_UTILIZE_RPATHS
PHP_BUILD_RPATH
PHP_REMOVE_USR_LIB(PHP_LDFLAGS)
PHP_REMOVE_USR_LIB(LDFLAGS)
@@ -898,9 +960,9 @@ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
PHP_BUILD_DATE=`date '+%Y-%m-%d'`
AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date])
PHP_UNAME=`uname -a | xargs`
PHP_UNAME=`uname -a`
AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
PHP_OS=`uname | xargs`
PHP_OS=`uname`
AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
if test "$disable_cli" != "1"; then
@@ -976,7 +1038,6 @@ PHP_SUBST(SHARED_LIBTOOL)
PHP_SUBST(TSRM_DIR)
PHP_SUBST(TSRM_LIB)
PHP_SUBST(WARNING_LEVEL)
PHP_SUBST(PHP_FRAMEWORKS)
PHP_SUBST_OLD(YACC)
PHP_SUBST_OLD(SHLIB_SUFFIX_NAME)
@@ -1047,7 +1108,7 @@ PHP_ADD_SOURCES(Zend, \
zend_ini.c zend_qsort.c zend_multibyte.c)
if test -r "$abs_srcdir/Zend/zend_objects.c"; then
PHP_ADD_SOURCES(Zend, zend_objects.c zend_object_handlers.c zend_objects_API.c zend_mm.c)
PHP_ADD_SOURCES(Zend, zend_objects.c zend_object_handlers.c zend_objects_API.c)
fi
dnl Selectively disable optimization due to high RAM usage during
@@ -1178,7 +1239,7 @@ cat <<X
X
fi
if test "$MYSQL_MODULE_TYPE" = "builtin" && test "$PHP_SAPI" != "cgi" && test "$PHP_SAPI" != "cli" && test "$php_multiple_shlib_versions_ok" != "yes"; then
if test "$MYSQL_MODULE_TYPE" = "builtin" && test "$PHP_SAPI" != "cgi" && test "$PHP_SAPI" != "cli"; then
cat <<X
+--------------------------------------------------------------------+
| *** WARNING *** |
+3 -3
View File
@@ -126,7 +126,7 @@ PHP_FUNCTION(aspell_suggest)
sc = (aspell *)zend_list_find(Z_LVAL_PP(scin), &type);
if(!sc)
{
php_error(E_WARNING, "%s(): %d is not an ASPELL result index", get_active_function_name(TSRMLS_C), Z_LVAL_PP(scin));
php_error(E_WARNING, "%d is not an ASPELL result index", Z_LVAL_PP(scin));
RETURN_FALSE;
}
@@ -160,7 +160,7 @@ PHP_FUNCTION(aspell_check)
sc= (aspell *) zend_list_find(Z_LVAL_PP(scin), &type);
if(!sc)
{
php_error(E_WARNING, "%s(): %d is not an ASPELL result index", get_active_function_name(TSRMLS_C), Z_LVAL_PP(scin));
php_error(E_WARNING, "%d is not an ASPELL result index", Z_LVAL_PP(scin));
RETURN_FALSE;
}
if (aspell_check(sc, Z_STRVAL_PP(word)))
@@ -192,7 +192,7 @@ PHP_FUNCTION(aspell_check_raw)
sc = (aspell *)zend_list_find(Z_LVAL_PP(scin), &type);
if(!sc)
{
php_error(E_WARNING, "%s(): %d is not an ASPELL result index", get_active_function_name(TSRMLS_C), Z_LVAL_PP(scin));
php_error(E_WARNING, "%d is not an ASPELL result index", Z_LVAL_PP(scin));
RETURN_FALSE;
}
if (aspell_check_raw(sc, Z_STRVAL_PP(word)))
+33 -14
View File
@@ -47,10 +47,10 @@ zend_module_entry bcmath_module_entry = {
STANDARD_MODULE_HEADER,
"bcmath",
bcmath_functions,
NULL,
NULL,
PHP_MINIT(bcmath),
PHP_MSHUTDOWN(bcmath),
PHP_RINIT(bcmath),
PHP_RSHUTDOWN(bcmath),
NULL,
PHP_MINFO(bcmath),
NO_VERSION_YET,
STANDARD_MODULE_PROPERTIES
@@ -65,9 +65,9 @@ static long bc_precision;
#endif
/* Storage used for special numbers. */
extern bc_num _zero_;
extern bc_num _one_;
extern bc_num _two_;
bc_num _zero_;
bc_num _one_;
bc_num _two_;
/* Make a copy of a number! Just increments the reference count! */
@@ -85,12 +85,34 @@ void init_num (bc_num *num)
}
PHP_RSHUTDOWN_FUNCTION(bcmath)
PHP_MINIT_FUNCTION(bcmath)
{
extern bc_num _zero_;
extern bc_num _one_;
extern bc_num _two_;
_zero_ = bc_new_num (1, 0);
_one_ = bc_new_num (1, 0);
_one_->n_value[0] = 1;
_two_ = bc_new_num (1, 0);
_two_->n_value[0] = 2;
persist_alloc(_zero_);
persist_alloc(_one_);
persist_alloc(_two_);
persist_alloc(_zero_->n_ptr);
persist_alloc(_one_->n_ptr);
persist_alloc(_two_->n_ptr);
return SUCCESS;
}
PHP_MSHUTDOWN_FUNCTION(bcmath)
{
bc_free_num(&_zero_);
bc_free_num(&_one_);
bc_free_num(&_two_);
return SUCCESS;
}
@@ -100,9 +122,6 @@ PHP_RINIT_FUNCTION(bcmath)
if (cfg_get_long("bcmath.scale", &bc_precision)==FAILURE) {
bc_precision=0;
}
bc_init_numbers();
return SUCCESS;
}
@@ -282,7 +301,7 @@ PHP_FUNCTION(bcdiv)
Z_TYPE_P(return_value) = IS_STRING;
break;
case -1: /* division by zero */
php_error(E_WARNING, "%s(): Division by zero", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Division by zero");
break;
}
bc_free_num(&first);
@@ -323,7 +342,7 @@ PHP_FUNCTION(bcmod)
Z_TYPE_P(return_value) = IS_STRING;
break;
case -1:
php_error(E_WARNING, "%s(): Division by zero", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Division by zero");
break;
}
bc_free_num(&first);
@@ -409,7 +428,7 @@ PHP_FUNCTION(bcsqrt)
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
Z_TYPE_P(return_value) = IS_STRING;
} else {
php_error(E_WARNING, "%s(): Square root of negative number", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Square root of negative number");
}
bc_free_num(&result);
return;
+2 -1
View File
@@ -26,8 +26,9 @@
extern zend_module_entry bcmath_module_entry;
#define phpext_bcmath_ptr &bcmath_module_entry
PHP_MINIT_FUNCTION(bcmath);
PHP_MSHUTDOWN_FUNCTION(bcmath);
PHP_RINIT_FUNCTION(bcmath);
PHP_RSHUTDOWN_FUNCTION(bcmath);
PHP_MINFO_FUNCTION(bcmath);
PHP_FUNCTION(bcadd);
+1 -1
View File
@@ -48,7 +48,7 @@ static void _cal_easter(INTERNAL_FUNCTION_PARAMETERS, int gm)
}
if (gm && (year<1970 || year>2037)) { /* out of range for timestamps */
php_error(E_WARNING, "%s(): This function is only valid for years between 1970 and 2037 inclusive", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "easter_date() is only valid for years between 1970 and 2037 inclusive");
RETURN_FALSE;
}
+1 -1
View File
@@ -199,7 +199,7 @@ PHP_FUNCTION(ccvs_new) /* cv_new() */
convert_to_string_ex(psess);
if (!Z_STRVAL_PP(psess)) {
php_error(E_WARNING, "%s(): Invalid session", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Invalid session to ccvs_new()");
RETURN_FALSE;
}
+36 -47
View File
@@ -576,7 +576,7 @@ PHP_FUNCTION(com_load)
}
} else {
if (!INI_INT("com.allow_dcom")) {
php_error(E_WARNING, "%s(): DCOM is disabled", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "DCOM is disabled");
RETURN_NULL();
} else {
flags = CLSCTX_REMOTE_SERVER;
@@ -621,7 +621,7 @@ PHP_FUNCTION(com_load)
if (FAILED(hr)) {
php_COM_destruct(obj TSRMLS_CC);
error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING, "%s(): Invalid ProgID, GUID string, or Moniker: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"Invalid ProgID, GUID string, or Moniker: %s", error_message);
LocalFree(error_message);
RETURN_NULL();
}
@@ -679,7 +679,7 @@ PHP_FUNCTION(com_load)
if (FAILED(hr)) {
error_message = php_COM_error_message(hr TSRMLS_CC);
clsid_str = php_string_from_clsid(&clsid TSRMLS_CC);
php_error(E_WARNING, "%s(): Unable to obtain IDispatch interface for CLSID %s: %s", get_active_function_name(TSRMLS_C), clsid_str, error_message);
php_error(E_WARNING,"Unable to obtain IDispatch interface for CLSID %s: %s",clsid_str,error_message);
LocalFree(error_message);
efree(clsid_str);
php_COM_destruct(obj TSRMLS_CC);
@@ -753,7 +753,7 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
break;
default:
php_error(E_WARNING, "%s(): Wrong argument count to IEnumVariant::Next()", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Wrong argument count to IEnumVariant::Next()");
return FAILURE;
}
@@ -771,7 +771,7 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
if (FAILED(hr = C_ENUMVARIANT_VT(obj)->Next(C_ENUMVARIANT(obj), count, pSA->pvData, &count))) {
char *error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING, "%s(): IEnumVariant::Next() failed: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"IEnumVariant::Next() failed: %s", error_message);
efree(error_message);
VariantClear(var_result);
return FAILURE;
@@ -781,7 +781,7 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
rgsabound[0].cElements = count;
if (FAILED(SafeArrayRedim(pSA, rgsabound))) {
char *error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING, "%s(): IEnumVariant::Next() failed: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"IEnumVariant::Next() failed: %s", error_message);
efree(error_message);
VariantClear(var_result);
return FAILURE;
@@ -819,7 +819,7 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
} else if (C_HASENUM(obj) && strstr(Z_STRVAL_P(function_name), "reset")) {
if (FAILED(hr = C_ENUMVARIANT_VT(obj)->Reset(C_ENUMVARIANT(obj)))) {
char *error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING,"%s(): IEnumVariant::Next() failed: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"IEnumVariant::Next() failed: %s", error_message);
efree(error_message);
return FAILURE;
}
@@ -838,12 +838,12 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
break;
default:
php_error(E_WARNING, "%s(): Wrong argument count to IEnumVariant::Skip()", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Wrong argument count to IEnumVariant::Skip()");
return FAILURE;
}
if (FAILED(hr = C_ENUMVARIANT_VT(obj)->Skip(C_ENUMVARIANT(obj), count))) {
char *error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING,"%s(): IEnumVariant::Next() failed: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"IEnumVariant::Next() failed: %s", error_message);
efree(error_message);
return FAILURE;
}
@@ -858,7 +858,7 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
if (FAILED(hr)) {
error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING, "%s(): Unable to lookup %s: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_P(function_name), error_message);
php_error(E_WARNING,"Unable to lookup %s: %s", Z_STRVAL_P(function_name), error_message);
LocalFree(error_message);
efree(funcname);
return FAILURE;
@@ -891,10 +891,10 @@ int do_COM_invoke(comval *obj, pval *function_name, VARIANT *var_result, pval **
if (FAILED(hr)) {
error_message = php_COM_error_message(hr TSRMLS_CC);
if (ErrString) {
php_error(E_WARNING, "%s(): Invoke() failed: %s %s", get_active_function_name(TSRMLS_C), error_message, ErrString);
php_error(E_WARNING,"Invoke() failed: %s %s", error_message, ErrString);
pefree(ErrString, 1);
} else {
php_error(E_WARNING, "%s(): Invoke() failed: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"Invoke() failed: %s", error_message);
}
LocalFree(error_message);
return FAILURE;
@@ -930,7 +930,7 @@ PHP_FUNCTION(com_invoke)
convert_to_long(object);
obj = (comval *)zend_list_find(Z_LVAL_P(object), &type);
if (!obj || (type != IS_COM)) {
php_error(E_WARNING,"%s(): %d is not a COM object handler", get_active_function_name(TSRMLS_C), Z_STRVAL_P(function_name));
php_error(E_WARNING,"%d is not a COM object handler", Z_STRVAL_P(function_name));
RETURN_NULL();
}
@@ -974,7 +974,7 @@ PHP_FUNCTION(com_release)
convert_to_long_ex(&object);
obj = (comval *)zend_list_find(Z_LVAL_P(object), &type);
if (!obj || (type != IS_COM)) {
php_error(E_WARNING, "%s(): %d is not a COM object handler", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"%d is not a COM object handler");
RETURN_FALSE;
}
@@ -1005,7 +1005,7 @@ PHP_FUNCTION(com_addref)
obj = (comval *)zend_list_find(Z_LVAL_P(object), &type);
if (!obj || (type != IS_COM))
{
php_error(E_WARNING, "%s(): %d is not a COM object handler", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"%d is not a COM object handler");
RETURN_FALSE;
}
@@ -1500,7 +1500,7 @@ static int do_COM_propget(VARIANT *var_result, comval *obj, pval *arg_property,
if (FAILED(hr)) {
error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING, "%s(): Unable to lookup %s: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_P(arg_property), error_message);
php_error(E_WARNING,"Unable to lookup %s: %s", Z_STRVAL_P(arg_property), error_message);
LocalFree(error_message);
efree(propname);
if (cleanup) {
@@ -1517,10 +1517,10 @@ static int do_COM_propget(VARIANT *var_result, comval *obj, pval *arg_property,
if (FAILED(hr)) {
error_message = php_COM_error_message(hr TSRMLS_CC);
if (ErrString) {
php_error(E_WARNING, "%s(): PropGet() failed: %s %s", get_active_function_name(TSRMLS_C), error_message, ErrString);
php_error(E_WARNING,"PropGet() failed: %s %s", error_message, ErrString);
pefree(ErrString, 1);
} else {
php_error(E_WARNING, "%s(): PropGet() failed: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"PropGet() failed: %s", error_message);
}
LocalFree(error_message);
efree(propname);
@@ -1559,19 +1559,14 @@ static void do_COM_propput(pval *return_value, comval *obj, pval *arg_property,
if (FAILED(hr)) {
error_message = php_COM_error_message(hr TSRMLS_CC);
php_error(E_WARNING, "%s(): Unable to lookup %s: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_P(arg_property), error_message);
php_error(E_WARNING,"Unable to lookup %s: %s", Z_STRVAL_P(arg_property), error_message);
LocalFree(error_message);
efree(propname);
FREE_VARIANT(var_result);
FREE_VARIANT(new_value);
if (return_value) {
RETVAL_NULL();
}
return;
RETURN_NULL();
}
php_pval_to_variant(value, new_value, codepage TSRMLS_CC);
@@ -1585,10 +1580,10 @@ static void do_COM_propput(pval *return_value, comval *obj, pval *arg_property,
if (FAILED(hr)) {
error_message = php_COM_error_message(hr TSRMLS_CC);
if (ErrString) {
php_error(E_WARNING, "%s(): PropPut() failed: %s %s", get_active_function_name(TSRMLS_C), error_message, ErrString);
php_error(E_WARNING,"PropPut() failed: %s %s", error_message, ErrString);
pefree(ErrString, 1);
} else {
php_error(E_WARNING, "%s(): PropPut() failed: %s", get_active_function_name(TSRMLS_C), error_message);
php_error(E_WARNING,"PropPut() failed: %s", error_message);
}
LocalFree(error_message);
@@ -1597,11 +1592,7 @@ static void do_COM_propput(pval *return_value, comval *obj, pval *arg_property,
efree(new_value);
efree(propname);
if (return_value) {
RETVAL_NULL();
}
return;
RETURN_NULL();
}
if (return_value) {
@@ -1646,7 +1637,7 @@ PHP_FUNCTION(com_propget)
convert_to_long(arg_comval);
obj = (comval *)zend_list_find(Z_LVAL_P(arg_comval), &type);
if (!obj || (type != IS_COM)) {
php_error(E_WARNING, "%s(): %d is not a COM object handler", get_active_function_name(TSRMLS_C), Z_LVAL_P(arg_comval));
php_error(E_WARNING,"%d is not a COM object handler", Z_LVAL_P(arg_comval));
RETURN_NULL();
}
convert_to_string_ex(&arg_property);
@@ -1680,7 +1671,7 @@ PHP_FUNCTION(com_propput)
/* obtain comval interface */
obj = (comval *)zend_list_find(Z_LVAL_P(arg_comval), &type);
if (!obj || (type != IS_COM)) {
php_error(E_WARNING, "%s(): %d is not a COM object handler", get_active_function_name(TSRMLS_C), Z_LVAL_P(arg_comval));
php_error(E_WARNING,"%d is not a COM object handler", Z_LVAL_P(arg_comval));
RETURN_NULL();
}
convert_to_string_ex(&arg_property);
@@ -2203,7 +2194,7 @@ PHPAPI int php_COM_load_typelib(ITypeLib *TypeLib, int mode TSRMLS_DC)
while (SUCCEEDED(TypeInfo->lpVtbl->GetVarDesc(TypeInfo, j, &pVarDesc))) {
BSTR bstr_ids;
zend_constant c;
zval exists, results, value;
zval exists, results;
char *const_name;
TypeInfo->lpVtbl->GetNames(TypeInfo, pVarDesc->memid, &bstr_ids, 1, &NameCount);
@@ -2218,27 +2209,25 @@ PHPAPI int php_COM_load_typelib(ITypeLib *TypeLib, int mode TSRMLS_DC)
SysFreeString(bstr_ids);
/* Before registering the contsnt, let's see if we can find it */
if (zend_get_constant(c.name, c.name_len - 1, &exists TSRMLS_CC)) {
if (zend_get_constant(c.name, c.name_len-1, &exists TSRMLS_CC)) {
/* Oops, it already exists. No problem if it is defined as the same value */
/* Check to see if they are the same */
if (!compare_function(&results, &c.value, &exists TSRMLS_CC) && INI_INT("com.autoregister_verbose")) {
php_error(E_WARNING, "%s(): Type library value %s is already defined and has a different value", get_active_function_name(TSRMLS_C), c.name);
php_error(E_WARNING,"Type library value %s is already defined and has a different value", c.name);
}
free(c.name);
j++;
continue;
}
php_variant_to_pval(pVarDesc->lpvarValue, &value, codepage TSRMLS_CC);
/* we only import enumerations (=int) */
if (Z_TYPE(value) == IS_LONG) {
c.flags = mode;
c.value.type = IS_LONG;
c.value.value.lval = Z_LVAL(value);
c.module_number = 0; /* the module number is not available here */
zend_register_constant(&c TSRMLS_CC);
php_variant_to_pval(pVarDesc->lpvarValue, &c.value, codepage TSRMLS_CC);
if (mode & CONST_PERSISTENT) {
zval_persist(&c.value TSRMLS_CC);
mode |= CONST_EFREE_PERSISTENT;
}
c.flags = mode;
zend_register_constant(&c TSRMLS_CC);
j++;
}
@@ -2268,7 +2257,7 @@ PHP_FUNCTION(com_isenum)
zend_hash_index_find(Z_OBJPROP_P(object), 0, (void **) &comval_handle);
obj = (comval *) zend_list_find(Z_LVAL_PP(comval_handle), &type);
if (!obj || (type != IS_COM)) {
php_error(E_WARNING,"%s(): %s is not a COM object handler", get_active_function_name(TSRMLS_C), "");
php_error(E_WARNING,"%s is not a COM object handler", "");
RETURN_FALSE;
}
+2 -3
View File
@@ -149,7 +149,7 @@ static void php_VARIANT_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend
ALLOC_ZVAL(object_handle);
*object_handle = *return_value;
zval_copy_ctor(object_handle);
pval_copy_constructor(object_handle);
INIT_PZVAL(object_handle);
zend_hash_index_update(Z_OBJPROP_P(object), 0, &object_handle, sizeof(pval *), NULL);
zval_dtor(&function_name->element);
@@ -195,11 +195,10 @@ static pval php_VARIANT_get_property_handler(zend_property_reference *property_r
php_error(E_WARNING, "Unknown method.");
break;
zval_dtor(&overloaded_property->element);
}
}
zval_dtor(&overloaded_property->element);
return result;
}
+81 -81
View File
@@ -262,7 +262,7 @@ PHP_FUNCTION(cpdf_set_creator)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if (!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d (type=%d)", get_active_function_name(TSRMLS_C), id, type);
php_error(E_WARNING, "Unable to find identifier %d (type=%d)", id, type);
RETURN_FALSE;
}
@@ -289,7 +289,7 @@ PHP_FUNCTION(cpdf_set_title)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if (!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d (type=%d)", get_active_function_name(TSRMLS_C), id, type);
php_error(E_WARNING, "Unable to find identifier %d (type=%d)", id, type);
RETURN_FALSE;
}
@@ -317,7 +317,7 @@ PHP_FUNCTION(cpdf_set_subject)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if (!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d (type=%d)", get_active_function_name(TSRMLS_C), id, type);
php_error(E_WARNING, "Unable to find identifier %d (type=%d)", id, type);
RETURN_FALSE;
}
@@ -344,7 +344,7 @@ PHP_FUNCTION(cpdf_set_keywords)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if (!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d (type=%d)", get_active_function_name(TSRMLS_C), id, type);
php_error(E_WARNING, "Unable to find identifier %d (type=%d)", id, type);
RETURN_FALSE;
}
@@ -377,7 +377,7 @@ PHP_FUNCTION(cpdf_set_viewer_preferences)
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -471,7 +471,7 @@ PHP_FUNCTION(cpdf_open)
convert_to_string(arg2);
#if APACHE
if(strcmp(Z_STRVAL_P(arg2), "-") == 0)
php_error(E_WARNING, "%s(): Writing to stdout as described in the ClibPDF manual is not possible if php is used as an Apache module. Write to a memory stream and use cpdf_output_buffer() instead.", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Writing to stdout as described in the ClibPDF manual is not possible if php is used as an Apache module. Write to a memory stream and use cpdf_output_buffer() instead.");
#endif
cpdf_setOutputFilename(cpdf, Z_STRVAL_P(arg2));
}
@@ -498,7 +498,7 @@ PHP_FUNCTION(cpdf_close)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
zend_list_delete(id);
@@ -536,7 +536,7 @@ PHP_FUNCTION(cpdf_page_init)
width = Z_LVAL_P(argv[4]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -571,7 +571,7 @@ PHP_FUNCTION(cpdf_finalize_page)
pagenr=Z_LVAL_P(arg2);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -599,7 +599,7 @@ PHP_FUNCTION(cpdf_set_current_page)
pagenr=Z_LVAL_P(arg2);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -625,7 +625,7 @@ PHP_FUNCTION(cpdf_begin_text)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -651,7 +651,7 @@ PHP_FUNCTION(cpdf_end_text)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -678,7 +678,7 @@ PHP_FUNCTION(cpdf_show)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -709,7 +709,7 @@ PHP_FUNCTION(cpdf_show_xy)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -743,7 +743,7 @@ PHP_FUNCTION(cpdf_continue_text)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -770,7 +770,7 @@ PHP_FUNCTION(cpdf_text)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -862,12 +862,12 @@ PHP_FUNCTION(cpdf_set_font)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
/* if(Z_LVAL_P(arg4) > 6) {
php_error(E_WARNING, "%s(): Font encoding set to 5", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Font encoding set to 5");
Z_LVAL_P(arg4) = 5;
}
*/
@@ -895,7 +895,7 @@ PHP_FUNCTION(cpdf_set_font_directories)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -922,7 +922,7 @@ PHP_FUNCTION(cpdf_set_font_map_file)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -949,7 +949,7 @@ PHP_FUNCTION(cpdf_set_leading)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -976,7 +976,7 @@ PHP_FUNCTION(cpdf_set_text_rendering)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1003,7 +1003,7 @@ PHP_FUNCTION(cpdf_set_horiz_scaling)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1030,7 +1030,7 @@ PHP_FUNCTION(cpdf_set_text_rise)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1061,12 +1061,12 @@ PHP_FUNCTION(cpdf_set_text_matrix)
matrix=Z_ARRVAL_P(arg2);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
if(zend_hash_num_elements(matrix) != 6) {
php_error(E_WARNING, "%s(): Text matrix must have 6 elements", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Text matrix must have 6 elements");
RETURN_FALSE;
}
@@ -1113,7 +1113,7 @@ PHP_FUNCTION(cpdf_set_text_pos)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1147,7 +1147,7 @@ PHP_FUNCTION(cpdf_rotate_text)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1174,7 +1174,7 @@ PHP_FUNCTION(cpdf_set_char_spacing)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1201,7 +1201,7 @@ PHP_FUNCTION(cpdf_set_word_spacing)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1229,7 +1229,7 @@ PHP_FUNCTION(cpdf_stringwidth)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1255,7 +1255,7 @@ PHP_FUNCTION(cpdf_save)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1281,7 +1281,7 @@ PHP_FUNCTION(cpdf_restore)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1309,7 +1309,7 @@ PHP_FUNCTION(cpdf_translate)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1337,7 +1337,7 @@ PHP_FUNCTION(cpdf_scale)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1364,7 +1364,7 @@ PHP_FUNCTION(cpdf_rotate)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1391,12 +1391,12 @@ PHP_FUNCTION(cpdf_setflat)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
if((Z_LVAL_P(arg2) > 100) && (Z_LVAL_P(arg2) < 0)) {
php_error(E_WARNING, "%s(): Parameter has to between 0 and 100", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Parameter of pdf_setflat() has to between 0 and 100");
RETURN_FALSE;
}
@@ -1423,12 +1423,12 @@ PHP_FUNCTION(cpdf_setlinejoin)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
if((Z_LVAL_P(arg2) > 2) && (Z_LVAL_P(arg2) < 0)) {
php_error(E_WARNING, "%s(): Parameter has to between 0 and 2", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Parameter of pdf_setlinejoin() has to between 0 and 2");
RETURN_FALSE;
}
@@ -1455,12 +1455,12 @@ PHP_FUNCTION(cpdf_setlinecap)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
if((Z_LVAL_P(arg2) > 2) && (Z_LVAL_P(arg2) < 0)) {
php_error(E_WARNING, "%s(): Parameter has to be > 0 and =< 2", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Parameter of pdf_setlinecap() has to be > 0 and =< 2");
RETURN_FALSE;
}
@@ -1487,12 +1487,12 @@ PHP_FUNCTION(cpdf_setmiterlimit)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
if(Z_DVAL_P(arg2) < 1) {
php_error(E_WARNING, "%s(): Parameter has to be >= 1", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Parameter of pdf_setmiterlimit() has to be >= 1");
RETURN_FALSE;
}
@@ -1519,7 +1519,7 @@ PHP_FUNCTION(cpdf_setlinewidth)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1549,7 +1549,7 @@ PHP_FUNCTION(cpdf_setdash)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1581,7 +1581,7 @@ PHP_FUNCTION(cpdf_moveto)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1618,7 +1618,7 @@ PHP_FUNCTION(cpdf_rmoveto)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1659,7 +1659,7 @@ PHP_FUNCTION(cpdf_curveto)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1706,7 +1706,7 @@ PHP_FUNCTION(cpdf_lineto)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1743,7 +1743,7 @@ PHP_FUNCTION(cpdf_rlineto)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1781,7 +1781,7 @@ PHP_FUNCTION(cpdf_circle)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1821,7 +1821,7 @@ PHP_FUNCTION(cpdf_arc)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1860,7 +1860,7 @@ PHP_FUNCTION(cpdf_rect)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1899,7 +1899,7 @@ PHP_FUNCTION(cpdf_newpath)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1925,7 +1925,7 @@ PHP_FUNCTION(cpdf_closepath)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1951,7 +1951,7 @@ PHP_FUNCTION(cpdf_closepath_stroke)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -1978,7 +1978,7 @@ PHP_FUNCTION(cpdf_stroke)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2004,7 +2004,7 @@ PHP_FUNCTION(cpdf_fill)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2030,7 +2030,7 @@ PHP_FUNCTION(cpdf_fill_stroke)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2057,7 +2057,7 @@ PHP_FUNCTION(cpdf_closepath_fill_stroke)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2085,7 +2085,7 @@ PHP_FUNCTION(cpdf_clip)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2112,7 +2112,7 @@ PHP_FUNCTION(cpdf_setgray_fill)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2139,7 +2139,7 @@ PHP_FUNCTION(cpdf_setgray_stroke)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2166,7 +2166,7 @@ PHP_FUNCTION(cpdf_setgray)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2195,7 +2195,7 @@ PHP_FUNCTION(cpdf_setrgbcolor_fill)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2224,7 +2224,7 @@ PHP_FUNCTION(cpdf_setrgbcolor_stroke)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2253,7 +2253,7 @@ PHP_FUNCTION(cpdf_setrgbcolor)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2284,7 +2284,7 @@ PHP_FUNCTION(cpdf_set_page_animation)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2311,7 +2311,7 @@ PHP_FUNCTION(cpdf_finalize)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2338,7 +2338,7 @@ PHP_FUNCTION(cpdf_output_buffer)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2367,13 +2367,13 @@ PHP_FUNCTION(cpdf_save_to_file)
id=Z_LVAL_P(arg1);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
#if APACHE
if(strcmp(Z_STRVAL_P(arg2), "-") == 0)
php_error(E_WARNING, "%s(): Writing to stdout as described in the ClibPDF manual is not possible if php is used as an Apache module. Use cpdf_output_buffer() instead.", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Writing to stdout as described in the ClibPDF manual is not possible if php is used as an Apache module. Use cpdf_output_buffer() instead.");
#endif
cpdf_savePDFmemoryStreamToFile(pdf, Z_STRVAL_P(arg2));
@@ -2414,7 +2414,7 @@ PHP_FUNCTION(cpdf_import_jpeg)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2478,7 +2478,7 @@ PHP_FUNCTION(cpdf_place_inline_image)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2488,11 +2488,11 @@ PHP_FUNCTION(cpdf_place_inline_image)
ZEND_GET_RESOURCE_TYPE_ID(CPDF_GLOBAL(le_gd), "gd");
if(!CPDF_GLOBAL(le_gd))
{
php_error(E_ERROR, "%s(): Unable to find handle for GD image stream. Please check the GD extension is loaded.", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Unable to find handle for GD image stream. Please check the GD extension is loaded.");
}
if (!im || type != CPDF_GLOBAL(le_gd)) {
php_error(E_WARNING, "%s(): Unable to find image pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "cpdf: Unable to find image pointer");
RETURN_FALSE;
}
@@ -2567,7 +2567,7 @@ PHP_FUNCTION(cpdf_add_annotation)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2626,7 +2626,7 @@ PHP_FUNCTION(cpdf_set_action_url)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2683,7 +2683,7 @@ PHP_FUNCTION(cpdf_add_outline)
id=Z_LVAL_P(argv[0]);
pdf = zend_list_find(id, &type);
if(!pdf || type!=CPDF_GLOBAL(le_cpdf)) {
php_error(E_WARNING, "%s(): Unable to find identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find identifier %d", id);
RETURN_FALSE;
}
@@ -2691,7 +2691,7 @@ PHP_FUNCTION(cpdf_add_outline)
lastoutline = zend_list_find(oid, &type);
if(!lastoutline || type!=CPDF_GLOBAL(le_outline)) {
lastoutline = NULL;
/* php_error(E_WARNING, "%s(): Unable to find last outline entry %d", get_active_function_name(TSRMLS_C), id);
/* php_error(E_WARNING, "Unable to find last outline entry %d", id);
RETURN_FALSE; */
}
+259 -284
View File
@@ -106,8 +106,6 @@ PHP_MINIT_FUNCTION(curl)
le_curl = zend_register_list_destructors_ex(_php_curl_close, NULL, "curl", module_number);
/* Constants for curl_setopt() */
REGISTER_CURL_CONSTANT(CURLOPT_DNS_USE_GLOBAL_CACHE);
REGISTER_CURL_CONSTANT(CURLOPT_DNS_CACHE_TIMEOUT);
REGISTER_CURL_CONSTANT(CURLOPT_PORT);
REGISTER_CURL_CONSTANT(CURLOPT_FILE);
REGISTER_CURL_CONSTANT(CURLOPT_INFILE);
@@ -320,8 +318,7 @@ static size_t curl_write(char *data, size_t size, size_t nmemb, void *ctx)
t->func,
retval, 2, argv TSRMLS_CC);
if (error == FAILURE) {
php_error(E_WARNING, "%s(): Couldn't call the CURLOPT_WRITEFUNCTION",
get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Couldn't call the CURLOPT_WRITEFUNCTION");
length = -1;
}
else {
@@ -375,8 +372,7 @@ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx)
t->func,
retval, 3, argv TSRMLS_CC);
if (error == FAILURE) {
php_error(E_WARNING, "%s(): Cannot call the CURLOPT_READFUNCTION",
get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Cannot call the CURLOPT_READFUNCTION");
length = -1;
}
else {
@@ -406,50 +402,49 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx
TSRMLS_FETCH();
switch (t->method) {
case PHP_CURL_STDOUT:
/* Handle special case write when we're returning the entire transfer
*/
if (ch->handlers->write->method == PHP_CURL_RETURN)
smart_str_appendl(&ch->handlers->write->buf, data, (int) length);
else
PUTS(data);
break;
case PHP_CURL_FILE:
return fwrite(data, size, nmemb, t->fp);
case PHP_CURL_USER: {
zval *argv[2];
zval *retval;
int error;
TSRMLS_FETCH();
case PHP_CURL_STDOUT:
/* Handle special case write when we're returning the entire transfer
*/
if (ch->handlers->write->method == PHP_CURL_RETURN)
smart_str_appendl(&ch->handlers->write->buf, data, (int) length);
else
PUTS(data);
break;
case PHP_CURL_FILE:
return fwrite(data, size, nmemb, t->fp);
case PHP_CURL_USER: {
zval *argv[2];
zval *retval;
int error;
TSRMLS_FETCH();
MAKE_STD_ZVAL(argv[0]);
MAKE_STD_ZVAL(argv[1]);
MAKE_STD_ZVAL(retval);
MAKE_STD_ZVAL(argv[0]);
MAKE_STD_ZVAL(argv[1]);
MAKE_STD_ZVAL(retval);
ZVAL_RESOURCE(argv[0], ch->id);
zend_list_addref(ch->id);
ZVAL_STRINGL(argv[1], data, length, 1);
ZVAL_RESOURCE(argv[0], ch->id);
zend_list_addref(ch->id);
ZVAL_STRINGL(argv[1], data, length, 1);
error = call_user_function(EG(function_table),
NULL,
t->func,
retval, 2, argv TSRMLS_CC);
if (error == FAILURE) {
php_error(E_WARNING, "%s(): Couldn't call the CURLOPT_HEADERFUNCTION",
get_active_function_name(TSRMLS_C));
length = -1;
}
else {
length = Z_LVAL_P(retval);
}
zval_ptr_dtor(&argv[0]);
zval_ptr_dtor(&argv[1]);
zval_ptr_dtor(&retval);
break;
error = call_user_function(EG(function_table),
NULL,
t->func,
retval, 2, argv TSRMLS_CC);
if (error == FAILURE) {
php_error(E_WARNING, "Couldn't call the CURLOPT_HEADERFUNCTION");
length = -1;
}
case PHP_CURL_IGNORE:
return length;
else {
length = Z_LVAL_P(retval);
}
zval_ptr_dtor(&argv[0]);
zval_ptr_dtor(&argv[1]);
zval_ptr_dtor(&retval);
break;
}
case PHP_CURL_IGNORE:
return length;
}
return length;
}
/* }}} */
@@ -480,13 +475,12 @@ static size_t curl_passwd(void *ctx, char *prompt, char *buf, int buflen)
func,
retval, 2, argv TSRMLS_CC);
if (error == FAILURE) {
php_error(E_WARNING, "%s(): Couldn't call the CURLOPT_PASSWDFUNCTION", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Couldn't call the CURLOPT_PASSWDFUNCTION");
ret = -1;
}
else {
if (Z_STRLEN_P(retval) > buflen) {
php_error(E_WARNING, "%s(): Returned password is too long for libcurl to handle",
get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Returned password is too long for libcurl to handle");
ret = -1;
}
else {
@@ -576,7 +570,7 @@ PHP_FUNCTION(curl_init)
ch->cp = curl_easy_init();
if (! ch->cp) {
php_error(E_WARNING, "%s(): Cannot initialize a new cURL handle", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Cannot initialize a new cURL handle");
RETURN_FALSE;
}
@@ -594,9 +588,6 @@ PHP_FUNCTION(curl_init)
curl_easy_setopt(ch->cp, CURLOPT_INFILE, (void *) ch);
curl_easy_setopt(ch->cp, CURLOPT_HEADERFUNCTION, curl_write_header);
curl_easy_setopt(ch->cp, CURLOPT_WRITEHEADER, (void *) ch);
curl_easy_setopt(ch->cp, CURLOPT_DNS_USE_GLOBAL_CACHE, 1);
curl_easy_setopt(ch->cp, CURLOPT_DNS_CACHE_TIMEOUT, 120);
if (argc > 0) {
char *urlcopy;
convert_to_string_ex(url);
@@ -616,12 +607,12 @@ PHP_FUNCTION(curl_init)
PHP_FUNCTION(curl_setopt)
{
zval **zid,
**zoption,
**zvalue;
**zoption,
**zvalue;
php_curl *ch;
CURLcode error=CURLE_OK;
CURLcode error;
int option;
if (ZEND_NUM_ARGS() != 3 ||
zend_get_parameters_ex(3, &zid, &zoption, &zvalue) == FAILURE) {
WRONG_PARAM_COUNT;
@@ -631,255 +622,239 @@ PHP_FUNCTION(curl_setopt)
option = Z_LVAL_PP(zoption);
switch (option) {
case CURLOPT_INFILESIZE:
case CURLOPT_VERBOSE:
case CURLOPT_HEADER:
case CURLOPT_NOPROGRESS:
case CURLOPT_NOBODY:
case CURLOPT_FAILONERROR:
case CURLOPT_UPLOAD:
case CURLOPT_POST:
case CURLOPT_FTPLISTONLY:
case CURLOPT_FTPAPPEND:
case CURLOPT_NETRC:
case CURLOPT_FOLLOWLOCATION:
case CURLOPT_PUT:
case CURLOPT_MUTE:
case CURLOPT_TIMEOUT:
case CURLOPT_LOW_SPEED_LIMIT:
case CURLOPT_SSLVERSION:
case CURLOPT_LOW_SPEED_TIME:
case CURLOPT_RESUME_FROM:
case CURLOPT_TIMEVALUE:
case CURLOPT_TIMECONDITION:
case CURLOPT_TRANSFERTEXT:
case CURLOPT_HTTPPROXYTUNNEL:
case CURLOPT_FILETIME:
case CURLOPT_MAXREDIRS:
case CURLOPT_MAXCONNECTS:
case CURLOPT_CLOSEPOLICY:
case CURLOPT_FRESH_CONNECT:
case CURLOPT_FORBID_REUSE:
case CURLOPT_CONNECTTIMEOUT:
case CURLOPT_SSL_VERIFYHOST:
case CURLOPT_SSL_VERIFYPEER:
case CURLOPT_DNS_USE_GLOBAL_CACHE:
convert_to_long_ex(zvalue);
error = curl_easy_setopt(ch->cp, option, Z_LVAL_PP(zvalue));
break;
case CURLOPT_URL:
case CURLOPT_PROXY:
case CURLOPT_USERPWD:
case CURLOPT_PROXYUSERPWD:
case CURLOPT_RANGE:
case CURLOPT_CUSTOMREQUEST:
case CURLOPT_USERAGENT:
case CURLOPT_FTPPORT:
case CURLOPT_COOKIE:
case CURLOPT_SSLCERT:
case CURLOPT_SSLCERTPASSWD:
case CURLOPT_COOKIEFILE:
case CURLOPT_REFERER:
case CURLOPT_INTERFACE:
case CURLOPT_KRB4LEVEL:
case CURLOPT_RANDOM_FILE:
case CURLOPT_EGDSOCKET:
case CURLOPT_CAINFO:
case CURLOPT_COOKIEJAR:
case CURLOPT_SSL_CIPHER_LIST: {
char *copystr = NULL;
case CURLOPT_INFILESIZE:
case CURLOPT_VERBOSE:
case CURLOPT_HEADER:
case CURLOPT_NOPROGRESS:
case CURLOPT_NOBODY:
case CURLOPT_FAILONERROR:
case CURLOPT_UPLOAD:
case CURLOPT_POST:
case CURLOPT_FTPLISTONLY:
case CURLOPT_FTPAPPEND:
case CURLOPT_NETRC:
case CURLOPT_FOLLOWLOCATION:
case CURLOPT_PUT:
case CURLOPT_MUTE:
case CURLOPT_TIMEOUT:
case CURLOPT_LOW_SPEED_LIMIT:
case CURLOPT_SSLVERSION:
case CURLOPT_LOW_SPEED_TIME:
case CURLOPT_RESUME_FROM:
case CURLOPT_TIMEVALUE:
case CURLOPT_TIMECONDITION:
case CURLOPT_TRANSFERTEXT:
case CURLOPT_HTTPPROXYTUNNEL:
case CURLOPT_FILETIME:
case CURLOPT_MAXREDIRS:
case CURLOPT_MAXCONNECTS:
case CURLOPT_CLOSEPOLICY:
case CURLOPT_FRESH_CONNECT:
case CURLOPT_FORBID_REUSE:
case CURLOPT_CONNECTTIMEOUT:
case CURLOPT_SSL_VERIFYHOST:
case CURLOPT_SSL_VERIFYPEER:
convert_to_long_ex(zvalue);
error = curl_easy_setopt(ch->cp, option, Z_LVAL_PP(zvalue));
break;
case CURLOPT_URL:
case CURLOPT_PROXY:
case CURLOPT_USERPWD:
case CURLOPT_PROXYUSERPWD:
case CURLOPT_RANGE:
case CURLOPT_CUSTOMREQUEST:
case CURLOPT_USERAGENT:
case CURLOPT_FTPPORT:
case CURLOPT_COOKIE:
case CURLOPT_SSLCERT:
case CURLOPT_SSLCERTPASSWD:
case CURLOPT_COOKIEFILE:
case CURLOPT_REFERER:
case CURLOPT_INTERFACE:
case CURLOPT_KRB4LEVEL:
case CURLOPT_RANDOM_FILE:
case CURLOPT_EGDSOCKET:
case CURLOPT_CAINFO:
case CURLOPT_COOKIEJAR:
case CURLOPT_SSL_CIPHER_LIST: {
char *copystr = NULL;
convert_to_string_ex(zvalue);
copystr = estrndup(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue));
convert_to_string_ex(zvalue);
copystr = estrndup(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue));
error = curl_easy_setopt(ch->cp, option, copystr);
zend_llist_add_element(&ch->to_free.str, &copystr);
error = curl_easy_setopt(ch->cp, option, copystr);
zend_llist_add_element(&ch->to_free.str, &copystr);
break;
}
case CURLOPT_FILE:
case CURLOPT_INFILE:
case CURLOPT_WRITEHEADER:
case CURLOPT_STDERR: {
FILE *fp = NULL;
int type;
void * what;
break;
}
case CURLOPT_FILE:
case CURLOPT_INFILE:
case CURLOPT_WRITEHEADER:
case CURLOPT_STDERR: {
FILE *fp = NULL;
int type;
void * what;
what = zend_fetch_resource(zvalue TSRMLS_CC, -1, "File-Handle", &type, 1, php_file_le_stream());
ZEND_VERIFY_RESOURCE(what);
what = zend_fetch_resource(zvalue TSRMLS_CC, -1, "File-Handle", &type, 1, php_file_le_stream());
ZEND_VERIFY_RESOURCE(what);
if (FAILURE == php_stream_cast((php_stream *) what,
PHP_STREAM_AS_STDIO,
(void *) &fp,
REPORT_ERRORS)) {
RETURN_FALSE;
}
if (!fp) {
RETURN_FALSE;
}
error = CURLE_OK;
switch (option) {
case CURLOPT_FILE:
ch->handlers->write->fp = fp;
ch->handlers->write->method = PHP_CURL_FILE;
break;
case CURLOPT_WRITEHEADER:
ch->handlers->write_header->fp = fp;
ch->handlers->write_header->method = PHP_CURL_FILE;
break;
case CURLOPT_INFILE:
zend_list_addref(Z_LVAL_PP(zvalue));
ch->handlers->read->fp = fp;
ch->handlers->read->fd = Z_LVAL_PP(zvalue);
break;
default:
error = curl_easy_setopt(ch->cp, option, fp);
break;
}
if (FAILURE == php_stream_cast((php_stream*)what, PHP_STREAM_AS_STDIO, (void*)&fp, REPORT_ERRORS))
RETURN_FALSE;
if (!fp) {
RETURN_FALSE;
}
error = CURLE_OK;
switch (option) {
case CURLOPT_FILE:
ch->handlers->write->fp = fp;
ch->handlers->write->method = PHP_CURL_FILE;
break;
case CURLOPT_WRITEHEADER:
ch->handlers->write_header->fp = fp;
ch->handlers->write_header->method = PHP_CURL_FILE;
break;
case CURLOPT_INFILE:
zend_list_addref(Z_LVAL_PP(zvalue));
ch->handlers->read->fp = fp;
ch->handlers->read->fd = Z_LVAL_PP(zvalue);
break;
default:
error = curl_easy_setopt(ch->cp, option, fp);
break;
}
case CURLOPT_RETURNTRANSFER:
convert_to_long_ex(zvalue);
if (Z_LVAL_PP(zvalue)) {
ch->handlers->write->method = PHP_CURL_RETURN;
}
break;
case CURLOPT_BINARYTRANSFER:
convert_to_long_ex(zvalue);
break;
}
case CURLOPT_RETURNTRANSFER:
convert_to_long_ex(zvalue);
if (Z_LVAL_PP(zvalue)) {
ch->handlers->write->type = PHP_CURL_BINARY;
}
break;
case CURLOPT_WRITEFUNCTION:
zval_add_ref(zvalue);
ch->handlers->write->func = *zvalue;
ch->handlers->write->method = PHP_CURL_USER;
break;
case CURLOPT_READFUNCTION:
zval_add_ref(zvalue);
ch->handlers->read->func = *zvalue;
ch->handlers->read->method = PHP_CURL_USER;
break;
case CURLOPT_HEADERFUNCTION:
zval_add_ref(zvalue);
ch->handlers->write_header->func = *zvalue;
ch->handlers->write_header->method = PHP_CURL_USER;
break;
case CURLOPT_PASSWDFUNCTION:
zval_add_ref(zvalue);
ch->handlers->passwd = *zvalue;
error = curl_easy_setopt(ch->cp, CURLOPT_PASSWDFUNCTION, curl_passwd);
error = curl_easy_setopt(ch->cp, CURLOPT_PASSWDDATA, (void *) ch);
break;
case CURLOPT_POSTFIELDS:
if (Z_TYPE_PP(zvalue) == IS_ARRAY || Z_TYPE_PP(zvalue) == IS_OBJECT) {
zval **current;
HashTable *postfields;
struct HttpPost *first = NULL;
struct HttpPost *last = NULL;
char *postval;
char *string_key = NULL;
ulong num_key;
uint string_key_len;
if (Z_LVAL_PP(zvalue)) {
ch->handlers->write->method = PHP_CURL_RETURN;
}
break;
case CURLOPT_BINARYTRANSFER:
convert_to_long_ex(zvalue);
ch->handlers->write->type = PHP_CURL_BINARY;
break;
case CURLOPT_WRITEFUNCTION:
zval_add_ref(zvalue);
ch->handlers->write->func = *zvalue;
ch->handlers->write->method = PHP_CURL_USER;
break;
case CURLOPT_READFUNCTION:
zval_add_ref(zvalue);
ch->handlers->read->func = *zvalue;
ch->handlers->read->method = PHP_CURL_USER;
break;
case CURLOPT_HEADERFUNCTION:
zval_add_ref(zvalue);
ch->handlers->write_header->func = *zvalue;
ch->handlers->write_header->method = PHP_CURL_USER;
break;
case CURLOPT_PASSWDFUNCTION:
zval_add_ref(zvalue);
ch->handlers->passwd = *zvalue;
error = curl_easy_setopt(ch->cp, CURLOPT_PASSWDFUNCTION, curl_passwd);
error = curl_easy_setopt(ch->cp, CURLOPT_PASSWDDATA, (void *) ch);
break;
case CURLOPT_POSTFIELDS:
if (Z_TYPE_PP(zvalue) == IS_ARRAY || Z_TYPE_PP(zvalue) == IS_OBJECT) {
zval **current;
HashTable *postfields;
struct HttpPost *first = NULL;
struct HttpPost *last = NULL;
char *postval;
char *string_key = NULL;
ulong num_key;
uint string_key_len;
postfields = HASH_OF(*zvalue);
if (! postfields) {
php_error(E_WARNING,
"%s(): Couldn't get HashTable in CURLOPT_POSTFIELDS",
get_active_function_name(TSRMLS_C));
RETURN_FALSE;
}
for (zend_hash_internal_pointer_reset(postfields);
zend_hash_get_current_data(postfields, (void **) &current) == SUCCESS;
zend_hash_move_forward(postfields)) {
SEPARATE_ZVAL(current);
convert_to_string_ex(current);
zend_hash_get_current_key_ex(postfields, &string_key, &string_key_len, &num_key, 0, NULL);
postval = Z_STRVAL_PP(current);
if (*postval == '@') {
error = curl_formadd(&first, &last,
CURLFORM_COPYNAME, string_key,
CURLFORM_NAMELENGTH, string_key_len - 1,
CURLFORM_FILE, ++postval,
CURLFORM_END);
}
else {
error = curl_formadd(&first, &last,
CURLFORM_COPYNAME, string_key,
CURLFORM_NAMELENGTH, string_key_len - 1,
CURLFORM_PTRCONTENTS, postval,
CURLFORM_CONTENTSLENGTH, Z_STRLEN_PP(current),
CURLFORM_END);
}
}
SAVE_CURL_ERROR(ch, error);
if (error != CURLE_OK) {
RETURN_FALSE;
}
zend_llist_add_element(&ch->to_free.post, &first);
error = curl_easy_setopt(ch->cp, CURLOPT_HTTPPOST, first);
}
else {
char *post = NULL;
convert_to_string_ex(zvalue);
post = estrndup(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue));
zend_llist_add_element(&ch->to_free.str, &post);
error = curl_easy_setopt(ch->cp, CURLOPT_POSTFIELDS, post);
error = curl_easy_setopt(ch->cp, CURLOPT_POSTFIELDSIZE, Z_STRLEN_PP(zvalue));
}
break;
case CURLOPT_HTTPHEADER:
case CURLOPT_QUOTE:
case CURLOPT_POSTQUOTE: {
zval **current;
HashTable *ph;
struct curl_slist *slist = NULL;
ph = HASH_OF(*zvalue);
if (!ph) {
php_error(E_WARNING,
"%s(): You must pass either an object or an array with the CURLOPT_HTTPHEADER, "
"CURLOPT_QUOTE and CURLOPT_POSTQUOTE arguments", get_active_function_name(TSRMLS_C));
postfields = HASH_OF(*zvalue);
if (! postfields) {
php_error(E_WARNING, "Couldn't get HashTable in CURLOPT_POSTFIELDS");
RETURN_FALSE;
}
for (zend_hash_internal_pointer_reset(ph);
zend_hash_get_current_data(ph, (void **) &current) == SUCCESS;
zend_hash_move_forward(ph)) {
char *indiv = NULL;
for (zend_hash_internal_pointer_reset(postfields);
zend_hash_get_current_data(postfields, (void **) &current) == SUCCESS;
zend_hash_move_forward(postfields)) {
SEPARATE_ZVAL(current);
convert_to_string_ex(current);
indiv = estrndup(Z_STRVAL_PP(current), Z_STRLEN_PP(current) + 1);
slist = curl_slist_append(slist, indiv);
if (! slist) {
efree(indiv);
php_error(E_WARNING, "%s(): Couldn't build curl_slist", get_active_function_name(TSRMLS_C));
RETURN_FALSE;
zend_hash_get_current_key_ex(postfields, &string_key, &string_key_len, &num_key, 0, NULL);
postval = Z_STRVAL_PP(current);
if (*postval == '@') {
error = curl_formadd(&first, &last, CURLFORM_COPYNAME, string_key,
CURLFORM_FILE, ++postval, CURLFORM_END);
}
else {
error = curl_formadd(&first, &last, CURLFORM_COPYNAME, string_key,
CURLFORM_PTRCONTENTS, postval,
CURLFORM_CONTENTSLENGTH, Z_STRLEN_PP(current),
CURLFORM_END);
}
zend_llist_add_element(&ch->to_free.str, &indiv);
}
zend_llist_add_element(&ch->to_free.slist, &slist);
error = curl_easy_setopt(ch->cp, option, slist);
SAVE_CURL_ERROR(ch, error);
if (error != CURLE_OK) {
RETURN_FALSE;
}
break;
zend_llist_add_element(&ch->to_free.post, &first);
error = curl_easy_setopt(ch->cp, CURLOPT_HTTPPOST, first);
}
else {
char *post = NULL;
convert_to_string_ex(zvalue);
post = estrndup(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue));
zend_llist_add_element(&ch->to_free.str, &post);
error = curl_easy_setopt(ch->cp, CURLOPT_POSTFIELDS, post);
error = curl_easy_setopt(ch->cp, CURLOPT_POSTFIELDSIZE, Z_STRLEN_PP(zvalue));
}
break;
case CURLOPT_HTTPHEADER:
case CURLOPT_QUOTE:
case CURLOPT_POSTQUOTE: {
zval **current;
HashTable *ph;
struct curl_slist *slist = NULL;
ph = HASH_OF(*zvalue);
if (! ph) {
php_error(E_WARNING,
"You must pass either an object or an array with the CURLOPT_HTTPHEADER,"
"CURLOPT_QUOTE and CURLOPT_POSTQUOTE arguments");
RETURN_FALSE;
}
for (zend_hash_internal_pointer_reset(ph);
zend_hash_get_current_data(ph, (void **) &current) == SUCCESS;
zend_hash_move_forward(ph)) {
char *indiv = NULL;
SEPARATE_ZVAL(current);
convert_to_string_ex(current);
indiv = estrndup(Z_STRVAL_PP(current), Z_STRLEN_PP(current) + 1);
slist = curl_slist_append(slist, indiv);
if (! slist) {
efree(indiv);
php_error(E_WARNING, "Couldn't build curl_slist from curl_setopt()");
RETURN_FALSE;
}
zend_llist_add_element(&ch->to_free.str, &indiv);
}
zend_llist_add_element(&ch->to_free.slist, &slist);
error = curl_easy_setopt(ch->cp, option, slist);
break;
}
}
SAVE_CURL_ERROR(ch, error);
@@ -999,10 +974,10 @@ PHP_FUNCTION(curl_getinfo)
case CURLINFO_FILETIME:
case CURLINFO_SSL_VERIFYRESULT: {
long code;
curl_easy_getinfo(ch->cp, option, &code);
RETURN_LONG(code);
break;
}
case CURLINFO_TOTAL_TIME:
+2 -2
View File
@@ -105,7 +105,7 @@ PHP_FUNCTION(cybercash_encr)
macbuff);
if (array_init(return_value) == FAILURE) {
php_error(E_WARNING, "%s(): Return value could not be initialized", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Return value from cybercash_encr could not be initialized");
RETURN_FALSE;
}
@@ -156,7 +156,7 @@ PHP_FUNCTION(cybercash_decr)
macbuff);
if (array_init(return_value) == FAILURE) {
php_error(E_WARNING, "%s(): Could not initialize return value", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Could not initialize Return value from cybercash_decr");
RETURN_FALSE;
}
+8 -8
View File
@@ -167,11 +167,11 @@ PHP_FUNCTION(cyrus_connect)
break;
case -1:
php_error(E_WARNING, "%s(): Invalid hostname: %s", get_active_function_name(TSRMLS_C), host);
php_error(E_WARNING, "Invalid hostname: %s", host);
RETURN_FALSE;
case -2:
php_error(E_WARNING, "%s(): Invalid port: %d", get_active_function_name(TSRMLS_C), port);
php_error(E_WARNING, "Invalid port: %d", port);
RETURN_FALSE;
}
@@ -285,7 +285,7 @@ PHP_FUNCTION(cyrus_authenticate)
if (! user) {
struct passwd *pwd = getpwuid(getuid());
if (! pwd) {
php_error(E_WARNING, "%s(): Couldn't determine user id", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Couldn't determine user id");
RETURN_FALSE;
}
@@ -358,8 +358,8 @@ static void cyrus_generic_callback(struct imclient *client,
if (call_user_function_ex(EG(function_table), NULL, callback->function,
&retval, 4, argv, 0, NULL TSRMLS_CC) == FAILURE) {
php_error(E_WARNING, "%s(): Couldn't call the %s handler",
get_active_function_name(TSRMLS_C), callback->trigger);
php_error(E_WARNING, "Couldn't call the %s handler",
callback->trigger);
}
zval_ptr_dtor(argv[0]);
@@ -398,7 +398,7 @@ PHP_FUNCTION(cyrus_bind)
hash = HASH_OF(*z_callback);
if (! hash) {
php_error(E_WARNING,
"%s(): Second argument must be an array or object", get_active_function_name(TSRMLS_C));
"Second argument to cyrus_bind() must be an array or object");
RETURN_FALSE;
}
@@ -425,12 +425,12 @@ PHP_FUNCTION(cyrus_bind)
}
if (! callback.trigger) {
php_error(E_WARNING, "%s(): You must specify a trigger in your callback", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "You must specify a trigger in your callback");
RETURN_FALSE;
}
if (! callback.function) {
php_error(E_WARNING, "%s(): You must specify a function in your callback", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "You must specify a function in your callback");
RETURN_FALSE;
}
+27 -27
View File
@@ -295,7 +295,7 @@ dbm_info *php_dbm_open(char *filename, char *mode TSRMLS_DC)
DBM_MODE_TYPE imode;
if (filename == NULL) {
php_error(E_WARNING, "%s(): NULL filename passed", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "NULL filename passed to php_dbm_open()");
return NULL;
}
@@ -341,7 +341,7 @@ dbm_info *php_dbm_open(char *filename, char *mode TSRMLS_DC)
lockfd = open(lockfn, O_RDWR|O_CREAT, 0644);
close(lockfd);
} else {
php_error(E_WARNING, "%s(): File appears to be locked [%s]", get_active_function_name(TSRMLS_C), lockfn);
php_error(E_WARNING, "File appears to be locked [%s]\n", lockfn);
return -1;
}
#else /* NFS_HACK */
@@ -352,7 +352,7 @@ dbm_info *php_dbm_open(char *filename, char *mode TSRMLS_DC)
flock(lockfd, LOCK_EX);
close(lockfd);
} else {
php_error(E_WARNING, "%s(): Unable to establish lock: %s", get_active_function_name(TSRMLS_C), filename);
php_error(E_WARNING, "Unable to establish lock: %s", filename);
}
#endif /* else NFS_HACK */
@@ -369,7 +369,7 @@ dbm_info *php_dbm_open(char *filename, char *mode TSRMLS_DC)
if (dbf) {
info = (dbm_info *)emalloc(sizeof(dbm_info));
if (!info) {
php_error(E_ERROR, "%s(): problem allocating memory!", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "problem allocating memory!");
return NULL;
}
@@ -381,7 +381,7 @@ dbm_info *php_dbm_open(char *filename, char *mode TSRMLS_DC)
return info;
} else {
#if GDBM
php_error(E_WARNING, "%s(%s): %d [%s], %d [%s]", get_active_function_name(TSRMLS_C), filename, gdbm_errno, gdbm_strerror(gdbm_errno), errno, strerror(errno));
php_error(E_WARNING, "dbmopen_gdbm(%s): %d [%s], %d [%s]", filename, gdbm_errno, gdbm_strerror(gdbm_errno), errno, strerror(errno));
if (gdbm_errno)
ret = gdbm_errno;
else if (errno)
@@ -391,13 +391,13 @@ dbm_info *php_dbm_open(char *filename, char *mode TSRMLS_DC)
#else
#if NDBM
#if PHP_DEBUG
php_error(E_WARNING, "%s(%s): errno = %d [%s]\n", get_active_function_name(TSRMLS_C), filename, errno, strerror(errno));
php_error(E_WARNING, "dbmopen_ndbm(%s): errno = %d [%s]\n", filename, errno, strerror(errno));
#endif
if (errno) ret=errno;
else ret = -1;
#else
#if PHP_DEBUG
php_error(E_WARNING, "%s(%s): errno = %d [%s]\n", get_active_function_name(TSRMLS_C), filename, errno, strerror(errno));
php_error(E_WARNING, "dbmopen_flatfile(%s): errno = %d [%s]\n", filename, errno, strerror(errno));
#endif
if (errno) ret=errno;
else ret = -1;
@@ -487,7 +487,7 @@ PHP_FUNCTION(dbminsert)
info = php_find_dbm(id TSRMLS_CC);
if (!info) {
php_error(E_WARNING, "%s(): not a valid database identifier %d", get_active_function_name(TSRMLS_C), Z_LVAL_P(id));
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id));
RETURN_FALSE;
}
@@ -518,7 +518,7 @@ int php_dbm_insert(dbm_info *info, char *key, char *value TSRMLS_DC) {
dbf = info->dbf;
if (!dbf) {
php_error(E_WARNING, "%s(): Unable to locate dbm file", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to locate dbm file");
return 1;
}
@@ -547,7 +547,7 @@ PHP_FUNCTION(dbmreplace)
info = php_find_dbm(id TSRMLS_CC);
if (!info) {
php_error(E_WARNING, "%s(): not a valid database identifier %d", get_active_function_name(TSRMLS_C), Z_LVAL_P(id));
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id));
RETURN_FALSE;
}
@@ -580,7 +580,7 @@ int php_dbm_replace(dbm_info *info, char *key, char *value TSRMLS_DC)
dbf = info->dbf;
if (!dbf) {
php_error(E_WARNING, "%s(): Unable to locate dbm file", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to locate dbm file");
return 1;
}
@@ -608,7 +608,7 @@ PHP_FUNCTION(dbmfetch)
info = php_find_dbm(id TSRMLS_CC);
if (!info) {
php_error(E_WARNING, "%s(): not a valid database identifier %d", get_active_function_name(TSRMLS_C), Z_LVAL_P(id));
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id));
RETURN_FALSE;
}
@@ -639,7 +639,7 @@ char *php_dbm_fetch(dbm_info *info, char *key TSRMLS_DC)
dbf = info->dbf;
if (!dbf) {
php_error(E_WARNING, "%s(): Unable to locate dbm file", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to locate dbm file");
return(NULL);
}
@@ -684,18 +684,18 @@ PHP_FUNCTION(dbmexists)
info = php_find_dbm(id TSRMLS_CC);
if (!info) {
php_error(E_WARNING, "%s(): not a valid database identifier %d", get_active_function_name(TSRMLS_C), Z_LVAL_P(id));
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id));
RETURN_FALSE;
}
ret = php_dbm_exists(info, Z_STRVAL_P(key) TSRMLS_CC);
ret = php_dbm_exists(info, Z_STRVAL_P(key));
RETURN_LONG(ret);
}
/* }}} */
/* {{{ php_dbm_exists
*/
int php_dbm_exists(dbm_info *info, char *key TSRMLS_DC) {
int php_dbm_exists(dbm_info *info, char *key) {
datum key_datum;
int ret;
DBM_TYPE dbf;
@@ -708,7 +708,7 @@ int php_dbm_exists(dbm_info *info, char *key TSRMLS_DC) {
dbf = info->dbf;
if (!dbf) {
php_error(E_WARNING, "%s(): Unable to locate dbm file", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to locate dbm file");
return(0);
}
@@ -733,18 +733,18 @@ PHP_FUNCTION(dbmdelete)
info = php_find_dbm(id TSRMLS_CC);
if (!info) {
php_error(E_WARNING, "%s(): not a valid database identifier %d", get_active_function_name(TSRMLS_C), Z_LVAL_P(id));
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id));
RETURN_FALSE;
}
ret = php_dbm_delete(info, Z_STRVAL_P(key) TSRMLS_CC);
ret = php_dbm_delete(info, Z_STRVAL_P(key));
RETURN_LONG(ret);
}
/* }}} */
/* {{{ php_dbm_delete
*/
int php_dbm_delete(dbm_info *info, char *key TSRMLS_DC) {
int php_dbm_delete(dbm_info *info, char *key) {
datum key_datum;
int ret;
DBM_TYPE dbf;
@@ -757,7 +757,7 @@ int php_dbm_delete(dbm_info *info, char *key TSRMLS_DC) {
dbf = info->dbf;
if (!dbf) {
php_error(E_WARNING, "%s(): Unable to locate dbm file", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to locate dbm file");
return(0);
}
@@ -780,11 +780,11 @@ PHP_FUNCTION(dbmfirstkey)
info = php_find_dbm(id TSRMLS_CC);
if (!info) {
php_error(E_WARNING, "%s(): not a valid database identifier %d", get_active_function_name(TSRMLS_C), Z_LVAL_P(id));
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id));
RETURN_FALSE;
}
ret = php_dbm_first_key(info TSRMLS_CC);
ret = php_dbm_first_key(info);
if (!ret) {
RETURN_FALSE;
} else {
@@ -795,14 +795,14 @@ PHP_FUNCTION(dbmfirstkey)
/* {{{ php_dbm_first_key
*/
char *php_dbm_first_key(dbm_info *info TSRMLS_DC) {
char *php_dbm_first_key(dbm_info *info) {
datum ret_datum;
char *ret;
DBM_TYPE dbf;
dbf = info->dbf;
if (!dbf) {
php_error(E_WARNING, "%s(): Unable to locate dbm file", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to locate dbm file");
return(NULL);
}
@@ -842,7 +842,7 @@ PHP_FUNCTION(dbmnextkey)
info = php_find_dbm(id TSRMLS_CC);
if (!info) {
php_error(E_WARNING, "%s(): not a valid database identifier %d", get_active_function_name(TSRMLS_C), Z_LVAL_P(id));
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id));
RETURN_FALSE;
}
@@ -871,7 +871,7 @@ char *php_dbm_nextkey(dbm_info *info, char *key TSRMLS_DC)
dbf = info->dbf;
if (!dbf) {
php_error(E_WARNING, "%s(): Unable to locate dbm file", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to locate dbm file");
return(NULL);
}
+3 -3
View File
@@ -57,9 +57,9 @@ dbm_info *php_dbm_open(char *filename, char *mode TSRMLS_DC);
int php_dbm_insert(dbm_info *info, char *key, char *value TSRMLS_DC);
char *php_dbm_fetch(dbm_info *info, char *key TSRMLS_DC);
int php_dbm_replace(dbm_info *info, char *key, char *value TSRMLS_DC);
int php_dbm_exists(dbm_info *info, char *key TSRMLS_DC);
int php_dbm_delete(dbm_info *info, char *key TSRMLS_DC);
char *php_dbm_first_key(dbm_info *info TSRMLS_DC);
int php_dbm_exists(dbm_info *info, char *key);
int php_dbm_delete(dbm_info *info, char *key);
char *php_dbm_first_key(dbm_info *info);
char *php_dbm_nextkey(dbm_info *info, char *key TSRMLS_DC);
/* db file functions */
+7 -8
View File
@@ -117,10 +117,9 @@ typedef struct dba_handler {
#define DBA_ID_GET \
convert_to_long_ex(id); \
DBA_IF_NOT_CORRECT_TYPE(Z_LVAL_PP(id)) { \
php_error(E_WARNING, "%s(): Unable to find DBA identifier %d", \
get_active_function_name(TSRMLS_C), \
Z_LVAL_PP(id)); \
DBA_IF_NOT_CORRECT_TYPE(Z_LVAL_PP(id)) { \
php_error(E_WARNING, "Unable to find DBA identifier %d", \
Z_LVAL_PP(id)); \
RETURN_FALSE; \
}
@@ -139,7 +138,7 @@ typedef struct dba_handler {
/* check whether the user has write access */
#define DBA_WRITE_CHECK \
if(info->mode != DBA_WRITER && info->mode != DBA_TRUNC && info->mode != DBA_CREAT) { \
php_error(E_WARNING, "%s(): you cannot perform a modification to a database without proper access", get_active_function_name(TSRMLS_C)); \
php_error(E_WARNING, "you cannot perform a modification to a database without proper access"); \
RETURN_FALSE; \
}
@@ -318,7 +317,7 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
strcasecmp(hptr->name, Z_STRVAL_PP(args[2])); hptr++);
if(!hptr->name) {
php_error(E_WARNING, "%s(): no such handler: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(args[2]));
php_error(E_WARNING, "no such handler: %s", Z_STRVAL_PP(args[2]));
FREENOW;
RETURN_FALSE;
}
@@ -337,7 +336,7 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
modenr = DBA_TRUNC;
break;
default:
php_error(E_WARNING, "%s(): illegal DBA mode: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(args[1]));
php_error(E_WARNING, "illegal DBA mode: %s", Z_STRVAL_PP(args[1]));
FREENOW;
RETURN_FALSE;
}
@@ -352,7 +351,7 @@ static void php_dba_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if(hptr->open(info TSRMLS_CC) != SUCCESS) {
dba_close(info);
php_error(E_WARNING, "%s(): driver initialization failed", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "driver initialization failed");
FREENOW;
RETURN_FALSE;
}
+117 -60
View File
@@ -421,9 +421,9 @@ PHP_FUNCTION(dbase_delete_record)
}
/* }}} */
/* {{{ php_dbase_get_record
*/
static void php_dbase_get_record(INTERNAL_FUNCTION_PARAMETERS, int assoc)
/* {{{ proto array dbase_get_record(int identifier, int record)
Returns an array representing a record from the database */
PHP_FUNCTION(dbase_get_record)
{
pval *dbh_id, *record;
dbhead_t *dbh;
@@ -458,8 +458,8 @@ static void php_dbase_get_record(INTERNAL_FUNCTION_PARAMETERS, int assoc)
RETURN_FALSE;
}
fnp = NULL;
for (cur_f = dbf; cur_f < &dbf[dbh->db_nfields]; cur_f++) {
fnp = NULL;
for (cur_f = dbf; cur_f < &dbf[dbh->db_nfields]; cur_f++) {
/* get the value */
str_value = (char *)emalloc(cur_f->db_flen + 1);
@@ -467,17 +467,116 @@ static void php_dbase_get_record(INTERNAL_FUNCTION_PARAMETERS, int assoc)
cursize = cur_f->db_flen + 1;
fnp = erealloc(fnp, cursize);
}
snprintf(str_value, cursize, cur_f->db_format, get_field_val(data, cur_f, fnp));
snprintf(str_value, cursize, cur_f->db_format, get_field_val(data, cur_f, fnp));
/* now convert it to the right php internal type */
switch (cur_f->db_type) {
case 'C':
case 'D':
add_next_index_string(return_value, str_value, 1);
break;
case 'I': /* FALLS THROUGH */
case 'N':
if (cur_f->db_fdc == 0) {
/* Large integers in dbase can be larger than long */
errno_save = errno;
overflow_test = strtol(str_value, NULL, 10);
if (errno == ERANGE) {
/* If the integer is too large, keep it as string */
add_next_index_string(return_value, str_value, 1);
} else {
add_next_index_long(return_value, overflow_test);
}
errno = errno_save;
} else {
add_next_index_double(return_value, atof(str_value));
}
break;
case 'L': /* we used to FALL THROUGH, but now we check for T/Y and F/N
and insert 1 or 0, respectively. db_fdc is the number of
decimals, which we don't care about. 3/14/2001 LEW */
if ((*str_value == 'T') || (*str_value == 'Y')) {
add_next_index_long(return_value, strtol("1", NULL, 10));
} else {
if ((*str_value == 'F') || (*str_value == 'N')) {
add_next_index_long(return_value, strtol("0", NULL, 10));
} else {
add_next_index_long(return_value, strtol(" ", NULL, 10));
}
}
break;
case 'M':
/* this is a memo field. don't know how to deal with
this yet */
break;
default:
/* should deal with this in some way */
break;
}
efree(str_value);
}
efree(fnp);
/* mark whether this record was deleted */
if (data[0] == '*') {
add_assoc_long(return_value, "deleted", 1);
}
else {
add_assoc_long(return_value, "deleted", 0);
}
free(data);
}
/* }}} */
/* From Martin Kuba <makub@aida.inet.cz> */
/* {{{ proto array dbase_get_record_with_names(int identifier, int record)
Returns an associative array representing a record from the database */
PHP_FUNCTION(dbase_get_record_with_names)
{
pval *dbh_id, *record;
dbhead_t *dbh;
int dbh_type;
dbfield_t *dbf, *cur_f;
char *data, *fnp, *str_value;
long overflow_test;
int errno_save;
DBase_TLS_VARS;
if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &dbh_id, &record)==FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_long(dbh_id);
convert_to_long(record);
dbh = zend_list_find(Z_LVAL_P(dbh_id), &dbh_type);
if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) {
php_error(E_WARNING, "Unable to find database for identifier %d", Z_LVAL_P(dbh_id));
RETURN_FALSE;
}
if ((data = get_dbf_record(dbh, Z_LVAL_P(record))) == NULL) {
php_error(E_WARNING, "Tried to read bad record %d", Z_LVAL_P(record));
RETURN_FALSE;
}
dbf = dbh->db_fields;
if (array_init(return_value) == FAILURE) {
RETURN_FALSE;
}
fnp = (char *)emalloc(dbh->db_rlen);
for (cur_f = dbf; cur_f < &dbf[dbh->db_nfields]; cur_f++) {
/* get the value */
str_value = (char *)emalloc(cur_f->db_flen + 1);
sprintf(str_value, cur_f->db_format, get_field_val(data, cur_f, fnp));
/* now convert it to the right php internal type */
switch (cur_f->db_type) {
case 'C':
case 'D':
if (!assoc) {
add_next_index_string(return_value, str_value, 1);
} else {
add_assoc_string(return_value, cur_f->db_fname, str_value, 1);
}
add_assoc_string(return_value, cur_f->db_fname, str_value, 1);
break;
case 'I': /* FALLS THROUGH */
case 'N':
@@ -487,49 +586,25 @@ static void php_dbase_get_record(INTERNAL_FUNCTION_PARAMETERS, int assoc)
overflow_test = strtol(str_value, NULL, 10);
if (errno == ERANGE) {
/* If the integer is too large, keep it as string */
if (!assoc) {
add_next_index_string(return_value, str_value, 1);
} else {
add_assoc_string(return_value, cur_f->db_fname, str_value, 1);
}
add_assoc_string(return_value, cur_f->db_fname, str_value, 1);
} else {
if (!assoc) {
add_next_index_long(return_value, overflow_test);
} else {
add_assoc_long(return_value, cur_f->db_fname, overflow_test);
}
add_assoc_long(return_value, cur_f->db_fname, overflow_test);
}
errno = errno_save;
} else {
if (!assoc) {
add_next_index_double(return_value, atof(str_value));
} else {
add_assoc_double(return_value, cur_f->db_fname, atof(str_value));
}
add_assoc_double(return_value, cur_f->db_fname, atof(str_value));
}
break;
case 'L': /* we used to FALL THROUGH, but now we check for T/Y and F/N
and insert 1 or 0, respectively. db_fdc is the number of
decimals, which we don't care about. 3/14/2001 LEW */
if ((*str_value == 'T') || (*str_value == 'Y')) {
if (!assoc) {
add_next_index_long(return_value, strtol("1", NULL, 10));
} else {
add_assoc_long(return_value, cur_f->db_fname,strtol("1", NULL, 10));
}
add_assoc_long(return_value, cur_f->db_fname,strtol("1", NULL, 10));
} else {
if ((*str_value == 'F') || (*str_value == 'N')) {
if (!assoc) {
add_next_index_long(return_value, strtol("0", NULL, 10));
} else {
add_assoc_long(return_value, cur_f->db_fname,strtol("0", NULL, 10));
}
add_assoc_long(return_value, cur_f->db_fname,strtol("0", NULL, 10));
} else {
if (!assoc) {
add_next_index_long(return_value, strtol(" ", NULL, 10));
} else {
add_assoc_long(return_value, cur_f->db_fname,strtol(" ", NULL, 10));
}
add_assoc_long(return_value, cur_f->db_fname,strtol(" ", NULL, 10));
}
}
break;
@@ -542,7 +617,6 @@ static void php_dbase_get_record(INTERNAL_FUNCTION_PARAMETERS, int assoc)
}
efree(str_value);
}
efree(fnp);
/* mark whether this record was deleted */
@@ -555,23 +629,6 @@ static void php_dbase_get_record(INTERNAL_FUNCTION_PARAMETERS, int assoc)
free(data);
}
/* }}} */
/* {{{ proto array dbase_get_record(int identifier, int record)
Returns an array representing a record from the database */
PHP_FUNCTION(dbase_get_record)
{
php_dbase_get_record(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
}
/* }}} */
/* From Martin Kuba <makub@aida.inet.cz> */
/* {{{ proto array dbase_get_record_with_names(int identifier, int record)
Returns an associative array representing a record from the database */
PHP_FUNCTION(dbase_get_record_with_names)
{
php_dbase_get_record(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
}
/* }}} */
/* {{{ proto bool dbase_create(string filename, array fields)
Creates a new dBase-format database file */
@@ -726,7 +783,7 @@ PHP_FUNCTION(dbase_create)
}
dbh->db_rlen = rlen;
put_dbf_info(dbh);
put_dbf_info(dbh);
handle = zend_list_insert(dbh, DBase_GLOBAL(le_dbhead));
RETURN_LONG(handle);
+2 -2
View File
@@ -186,7 +186,7 @@ int dbx_sybasect_getcolumnname(zval **rv, zval **result_handle, long column_inde
FREE_ZVAL(zval_column_index);
return 0;
}
if (zend_hash_find(Z_OBJPROP_P(returned_zval), "name", 5, (void **) &zv_name)==FAILURE) {
if (zend_hash_find(returned_zval->value.obj.properties, "name", 5, (void **) &zv_name)==FAILURE) {
zval_ptr_dtor(&returned_zval);
FREE_ZVAL(zval_column_index);
return 0;
@@ -223,7 +223,7 @@ int dbx_sybasect_getcolumntype(zval **rv, zval **result_handle, long column_inde
FREE_ZVAL(zval_column_index);
return 0;
}
if (zend_hash_find(Z_OBJPROP_P(returned_zval), "type", 5, (void **) &zv_type)==FAILURE) {
if (zend_hash_find(returned_zval->value.obj.properties, "type", 5, (void **) &zv_type)==FAILURE) {
zval_ptr_dtor(&returned_zval);
FREE_ZVAL(zval_column_index);
return 0;
+12 -12
View File
@@ -34,14 +34,14 @@
static int le_fd;
function_entry dio_functions[] = {
PHP_FE(dio_open, NULL)
PHP_FE(dio_truncate, NULL)
PHP_FE(dio_stat, NULL)
PHP_FE(dio_open, NULL)
PHP_FE(dio_truncate, NULL)
PHP_FE(dio_stat, NULL)
PHP_FE(dio_seek, NULL)
PHP_FE(dio_fcntl, NULL)
PHP_FE(dio_read, NULL)
PHP_FE(dio_write, NULL)
PHP_FE(dio_close, NULL)
PHP_FE(dio_write, NULL)
PHP_FE(dio_close, NULL)
{NULL, NULL, NULL}
};
@@ -55,7 +55,7 @@ zend_module_entry dio_module_entry = {
NULL,
NULL,
PHP_MINFO(dio),
"0.1",
"0.1",
STANDARD_MODULE_PROPERTIES
};
@@ -78,7 +78,7 @@ static void _dio_close_fd(zend_rsrc_list_entry *rsrc TSRMLS_DC)
PHP_MINIT_FUNCTION(dio)
{
le_fd = zend_register_list_destructors_ex(_dio_close_fd, NULL, le_fd_name, module_number);
le_fd = zend_register_list_destructors_ex(_dio_close_fd, NULL, le_fd_name, module_number);
RDIOC(O_RDONLY);
RDIOC(O_WRONLY);
@@ -328,28 +328,28 @@ PHP_FUNCTION(dio_fcntl)
}
if (Z_TYPE_P(arg) == IS_ARRAY) {
fh = HASH_OF(arg);
if (zend_hash_find(fh, "start", sizeof("start"), (void **) &element) == FAILURE) {
if (zend_hash_find(fh, "start", 5, (void **) &element) == FAILURE) {
lk.l_start = 0;
}
else {
lk.l_start = Z_LVAL_PP(element);
}
if (zend_hash_find(fh, "length", sizeof("length"), (void **) &element) == FAILURE) {
if (zend_hash_find(fh, "length", 6, (void **) &element) == FAILURE) {
lk.l_len = 0;
}
else {
lk.l_len = Z_LVAL_PP(element);
}
if (zend_hash_find(fh, "whence", sizeof("whence"), (void **) &element) == FAILURE) {
if (zend_hash_find(fh, "whence", 6, (void **) &element) == FAILURE) {
lk.l_whence = 0;
}
else {
lk.l_whence = Z_LVAL_PP(element);
lk.l_whence = SEEK_SET;
}
if (zend_hash_find(fh, "type", sizeof("type"), (void **) &element) == FAILURE) {
if (zend_hash_find(fh, "type", 6, (void **) &element) == FAILURE) {
lk.l_type = 0;
}
else {
-8
View File
@@ -9,11 +9,3 @@
it ought to be.
7) Fix the many, many memory leaks.
8) Modify new_child to allow creation of attribute, cdata, dtd, etc nodes.
9) implement schema support (libxml2 has it)
10) implement scheme handlers (like in ext/xslt), should be possible with xmlRegisterInputCallbacks
11) implement real sax support
- input (building of dom-tree with sax-events) is almost finished
- started with generating of sax-events from file/string (chregu)
- generating sax-events from dom-tree is a more tricky one (see mailinglist of libxml2)
12) error reporting for xslt methods
13) add possibility to use relative xpath queries
+53 -107
View File
@@ -68,12 +68,12 @@
DOMXML_GET_OBJ(ret, zval, le);
#define DOMXML_NO_ARGS() if (ZEND_NUM_ARGS() != 0) { \
php_error(E_WARNING, "%s(): expects exactly 0 parameters, %d given", \
php_error(E_WARNING, "%s() expects exactly 0 parameters, %d given", \
get_active_function_name(TSRMLS_C), ZEND_NUM_ARGS()); \
return; \
}
#define DOMXML_NOT_IMPLEMENTED() php_error(E_WARNING, "%s(): not yet implemented", \
#define DOMXML_NOT_IMPLEMENTED() php_error(E_WARNING, "%s() not yet implemented", \
get_active_function_name(TSRMLS_C)); \
return;
@@ -196,16 +196,12 @@ zend_class_entry *domxsltstylesheet_class_entry;
static int node_attributes(zval **attributes, xmlNode *nodep TSRMLS_DC);
static int node_children(zval **children, xmlNode *nodep TSRMLS_DC);
static unsigned char first_args_force_ref[] = { 1, BYREF_FORCE };
static unsigned char second_args_force_ref[] = { 2, BYREF_NONE, BYREF_FORCE };
static unsigned char third_args_force_ref[] = { 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
static zend_function_entry domxml_functions[] = {
PHP_FE(domxml_version, NULL)
PHP_FE(xmldoc, third_args_force_ref)
PHP_FALIAS(domxml_open_mem, xmldoc, third_args_force_ref)
PHP_FE(xmldocfile, third_args_force_ref)
PHP_FALIAS(domxml_open_file, xmldocfile, third_args_force_ref)
PHP_FE(xmldoc, third_arg_force_ref)
PHP_FALIAS(domxml_open_mem, xmldoc, NULL)
PHP_FE(xmldocfile, third_arg_force_ref)
PHP_FALIAS(domxml_open_file, xmldocfile, NULL)
#if defined(LIBXML_HTML_ENABLED)
PHP_FE(html_doc, NULL)
PHP_FE(html_doc_file, NULL)
@@ -237,17 +233,17 @@ static zend_function_entry domxml_functions[] = {
PHP_FE(domxml_parser, NULL)
PHP_FE(domxml_parser_add_chunk, NULL)
PHP_FE(domxml_parser_end, NULL)
PHP_FE(domxml_parser_start_element, NULL)
PHP_FE(domxml_parser_end_element, NULL)
PHP_FE(domxml_parser_comment, NULL)
PHP_FE(domxml_parser_characters, NULL)
PHP_FE(domxml_parser_entity_reference, NULL)
PHP_FE(domxml_parser_processing_instruction, NULL)
PHP_FE(domxml_parser_cdata_section, NULL)
PHP_FE(domxml_parser_namespace_decl, NULL)
PHP_FE(domxml_parser_start_document, NULL)
PHP_FE(domxml_parser_end_document, NULL)
PHP_FE(domxml_parser_get_document, NULL)
PHP_FE(domxml_parser_start_element, NULL)
PHP_FE(domxml_parser_end_element, NULL)
PHP_FE(domxml_parser_comment, NULL)
PHP_FE(domxml_parser_characters, NULL)
PHP_FE(domxml_parser_entity_reference, NULL)
PHP_FE(domxml_parser_processing_instruction, NULL)
PHP_FE(domxml_parser_cdata_section, NULL)
PHP_FE(domxml_parser_namespace_decl, NULL)
PHP_FE(domxml_parser_start_document, NULL)
PHP_FE(domxml_parser_end_document, NULL)
PHP_FE(domxml_parser_get_document, NULL)
#if defined(LIBXML_XPATH_ENABLED)
PHP_FE(xpath_new_context, NULL)
@@ -283,7 +279,7 @@ static zend_function_entry domxml_functions[] = {
PHP_FALIAS(set_content, domxml_node_set_content, NULL)
PHP_FALIAS(new_xmldoc, domxml_new_xmldoc, NULL)
PHP_FALIAS(domxml_dumpmem, domxml_dump_mem, NULL)
PHP_FE(domxml_doc_validate, second_args_force_ref)
PHP_FE(domxml_doc_validate, second_arg_force_ref)
{NULL, NULL, NULL}
};
@@ -315,7 +311,7 @@ static function_entry php_domxmldoc_class_functions[] = {
PHP_FALIAS(dumpmem, domxml_dump_mem, NULL)
PHP_FALIAS(dump_mem, domxml_dump_mem, NULL)
PHP_FALIAS(dump_mem_file, domxml_dump_mem_file, NULL)
PHP_FALIAS(dump_file, domxml_dump_mem_file, NULL)
PHP_FALIAS(dump_file, domxml_dump_mem_file, NULL)
#if defined(LIBXML_HTML_ENABLED)
PHP_FALIAS(html_dump_mem, domxml_html_dump_mem, NULL)
#endif
@@ -324,7 +320,7 @@ static function_entry php_domxmldoc_class_functions[] = {
PHP_FALIAS(xpath_new_context, xpath_new_context, NULL)
PHP_FALIAS(xptr_new_context, xptr_new_context, NULL)
#endif
PHP_FALIAS(validate, domxml_doc_validate, first_args_force_ref)
PHP_FALIAS(validate, domxml_doc_validate, first_arg_force_ref)
{NULL, NULL, NULL}
};
@@ -386,8 +382,7 @@ static zend_function_entry php_domxmlnode_class_functions[] = {
PHP_FALIAS(new_child, domxml_node_new_child, NULL)
PHP_FALIAS(attributes, domxml_node_attributes, NULL)
PHP_FALIAS(has_attributes, domxml_node_has_attributes, NULL)
PHP_FALIAS(prefix, domxml_node_prefix, NULL)
PHP_FALIAS(namespace_uri, domxml_node_namespace_uri, NULL)
PHP_FALIAS(prefix, domxml_node_prefix, NULL)
PHP_FALIAS(clone_node, domxml_clone_node, NULL)
/* Non DOM functions start here */
PHP_FALIAS(add_child, domxml_node_append_child, NULL)
@@ -413,9 +408,7 @@ static zend_function_entry php_domxmlelement_class_functions[] = {
PHP_FALIAS(set_attribute, domxml_elem_set_attribute, NULL)
PHP_FALIAS(remove_attribute, domxml_elem_remove_attribute, NULL)
PHP_FALIAS(get_attribute_node, domxml_elem_get_attribute_node, NULL)
/* since this function is not implemented, outcomment it for the time beeing
PHP_FALIAS(set_attribute_node, domxml_elem_set_attribute_node, NULL)
*/
PHP_FALIAS(get_elements_by_tagname, domxml_elem_get_elements_by_tagname, NULL)
PHP_FALIAS(has_attribute, domxml_elem_has_attribute, NULL)
{NULL, NULL, NULL}
@@ -731,7 +724,7 @@ void *php_xsltstylesheet_get_object(zval *wrapper, int rsrc_type1, int rsrc_type
int type;
if (NULL == wrapper) {
php_error(E_WARNING, "xsltstylesheet_get_object() invalid wrapper object passed", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "xsltstylesheet_get_object() invalid wrapper object passed");
return NULL;
}
@@ -1032,7 +1025,7 @@ static zval *php_xmlparser_new(xmlParserCtxtPtr obj, int *found TSRMLS_DC)
/* {{{ php_xmlparser_make_params()
Translates a PHP array to a xmlparser parameters array */
static char **php_xmlparser_make_params(zval *idvars TSRMLS_DC)
static char **php_xmlparser_make_params(zval *idvars)
{
HashTable *parht;
int parsize;
@@ -1052,7 +1045,7 @@ static char **php_xmlparser_make_params(zval *idvars TSRMLS_DC)
zend_hash_move_forward(parht)) {
if (zend_hash_get_current_key(parht, &string_key, &num_key, 1) != HASH_KEY_IS_STRING) {
php_error(E_WARNING, "%s(): Invalid argument or parameter array",
php_error(E_WARNING, "Invalid argument or parameter array to %s",
get_active_function_name(TSRMLS_C));
return NULL;
}
@@ -1072,7 +1065,6 @@ static char **php_xmlparser_make_params(zval *idvars TSRMLS_DC)
return params;
}
/* }}} */
/* end parser stuff */
void *php_dom_get_object(zval *wrapper, int rsrc_type1, int rsrc_type2 TSRMLS_DC)
@@ -1382,9 +1374,7 @@ static void domxml_error_ext(void *ctx, const char *msg, ...)
}
add_assoc_string(errormessages,"errormessage",buf,1);
input = ctxt->input;
if (ctxt->name) {
add_assoc_string(errormessages,"nodename",ctxt->name,1);
}
add_assoc_string(errormessages,"nodename",ctxt->name,1);
if (input != NULL) {
add_assoc_long(errormessages,"line",input->line);
add_assoc_long(errormessages,"col",input->col);
@@ -1418,9 +1408,7 @@ static void domxml_error_validate(void *ctx, const char *msg, ...)
// do error handling here
}
if (ctxt->parser != NULL) {
if (ctxt->parser->name) {
add_assoc_string(errormessages,"nodename",ctxt->parser->name,1);
}
add_assoc_string(errormessages,"nodename",ctxt->parser->name,1);
if (ctxt->parser->input != NULL) {
add_assoc_long(errormessages,"line",ctxt->parser->input->line);
@@ -1511,8 +1499,7 @@ PHP_RINIT_FUNCTION(domxml)
return SUCCESS;
}
/* PHP_MINIT_FUNCTION(domxml)
*/
PHP_MINIT_FUNCTION(domxml)
{
zend_class_entry ce;
@@ -1662,9 +1649,10 @@ PHP_MINIT_FUNCTION(domxml)
#endif
#endif
return SUCCESS;
}
/* }}} */
/* {{{ proto int domxml_test(int id)
Unity function for testing */
@@ -1680,16 +1668,14 @@ PHP_FUNCTION(domxml_test)
}
/* }}} */
/* {{{ PHP_MINFO_FUNCTION(domxml)
*/
PHP_MINFO_FUNCTION(domxml)
{
/* don't know why that line was commented out in the previous version, so i left it (cmv) */
php_info_print_table_start();
php_info_print_table_row(2, "DOM/XML", "enabled");
php_info_print_table_row(2, "DOM/XML API Version", DOMXML_API_VERSION);
/* php_info_print_table_row(2, "libxml Version", LIBXML_DOTTED_VERSION); */
php_info_print_table_row(2, "libxml Version", xmlParserVersion);
php_info_print_table_row(2, "libxml Version", LIBXML_DOTTED_VERSION);
#if defined(LIBXML_HTML_ENABLED)
php_info_print_table_row(2, "HTML Support", "enabled");
#endif
@@ -1700,23 +1686,8 @@ PHP_MINFO_FUNCTION(domxml)
php_info_print_table_row(2, "XPointer Support", "enabled");
#endif
#if HAVE_DOMXSLT
{
char buffer[128];
int major, minor, subminor;
php_info_print_table_row(2, "DOM/XSLT", "enabled");
/* php_info_print_table_row(2, "libxslt Version", LIBXSLT_DOTTED_VERSION); */
major = xsltLibxsltVersion/10000;
minor = (xsltLibxsltVersion - major * 10000) / 100;
subminor = (xsltLibxsltVersion - major * 10000 - minor * 100);
snprintf(buffer, 128, "%d.%d.%d", major, minor, subminor);
php_info_print_table_row(2, "libxslt Version", buffer);
major = xsltLibxmlVersion/10000;
minor = (xsltLibxmlVersion - major * 10000) / 100;
subminor = (xsltLibxmlVersion - major * 10000 - minor * 100);
snprintf(buffer, 128, "%d.%d.%d", major, minor, subminor);
php_info_print_table_row(2, "libxslt compiled against libxml Version", buffer);
}
php_info_print_table_row(2, "libxslt Version", LIBXSLT_DOTTED_VERSION);
#if HAVE_DOMEXSLT
php_info_print_table_row(2, "DOM/EXSLT", "enabled");
php_info_print_table_row(2, "libexslt Version", LIBEXSLT_DOTTED_VERSION);
@@ -1725,7 +1696,6 @@ PHP_MINFO_FUNCTION(domxml)
php_info_print_table_end();
}
/* }}} */
/* {{{ Methods of Class DomAttribute */
@@ -2192,32 +2162,6 @@ PHP_FUNCTION(domxml_node_prefix)
}
/* }}} */
/* {{{ proto string domxml_node_namespace_uri(void)
Returns namespace uri of node */
PHP_FUNCTION(domxml_node_namespace_uri)
{
zval *id;
xmlNode *nodep;
xmlNsPtr ns;
DOMXML_GET_THIS_OBJ(nodep, id, le_domxmlnodep);
DOMXML_NO_ARGS();
ns = nodep->ns;
if (!ns) {
RETURN_EMPTY_STRING();
}
if (ns->href) {
RETURN_STRING((char *) (ns->href), 1);
} else {
RETURN_EMPTY_STRING();
}
}
/* }}} */
/* {{{ proto object domxml_node_parent(void)
Returns parent of node */
PHP_FUNCTION(domxml_node_parent)
@@ -2836,7 +2780,6 @@ PHP_FUNCTION(domxml_elem_get_attribute_node)
/* {{{ proto bool domxml_elem_set_attribute_node(object attr)
Sets value of given attribute */
/* since this function is not implemented, outcomment it for the time beeing
PHP_FUNCTION(domxml_elem_set_attribute_node)
{
zval *id, *arg1, *rv = NULL;
@@ -2852,7 +2795,7 @@ PHP_FUNCTION(domxml_elem_set_attribute_node)
WRONG_PARAM_COUNT;
}
FIXME: The following line doesn't work
/* FIXME: The following line doesn't work */
newattrp = xmlCopyProp(nodep, attrp);
if (!newattrp) {
php_error(E_WARNING, "%s(): no such attribute '%s'", get_active_function_name(TSRMLS_C), attrp->name);
@@ -2861,7 +2804,6 @@ PHP_FUNCTION(domxml_elem_set_attribute_node)
DOMXML_RET_OBJ(rv, (xmlNodePtr) newattrp, &ret);
}
*/
/* }}} */
/* {{{ proto string domxml_elem_has_attribute(string attrname)
@@ -3614,8 +3556,6 @@ PHP_FUNCTION(domxml_dump_node)
}
/* }}} */
/* {{{ idsHashScanner2(void *payload, void *data, xmlChar *name)
*/
static void idsHashScanner2(void *payload, void *data, xmlChar *name)
{
zval *return_value = (zval *) data;
@@ -3629,7 +3569,6 @@ static void idsHashScanner2(void *payload, void *data, xmlChar *name)
child = php_domobject_new(nodep, &ret, NULL TSRMLS_CC);
add_next_index_zval(return_value, child);
}
/* }}} */
/* {{{ proto string domxml_doc_ids(object doc_handle)
Returns array of ids */
@@ -4083,6 +4022,9 @@ PHP_FUNCTION(domxml_parser_start_document)
{
zval *id;
xmlParserCtxtPtr parserp;
char *chunk;
int chunk_len, error;
xmlChar **atts;
DOMXML_PARAM_NONE(parserp, id, le_domxmlparserp);
startDocument(parserp);
@@ -4095,8 +4037,9 @@ PHP_FUNCTION(domxml_parser_start_document)
ends a document */
PHP_FUNCTION(domxml_parser_end_document)
{
zval *id;
zval *id, *rv;
xmlParserCtxtPtr parserp;
int error, ret;
DOMXML_PARAM_NONE(parserp, id, le_domxmlparserp);
endDocument(parserp);
@@ -4111,12 +4054,12 @@ PHP_FUNCTION(domxml_parser_start_element)
zval *id,*params = NULL;
xmlParserCtxtPtr parserp;
char *tagname;
int tagname_len;
int tagname_len, error;
char **atts = NULL;
DOMXML_PARAM_THREE(parserp, id, le_domxmlparserp,"s|a", &tagname, &tagname_len, &params);
if (params != NULL) {
atts = php_xmlparser_make_params(params TSRMLS_CC);
atts = php_xmlparser_make_params(params);
}
if (parserp->myDoc == NULL) {
php_error(E_WARNING, "%s(): Document was not started", get_active_function_name(TSRMLS_C));
@@ -4135,7 +4078,7 @@ PHP_FUNCTION(domxml_parser_end_element)
zval *id;
xmlParserCtxtPtr parserp;
char *tagname;
int tagname_len;
int tagname_len, error;
DOMXML_PARAM_TWO(parserp, id, le_domxmlparserp,"s", &tagname, &tagname_len);
@@ -4157,7 +4100,7 @@ PHP_FUNCTION(domxml_parser_comment)
zval *id;
xmlParserCtxtPtr parserp;
char *commentstring;
int commentstring_len;
int commentstring_len, error;
DOMXML_PARAM_TWO(parserp, id, le_domxmlparserp,"s", &commentstring, &commentstring_len);
@@ -4179,7 +4122,7 @@ PHP_FUNCTION(domxml_parser_cdata_section)
zval *id;
xmlParserCtxtPtr parserp;
char *chunk;
int chunk_len;
int chunk_len, error;
DOMXML_PARAM_TWO(parserp, id, le_domxmlparserp,"s", &chunk, &chunk_len);
@@ -4201,7 +4144,7 @@ PHP_FUNCTION(domxml_parser_characters)
zval *id;
xmlParserCtxtPtr parserp;
char *charactersstring;
int characters_len;
int characters_len, error;
DOMXML_PARAM_TWO(parserp, id, le_domxmlparserp,"s", &charactersstring, &characters_len);
@@ -4223,7 +4166,7 @@ PHP_FUNCTION(domxml_parser_entity_reference)
zval *id;
xmlParserCtxtPtr parserp;
char *referencestring;
int reference_len;
int reference_len, error;
DOMXML_PARAM_TWO(parserp, id, le_domxmlparserp,"s", &referencestring, &reference_len);
@@ -4282,6 +4225,7 @@ PHP_FUNCTION(domxml_parser_namespace_decl)
}
/* }}} */
/* {{{ proto bool domxml_parser_add_chunk(string chunk)
adds xml-chunk to parser */
PHP_FUNCTION(domxml_parser_add_chunk)
@@ -4315,7 +4259,7 @@ PHP_FUNCTION(domxml_parser_end)
DOMXML_PARAM_TWO(parserp, id, le_domxmlparserp,"|s", &chunk, &chunk_len);
error = xmlParseChunk(parserp, chunk, chunk_len, 1);
if (error != 0) {
php_error(E_ERROR, "%s(): error: %d", get_active_function_name(TSRMLS_C), error);
php_error(E_ERROR,"error: %d",error);
RETURN_FALSE;
}
if (parserp->myDoc != NULL) {
@@ -4327,12 +4271,15 @@ PHP_FUNCTION(domxml_parser_end)
}
/* }}} */
/* {{{ proto object domxml_parser_get_document()
Returns DomDocument from parser */
PHP_FUNCTION(domxml_parser_get_document)
{
zval *id,*rv = NULL;
xmlParserCtxtPtr parserp;
char *chunk = NULL;
int chunk_len = 0, error;
int ret;
DOMXML_PARAM_NONE(parserp, id, le_domxmlparserp);
@@ -4345,7 +4292,6 @@ PHP_FUNCTION(domxml_parser_get_document)
}
}
/* }}} */
/* {{{ proto bool domxml_parser_set_keep_blanks(bool mode)
Determines how to handle blanks */
PHP_FUNCTION(domxml_parser_set_keep_blanks)
@@ -4908,7 +4854,7 @@ static char *php_domxslt_string_to_xpathexpr(const char *str TSRMLS_DC)
if (xmlStrchr(string, '"')) {
if (xmlStrchr(string, '\'')) {
php_error(E_WARNING, "%s(): Cannot create XPath expression (string contains both quote and double-quotes)",
php_error(E_WARNING, "Cannot create XPath expression (string contains both quote and double-quotes) in %s",
get_active_function_name(TSRMLS_C));
return NULL;
}
@@ -4946,7 +4892,7 @@ static char **php_domxslt_make_params(zval *idvars, int xpath_params TSRMLS_DC)
zend_hash_move_forward(parht)) {
if (zend_hash_get_current_key(parht, &string_key, &num_key, 1) != HASH_KEY_IS_STRING) {
php_error(E_WARNING, "%s(): Invalid argument or parameter array",
php_error(E_WARNING, "Invalid argument or parameter array to %s",
get_active_function_name(TSRMLS_C));
return NULL;
}
@@ -4983,7 +4929,7 @@ PHP_FUNCTION(domxml_xslt_process)
- test other stuff
- check xsltsp->errors ???
*/
zval *rv = NULL, *idxsl, *idxml, *idparams = NULL;
zval *rv, *idxsl, *idxml, *idparams = NULL;
zend_bool xpath_params = 0;
xsltStylesheetPtr xsltstp;
xmlDocPtr xmldocp;
-4
View File
@@ -23,7 +23,6 @@
#if HAVE_DOMXML
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
#include <libxml/tree.h>
#include <libxml/xmlerror.h>
#if defined(LIBXML_HTML_ENABLED)
@@ -138,7 +137,6 @@ PHP_FUNCTION(domxml_node_has_attributes);
PHP_FUNCTION(domxml_node_has_child_nodes);
PHP_FUNCTION(domxml_node_parent);
PHP_FUNCTION(domxml_node_prefix);
PHP_FUNCTION(domxml_node_namespace_uri);
PHP_FUNCTION(domxml_node);
PHP_FUNCTION(domxml_clone_node);
PHP_FUNCTION(domxml_node_unlink_node);
@@ -164,9 +162,7 @@ PHP_FUNCTION(domxml_elem_get_attribute);
PHP_FUNCTION(domxml_elem_set_attribute);
PHP_FUNCTION(domxml_elem_remove_attribute);
PHP_FUNCTION(domxml_elem_get_attribute_node);
/* since this function is not really implemented, outcomment it for the time beeing
PHP_FUNCTION(domxml_elem_set_attribute_node);
*/
PHP_FUNCTION(domxml_elem_get_elements_by_tagname);
PHP_FUNCTION(domxml_elem_has_attribute);
/* Class CData methods */
-2
View File
@@ -342,7 +342,6 @@ PHPAPI char *php_reg_replace(const char *pattern, const char *replace, const cha
while (*walk)
if ('\\' == *walk
&& '0' <= walk[1] && '9' >= walk[1]
&& walk[1] - '0' <= re.re_nsub
&& subs[walk[1] - '0'].rm_so > -1
&& subs[walk[1] - '0'].rm_eo > -1) {
new_l += subs[walk[1] - '0'].rm_eo
@@ -370,7 +369,6 @@ PHPAPI char *php_reg_replace(const char *pattern, const char *replace, const cha
while (*walk)
if ('\\' == *walk
&& '0' <= walk[1] && '9' >= walk[1]
&& walk[1] - '0' <= re.re_nsub
&& subs[walk[1] - '0'].rm_so > -1
&& subs[walk[1] - '0'].rm_eo > -1
/* this next case shouldn't happen. it does. */
+320 -854
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -25,4 +25,4 @@ foreach($image as $idx=>$section) {
echo $accept;
?>
--EXPECT--
ArrayFitest2.jpgFi1240Fi2Miimage/jpegSeANY_TAG, IFD0, THUMBNAIL, COMMENTArrayhtwidth="1" height="1"He1Wi1Is1By1UsExif test image.UsASCIICoPhoto (c) M.Boerger, Edited by M.Boerger.CoPhoto (c) M.BoergerCoEdited by M.Boerger.Th2Thimage/jpegArrayCoPhoto (c) M.BoergerUsASCIIArrayJP134JP523Array0Comment #1.1Comment #2.2Comment #3end
ArrayFitest2.jpgFi1240Fi2SeANY_TAG, IFD0, THUMBNAIL, COMMENTArrayhtwidth="1" height="1"He1Wi1Is1By1UsExif test image.UsASCIICoPhoto (c) M.Boerger, Edited by M.Boerger.CoPhoto (c) M.BoergerCoEdited by M.Boerger.ArrayCoPhoto (c) M.BoergerUsASCIIArrayJP134JP523Array0Comment #1.1Comment #2.2Comment #3end
+2 -4
View File
@@ -12,9 +12,7 @@ Check for exif_read_data, Unicode user comment
copy of test1.jpg as a thumbnail.
test3.jpg is the same as test2.jpg but with a UNICODE UserComment: &Auml;&Ouml;&&Uuml;&szlig;&auml;&ouml;&uuml;
*/
chdir($_ENV['PHP_DIR']);
ini_alter('exif.decode_unicode_motorola', 'UCS-2BE');
ini_alter('exif.encode_unicode', 'ISO-8859-15');
ini_alter('exif.encode_unicode', 'ISO-8859-15');
$image = exif_read_data('./ext/exif/tests/test3.jpg','',true,false);
$accept = '';
foreach($image as $idx=>$section) {
@@ -29,4 +27,4 @@ foreach($image as $idx=>$section) {
echo $accept;
?>
--EXPECT--
ArrayFitest3.jpgFi1240Fi2Miimage/jpegSeANY_TAG, IFD0, THUMBNAIL, COMMENTArrayhtwidth="1" height="1"He1Wi1Is1By1UsÄÖÜßäöüUsUNICODECoPhoto (c) M.Boerger, Edited by M.Boerger.CoPhoto (c) M.BoergerCoEdited by M.Boerger.Th2Thimage/jpegArrayCoPhoto (c) M.BoergerUsUNICODEArrayJP134JP523Array0Comment #1.1Comment #2.2Comment #3end
ArrayFitest3.jpgFi1237Fi2SeANY_TAG, IFD0, THUMBNAIL, COMMENTArrayhtwidth="1" height="1"He1Wi1Is1By1UsÄÖÜßäöüUsUNICODECoPhoto (c) M.Boerger, Edited by M.Boerger.CoPhoto (c) M.BoergerCoEdited by M.Boerger.ArrayCoPhoto (c) M.BoergerUsUNICODEArrayJP134JP523Array0Comment #1.1Comment #2.2Comment #3end
-32
View File
@@ -1,32 +0,0 @@
--TEST--
Check for exif_read_data, Unicode WinXP tags
--SKIPIF--
<?php if (!extension_loaded("exif")) print "skip";?>
--POST--
--GET--
--FILE--
<?php
/*
test4.jpg is a 1*1 image that contains Exif tags written by WindowsXP
*/
chdir($_ENV['PHP_DIR']);
ini_alter('exif.decode_unicode_motorola', 'UCS-2BE');
ini_alter('exif.encode_unicode', 'ISO-8859-15');
$image = exif_read_data('./ext/exif/tests/test4.jpg','',true,false);
$accept = '';
foreach($image as $idx=>$section) {
$accept .= $section;
foreach($section as $name=>$value) {
if ( $idx!='FILE' || $name!='FileDateTime') {
$accept .= substr($name,0,2);
$accept .= $value;
}
}
}
echo $accept;
?>
--EXPECT--
ArrayFitest4.jpgFi713Fi2Miimage/jpegSeANY_TAG, IFD0, WINXPArrayhtwidth="1" height="1"He1Wi1Is1By0ArraySuArrayKeArrayAuArrayCoArrayTiArrayArraySuSubject...KeKeywords...AuRui CarmoCoComments
Line2
Line3
Line4TiTitle...
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

+11 -21
View File
@@ -7,13 +7,12 @@ givup() {
usage() {
echo "$0 --extname=module [--proto=file] [--stubs=file] [--xml[=file]]"
echo " [--skel=dir] [--full-xml] [--no-help]"
echo " [--full-xml] [--no-help]"
echo ""
echo " --extname=module module is the name of your extension"
echo " --proto=file file contains prototypes of functions to create"
echo " --stubs=file generate only function stubs in file"
echo " --xml generate xml documentation to be added to phpdoc-cvs"
echo " --skel=dir path to the skeleton directory"
echo " --full-xml generate xml documentation for a self-contained extension"
echo " (not yet implemented)"
echo " --no-help don't try to be nice and create comments in the code"
@@ -34,7 +33,7 @@ while test $# -gt 0; do
case $1 in
--extname=?*)
extname=$optarg
EXTNAME=`echo $extname | tr "[:lower:]" "[:upper:]"`
EXTNAME=`echo $extname | tr [a-z] [A-Z]`
;;
--proto=?*)
proto=$optarg
@@ -55,9 +54,6 @@ while test $# -gt 0; do
--no-help)
no_help="yes"
;;
--skel=?*)
skel_dir=$optarg
;;
*)
usage
;;
@@ -69,14 +65,8 @@ if test -d "$extname" ; then
givup "Directory $extname already exists."
fi
if test -z "$skel_dir"; then
skel_dir="skeleton"
fi
## convert skel_dir to full path
skel_dir=`cd $skel_dir && pwd`
test -d $skel_dir || givup "directory $skel_dir does not exist or is not directory"
test -f ext_skel || givup "ext_skel must be in the current directory"
test -d skeleton || givup "subdirectory skeleton does not exist or is not directory"
if echo '\c' | grep -s c >/dev/null 2>&1
then
@@ -94,7 +84,7 @@ if test -z "$stubs"; then
fi
if test -n "$proto"; then
cat $proto | awk -v extname=$extname -v stubs=$stubs -v stubfile=$stubfile -v xml=$xml -v full_xml=$full_xml -v i_know_what_to_do_shut_up_i_dont_need_your_help_mode=$no_help -f $skel_dir/create_stubs
cat $proto | awk -v extname=$extname -v stubs=$stubs -v stubfile=$stubfile -v xml=$xml -v full_xml=$full_xml -v i_know_what_to_do_shut_up_i_dont_need_your_help_mode=$no_help -f ./skeleton/create_stubs
fi
if test -z "$stubs"; then
@@ -197,7 +187,7 @@ if [ ! -z "$no_help" ]; then
echo '/^[[:space:]]*\/\*/,/^[[:space:]]*\*\//D' >> sedscript
fi
sed -f sedscript < $skel_dir/skeleton.c > $extname.c
sed -f sedscript <../skeleton/skeleton.c > $extname.c
$ECHO_N " php_$extname.h$ECHO_C"
@@ -215,26 +205,26 @@ if [ ! -z "$no_help" ]; then
echo 's/^\/\*.*\*\/$//' >> sedscript
echo '/^[[:space:]]*\/\*/,/^[[:space:]]*\*\//D' >> sedscript
fi
sed -f sedscript <$skel_dir/php_skeleton.h > php_$extname.h
sed -f sedscript <../skeleton/php_skeleton.h > php_$extname.h
$ECHO_N " CREDITS$ECHO_C"
echo "s/extname/$extname/g" > sedscript
sed -f sedscript <$skel_dir/CREDITS > CREDITS
sed -f sedscript <../skeleton/CREDITS > CREDITS
$ECHO_N " EXPERIMENTAL$ECHO_C"
echo "s/extname/$extname/g" > sedscript
sed -f sedscript <$skel_dir/EXPERIMENTAL > EXPERIMENTAL
sed -f sedscript <../skeleton/EXPERIMENTAL > EXPERIMENTAL
$ECHO_N " tests/001.phpt$ECHO_C"
mkdir tests || givup "Cannot create tests directory"
chmod 755 tests
sed -f sedscript <$skel_dir/tests/001.phpt > tests/001.phpt
sed -f sedscript <../skeleton/tests/001.phpt > tests/001.phpt
if test -z "$stubs" && test -z "$no_help"; then
$ECHO_N " $extname.php$ECHO_C"
sed \
-e "s/extname/$extname/g" \
<$skel_dir/skeleton.php \
<../skeleton/skeleton.php \
> $extname.php
fi
+44 -44
View File
@@ -262,7 +262,7 @@ ZEND_GET_MODULE(fbsql)
#define CHECK_LINK(link) { \
if (link==-1) { \
if (FB_SQL_G(generateWarnings)) \
php_error(E_WARNING, "%s(): A link to the server could not be established", get_active_function_name(TSRMLS_C)); \
php_error(E_WARNING, "FrontBase: A link to the server could not be established"); \
RETURN_FALSE; \
} \
}
@@ -526,14 +526,14 @@ static void php_fbsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if ((FB_SQL_G(maxLinks) != -1 && FB_SQL_G(linkCount) == FB_SQL_G(maxLinks)))
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): FrontBase link limit %d exceeded ", get_active_function_name(TSRMLS_C), FB_SQL_G(maxLinks));
php_error(E_WARNING, "FrontBase link limit %d exceeded ", FB_SQL_G(maxLinks));
RETURN_FALSE;
}
if ((FB_SQL_G(maxPersistent) != -1 && FB_SQL_G(persistentCount) == FB_SQL_G(maxPersistent)))
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): FrontBase persistent link limit %d exceeded ", get_active_function_name(TSRMLS_C), FB_SQL_G(maxPersistent));
php_error(E_WARNING, "FrontBase persistent link limit %d exceeded ", FB_SQL_G(maxPersistent));
RETURN_FALSE;
}
@@ -575,7 +575,7 @@ static void php_fbsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if ((FB_SQL_G(maxLinks) != -1 && FB_SQL_G(linkCount) == FB_SQL_G(maxLinks)))
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): FrontBase link limit %d exceeded ", get_active_function_name(TSRMLS_C), FB_SQL_G(maxLinks));
php_error(E_WARNING, "FrontBase link limit %d exceeded ", FB_SQL_G(maxLinks));
RETURN_FALSE;
}
@@ -722,7 +722,7 @@ static int php_fbsql_select_db(char *databaseName, PHPFBLink *link TSRMLS_DC)
if (c == NULL)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), fbcdcClassErrorMessage());
php_error(E_WARNING, fbcdcClassErrorMessage());
return 0;
}
md = fbcdcCreateSession(c, "PHP", link->userName, link->userPassword, link->userName);
@@ -733,9 +733,9 @@ static int php_fbsql_select_db(char *databaseName, PHPFBLink *link TSRMLS_DC)
if (FB_SQL_G(generateWarnings))
{
if (emg)
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), emg);
php_error(E_WARNING, emg);
else
php_error(E_WARNING, "%s(): No message", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "No message");
}
link->errorText = strdup(emg);
link->errorNo = fbcemdErrorCodeAtIndex(emd, 0);;
@@ -1050,7 +1050,7 @@ static void php_fbsql_read_lob(INTERNAL_FUNCTION_PARAMETERS, int lob_type)
convert_to_string_ex(lob_handle);
if (Z_STRLEN_PP(lob_handle) != 27 || Z_STRVAL_PP(lob_handle)[0] != '@') {
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "%s(): The handle is invalid", get_active_function_name(TSRMLS_C));
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "The handle is invalid");
RETURN_FALSE;
}
@@ -1113,7 +1113,7 @@ static void php_fbsql_lob_size(INTERNAL_FUNCTION_PARAMETERS, int lob_type)
convert_to_string_ex(lob_handle);
if (Z_STRLEN_PP(lob_handle) != 27 || Z_STRVAL_PP(lob_handle)[0] != '@') {
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "%s(): The handle is invalid", get_active_function_name(TSRMLS_C));
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "The handle is invalid");
RETURN_FALSE;
}
@@ -1349,8 +1349,8 @@ PHP_FUNCTION(fbsql_select_db)
int port = atoi(name);
if (port == 0 || port > 64535) {
if (FB_SQL_G(generateWarnings)) {
php_error(E_WARNING, "%s(): Cannot connect to FBExec for database '%s'", get_active_function_name(TSRMLS_C), name);
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), fbcehClassErrorMessage());
php_error(E_WARNING, "Cannot connect to FBExec for database '%s'", name);
php_error(E_WARNING, fbcehClassErrorMessage());
}
RETURN_FALSE;
}
@@ -1465,14 +1465,14 @@ PHP_FUNCTION(fbsql_create_db)
else if (status == FBStopping) txt = "stopping";
else if (status == FBNoExec ) txt = "no exec";
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Could not create %s@%s, database is %s", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName, txt);
php_error(E_WARNING, "Could not create %s@%s, database is %s", databaseName, phpLink->hostName, txt);
RETURN_FALSE;
}
if (!fbcehCreateDatabaseNamedWithOptions(phpLink->execHandler, databaseName, ""))
{
char* error = fbechErrorMessage(phpLink->execHandler);
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Could not create %s@%s. %s.", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName, error);
php_error(E_WARNING, "Could not create %s@%s. %s.", databaseName, phpLink->hostName, error);
RETURN_FALSE;
}
for (i=0; i < 20; i++)
@@ -1488,7 +1488,7 @@ PHP_FUNCTION(fbsql_create_db)
if (status != FBRunning)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Database %s@%s created -- status unknown", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName);
php_error(E_WARNING, "Database %s@%s created -- status unknown", databaseName, phpLink->hostName);
RETURN_FALSE;
}
RETURN_TRUE;
@@ -1539,7 +1539,7 @@ PHP_FUNCTION(fbsql_drop_db)
else if (status == FBStopping ) txt = "stopping";
else if (status == FBNoExec ) txt = "no exec";
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Could not drop %s@%s, database is %s.", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName, txt);
php_error(E_WARNING, "Could not drop %s@%s, database is %s.", databaseName, phpLink->hostName, txt);
RETURN_FALSE;
}
@@ -1547,7 +1547,7 @@ PHP_FUNCTION(fbsql_drop_db)
{
char* error = fbechErrorMessage(phpLink->execHandler);
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Could not drop %s@%s. %s.", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName, error);
php_error(E_WARNING, "Could not drop %s@%s. %s.", databaseName, phpLink->hostName, error);
RETURN_FALSE;
}
for (i=0; i < 20; i++)
@@ -1563,7 +1563,7 @@ PHP_FUNCTION(fbsql_drop_db)
if (status != FBUnknownStatus)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Database %s@%s dropped -- status unknown", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName);
php_error(E_WARNING, "Database %s@%s dropped -- status unknown", databaseName, phpLink->hostName);
RETURN_FALSE;
}
}
@@ -1612,7 +1612,7 @@ PHP_FUNCTION(fbsql_start_db)
else if (status == FBStopping) txt = "stopping";
else if (status == FBNoExec ) txt = "no exec";
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Could not start %s@%s, as database is %s.", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName, txt);
php_error(E_WARNING, "Could not start %s@%s, as database is %s.", databaseName, phpLink->hostName, txt);
RETURN_FALSE;
}
@@ -1622,7 +1622,7 @@ PHP_FUNCTION(fbsql_start_db)
{
char* error = fbechErrorMessage(phpLink->execHandler);
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Could not start %s@%s. %s.", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName, error);
php_error(E_WARNING, "Could not start %s@%s. %s.", databaseName, phpLink->hostName, error);
RETURN_FALSE;
}
}
@@ -1640,7 +1640,7 @@ PHP_FUNCTION(fbsql_start_db)
if (status != FBRunning)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Database %s@%s started -- status unknown", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName);
php_error(E_WARNING, "Database %s@%s started -- status unknown", databaseName, phpLink->hostName);
RETURN_FALSE;
}
RETURN_TRUE;
@@ -1688,7 +1688,7 @@ PHP_FUNCTION(fbsql_stop_db)
if (!fbcdcStopDatabase(phpLink->connection))
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Cannot stop database %s@%s", get_active_function_name(TSRMLS_C), databaseName, phpLink->hostName);
php_error(E_WARNING, "Cannot stop database %s@%s", databaseName, phpLink->hostName);
RETURN_FALSE;
}
@@ -1765,7 +1765,7 @@ int mdOk(PHPFBLink* link, FBCMetaData* md, char* sql)
{
link->errorNo = 1;
link->errorText = strdup("Connection to database server was lost");
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), link->errorText);
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, link->errorText);
result = 0;
}
else if (fbcmdErrorsFound(md))
@@ -1775,9 +1775,9 @@ int mdOk(PHPFBLink* link, FBCMetaData* md, char* sql)
if (FB_SQL_G(generateWarnings))
{
if (emg)
php_error(E_WARNING, "%s(): Error in statement: '%s' %s", get_active_function_name(TSRMLS_C), sql, emg);
php_error(E_WARNING, "Error in statement: '%s' %s", sql, emg);
else
php_error(E_WARNING, "%s(): No message", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "No message");
}
link->errorText = strdup(emg);
link->errorNo = fbcemdErrorCodeAtIndex(emd, 0);;
@@ -2232,7 +2232,7 @@ int phpSizeOfInt (int i)
}
/* }}} */
void phpfbColumnAsString(PHPFBResult* result, int column, void* data , int* length, char** value TSRMLS_DC)
void phpfbColumnAsString (PHPFBResult* result, int column, void* data , int* length, char** value)
{
FBCMetaData* md = result->metaData;
const FBCDatatypeMetaData* dtmd = fbcmdDatatypeMetaDataAtIndex(md, column);
@@ -2432,7 +2432,7 @@ void phpfbColumnAsString(PHPFBResult* result, int column, void* data , int* leng
break;
default:
php_error(E_ERROR, "%s(): Unimplemented type", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Unimplemented type");
break;
}
}
@@ -2477,13 +2477,13 @@ void phpfbSqlResult(INTERNAL_FUNCTION_PARAMETERS, PHPFBResult* result, int rowIn
else if (!phpfbFetchRow(result, rowIndex))
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): No such row %d in result set %d", get_active_function_name(TSRMLS_C), rowIndex, rowIndex);
php_error(E_WARNING, "No such row %d in result set %d", rowIndex, rowIndex);
RETURN_FALSE;
}
else if (columnIndex >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): No such column %d in result set %d", get_active_function_name(TSRMLS_C), columnIndex, rowIndex);
php_error(E_WARNING, "No such column %d in result set %d", columnIndex, rowIndex);
RETURN_FALSE;
}
else
@@ -2495,7 +2495,7 @@ void phpfbSqlResult(INTERNAL_FUNCTION_PARAMETERS, PHPFBResult* result, int rowIn
}
else if (row[columnIndex])
{
phpfbColumnAsString(result, columnIndex, row[columnIndex], &Z_STRLEN_P(return_value), &Z_STRVAL_P(return_value) TSRMLS_CC);
phpfbColumnAsString(result, columnIndex, row[columnIndex], &Z_STRLEN_P(return_value), &Z_STRVAL_P(return_value));
Z_TYPE_P(return_value) = IS_STRING;
}
else
@@ -2564,7 +2564,7 @@ PHP_FUNCTION(fbsql_result)
if (columnIndex < 0)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Illegal column index - %d", get_active_function_name(TSRMLS_C), columnIndex);
php_error(E_WARNING, "Illegal column index - %d", columnIndex);
RETURN_FALSE;
}
}
@@ -2797,7 +2797,7 @@ static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
if (((result_type & FBSQL_NUM) != FBSQL_NUM) && ((result_type & FBSQL_ASSOC) != FBSQL_ASSOC))
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Illegal result type use FBSQL_NUM, FBSQL_ASSOC, or FBSQL_BOTH.", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Illegal result type use FBSQL_NUM, FBSQL_ASSOC, or FBSQL_BOTH.");
RETURN_FALSE;
}
if (array_init(return_value)==FAILURE)
@@ -2910,7 +2910,7 @@ static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
char* value;
unsigned int length;
unsigned int c = 0;
phpfbColumnAsString(result, i, row[i], &length, &value TSRMLS_CC);
phpfbColumnAsString(result, i, row[i], &length, &value);
if (result_type & FBSQL_NUM)
{
add_index_stringl(return_value, i, value, length, c);
@@ -2966,7 +2966,7 @@ PHP_FUNCTION(fbsql_data_seek)
if (rowIndex < 0)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Illegal row_index (%i)", get_active_function_name(TSRMLS_C), rowIndex);
php_error(E_WARNING, "Illegal row_index (%i)", rowIndex);
RETURN_FALSE;
}
@@ -3004,7 +3004,7 @@ PHP_FUNCTION(fbsql_fetch_lengths)
for (i=0; i < result->columnCount; i++)
{
unsigned length = 0;
if (result->row[i]) phpfbColumnAsString(result, i, result->row[i], &length, NULL TSRMLS_CC);
if (result->row[i]) phpfbColumnAsString(result, i, result->row[i], &length, NULL);
add_index_long(return_value, i, length);
}
}
@@ -3043,7 +3043,7 @@ PHP_FUNCTION(fbsql_fetch_field)
if (column < 0 || column >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %d no such column in result", get_active_function_name(TSRMLS_C), column);
php_error(E_WARNING, "%d no such column in result", column);
RETURN_FALSE;
}
}
@@ -3100,7 +3100,7 @@ PHP_FUNCTION(fbsql_field_seek)
if (column < 0 || column >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %d no such column in result", get_active_function_name(TSRMLS_C), column);
php_error(E_WARNING, "%d no such column in result", column);
RETURN_FALSE;
}
}
@@ -3143,7 +3143,7 @@ PHP_FUNCTION(fbsql_field_name)
if (column < 0 || column >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %d no such column in result", get_active_function_name(TSRMLS_C), column);
php_error(E_WARNING, "%d no such column in result", column);
RETURN_FALSE;
}
}
@@ -3192,7 +3192,7 @@ PHP_FUNCTION(fbsql_field_table)
if (column < 0 || column >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %d no such column in result", get_active_function_name(TSRMLS_C), column);
php_error(E_WARNING, "%d no such column in result", column);
RETURN_FALSE;
}
}
@@ -3233,7 +3233,7 @@ PHP_FUNCTION(fbsql_field_len)
if (column < 0 || column >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %d no such column in result", get_active_function_name(TSRMLS_C), column);
php_error(E_WARNING, "%d no such column in result", column);
RETURN_FALSE;
}
}
@@ -3285,7 +3285,7 @@ PHP_FUNCTION(fbsql_field_type)
if (column < 0 || column >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %d no such column in result", get_active_function_name(TSRMLS_C), column);
php_error(E_WARNING, "%d no such column in result", column);
RETURN_FALSE;
}
}
@@ -3339,7 +3339,7 @@ PHP_FUNCTION(fbsql_field_flags)
if (column < 0 || column >= result->columnCount)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): %d no such column in result", get_active_function_name(TSRMLS_C), column);
php_error(E_WARNING, "%d no such column in result", column);
RETURN_FALSE;
}
}
@@ -3417,7 +3417,7 @@ PHP_FUNCTION(fbsql_table_name)
if (index < 0)
{
if (FB_SQL_G(generateWarnings))
php_error(E_WARNING, "%s(): Illegal index (%i)", get_active_function_name(TSRMLS_C), index);
php_error(E_WARNING, "Illegal index (%i)", index);
RETURN_FALSE;
}
@@ -3427,7 +3427,7 @@ PHP_FUNCTION(fbsql_table_name)
result->columnIndex = 0;
row = fbcrhRowAtIndex(result->rowHandler, index);
phpfbColumnAsString(result, 0, row[0], &length, &value TSRMLS_CC);
phpfbColumnAsString(result, 0, row[0], &length, &value);
RETURN_STRINGL(value, length, 1);
}
/* }}} */
@@ -3483,7 +3483,7 @@ PHP_FUNCTION(fbsql_get_autostart_info)
ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink);
if (phpLink->execHandler == NULL) {
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "%s(): No valid Exec handler available for this connection", get_active_function_name(TSRMLS_C));
if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "No valid Exec handler available for this connection");
RETURN_FALSE;
}
else {
+17 -17
View File
@@ -196,7 +196,7 @@ PHP_FUNCTION(fdf_open)
err = FDFOpen(Z_STRVAL_PP(file), 0, &fdf);
if(err != FDFErcOK || !fdf) {
php_error(E_WARNING, "%s(): Could not open fdf document: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(file));
php_error(E_WARNING, "Could not open fdf document: %s", Z_STRVAL_PP(file));
RETURN_FALSE;
}
@@ -218,7 +218,7 @@ PHP_FUNCTION(fdf_create)
err = FDFCreate(&fdf);
if(err != FDFErcOK || !fdf) {
php_error(E_WARNING, "%s(): Error creating new fdf document!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Error creating new fdf document!");
RETURN_FALSE;
}
@@ -268,7 +268,7 @@ PHP_FUNCTION(fdf_get_value)
}
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error getting value of %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(fieldname));
php_error(E_WARNING, "Error getting value of %s", Z_STRVAL_PP(fieldname));
efree(buffer);
RETURN_FALSE;
}
@@ -298,7 +298,7 @@ PHP_FUNCTION(fdf_set_value)
err = FDFSetValue(fdf, Z_STRVAL_PP(fieldname), Z_STRVAL_PP(value), (ASBool) Z_LVAL_PP(isname));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting field: %s to value: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(fieldname), Z_STRVAL_PP(value));
php_error(E_WARNING, "Error setting field: %s to value: %s", Z_STRVAL_PP(fieldname), Z_STRVAL_PP(value));
RETURN_FALSE;
}
RETURN_TRUE;
@@ -337,7 +337,7 @@ PHP_FUNCTION(fdf_next_field_name)
if(err != FDFErcOK) {
efree(buffer);
php_error(E_WARNING, "%s(): Error getting next fieldname!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Error getting next fieldname!");
RETURN_FALSE;
}
@@ -386,7 +386,7 @@ PHP_FUNCTION(fdf_set_ap)
possible errors this function can return. Or create global error handler function.
*/
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting appearence of field: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(fieldname));
php_error(E_WARNING,"Error setting appearence of field: %s", Z_STRVAL_PP(fieldname));
RETURN_FALSE;
}
@@ -413,7 +413,7 @@ PHP_FUNCTION(fdf_set_status)
err = FDFSetStatus(fdf, Z_STRVAL_PP(status));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting fdf document status key to: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(status));
php_error(E_WARNING,"Error setting fdf document status key to: %s", Z_STRVAL_PP(status));
RETURN_FALSE;
}
@@ -446,7 +446,7 @@ PHP_FUNCTION(fdf_get_status)
}
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error getting fdf document status key!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Error getting fdf document status key!");
efree(buf);
RETURN_FALSE;
}
@@ -474,7 +474,7 @@ PHP_FUNCTION(fdf_set_file)
err = FDFSetFile(fdf, Z_STRVAL_PP(filename));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting filename key to: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(filename));
php_error(E_WARNING,"Error setting filename key to: %s", Z_STRVAL_PP(filename));
RETURN_FALSE;
}
@@ -507,7 +507,7 @@ PHP_FUNCTION(fdf_get_file)
}
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error getting fdf document filename key!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Error getting fdf document filename key!");
efree(buf);
RETURN_FALSE;
}
@@ -534,7 +534,7 @@ PHP_FUNCTION(fdf_save)
convert_to_string_ex(filename);
err = FDFSave(fdf, Z_STRVAL_PP(filename));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error saving fdf document into filename: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(filename));
php_error(E_WARNING,"Error saving fdf document into filename: %s", Z_STRVAL_PP(filename));
RETURN_FALSE;
}
@@ -574,7 +574,7 @@ PHP_FUNCTION(fdf_add_template)
err = FDFAddTemplate(fdf, Z_LVAL_PP(newpage), &filespec, Z_STRVAL_PP(template), Z_LVAL_PP(rename));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error adding template: %s into fdf document", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(template));
php_error(E_WARNING,"Error adding template: %s into fdf document", Z_STRVAL_PP(template));
RETURN_FALSE;
}
@@ -602,7 +602,7 @@ PHP_FUNCTION(fdf_set_flags)
err=FDFSetFlags(fdf, Z_STRVAL_PP(fieldname), Z_LVAL_PP(flags), Z_LVAL_PP(newflags));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting flags for field: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(fieldname));
php_error(E_WARNING,"Error setting flags for field: %s", Z_STRVAL_PP(fieldname));
RETURN_FALSE;
}
@@ -631,7 +631,7 @@ PHP_FUNCTION(fdf_set_opt)
err = FDFSetOpt(fdf, Z_STRVAL_PP(fieldname), Z_LVAL_PP(element), Z_STRVAL_PP(value), Z_STRVAL_PP(name));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting FDF option for field: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(fieldname));
php_error(E_WARNING,"Error setting FDF option for field: %s", Z_STRVAL_PP(fieldname));
RETURN_FALSE;
}
RETURN_TRUE;
@@ -659,7 +659,7 @@ PHP_FUNCTION(fdf_set_submit_form_action)
err = FDFSetSubmitFormAction(fdf, Z_STRVAL_PP(fieldname), Z_LVAL_PP(trigger), Z_STRVAL_PP(url), Z_LVAL_PP(flags));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting FDF submit action for field: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(fieldname));
php_error(E_WARNING,"Error setting FDF submit action for field: %s", Z_STRVAL_PP(fieldname));
RETURN_FALSE;
}
RETURN_TRUE;
@@ -686,7 +686,7 @@ PHP_FUNCTION(fdf_set_javascript_action)
err = FDFSetJavaScriptAction(fdf, Z_STRVAL_PP(fieldname), Z_LVAL_PP(trigger), Z_STRVAL_PP(script));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting FDF javascript action for field: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(fieldname));
php_error(E_WARNING,"Error setting FDF javascript action for field: %s", Z_STRVAL_PP(fieldname));
RETURN_FALSE;
}
RETURN_TRUE;
@@ -712,7 +712,7 @@ PHP_FUNCTION(fdf_set_encoding)
err = FDFSetEncoding(fdf, Z_STRVAL_PP(enc));
if(err != FDFErcOK) {
php_error(E_WARNING, "%s(): Error setting FDF encoding: %s", get_active_function_name(TSRMLS_C), Z_STRVAL_PP(enc));
php_error(E_WARNING,"Error setting FDF encoding: %s", Z_STRVAL_PP(enc));
RETURN_FALSE;
}
RETURN_TRUE;
+18 -18
View File
@@ -237,20 +237,20 @@ PHP_FUNCTION(filepro)
}
if (!(fp = VCWD_FOPEN(workbuf, "r"))) {
php_error(E_WARNING, "%s(): Cannot open map: [%d] %s", get_active_function_name(TSRMLS_C),
php_error(E_WARNING, "filePro: cannot open map: [%d] %s",
errno, strerror(errno));
RETURN_FALSE;
}
if (!fgets(readbuf, sizeof(readbuf), fp)) {
fclose(fp);
php_error(E_WARNING, "%s(): Cannot read map: [%d] %s", get_active_function_name(TSRMLS_C),
php_error(E_WARNING, "filePro: cannot read map: [%d] %s",
errno, strerror(errno));
RETURN_FALSE;
}
/* Get the field count, assume the file is readable! */
if (strcmp(php_strtok_r(readbuf, ":", &strtok_buf), "map")) {
php_error(E_WARNING, "%s(): Map file corrupt or encrypted", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "filePro: map file corrupt or encrypted");
RETURN_FALSE;
}
FP_GLOBAL(fp_keysize) = atoi(php_strtok_r(NULL, ":", &strtok_buf));
@@ -261,7 +261,7 @@ PHP_FUNCTION(filepro)
for (i = 0; i < FP_GLOBAL(fp_fcount); i++) {
if (!fgets(readbuf, sizeof(readbuf), fp)) {
fclose(fp);
php_error(E_WARNING, "%s(): Cannot read map: [%d] %s", get_active_function_name(TSRMLS_C),
php_error(E_WARNING, "filePro: cannot read map: [%d] %s",
errno, strerror(errno));
RETURN_FALSE;
}
@@ -317,7 +317,7 @@ PHP_FUNCTION(filepro_rowcount)
if (!FP_GLOBAL(fp_database)) {
php_error(E_WARNING,
"%s(): Must set database directory first!", get_active_function_name(TSRMLS_C));
"filePro: must set database directory first!\n");
RETURN_FALSE;
}
@@ -335,7 +335,7 @@ PHP_FUNCTION(filepro_rowcount)
}
if (!(fp = VCWD_FOPEN(workbuf, "r"))) {
php_error(E_WARNING, "%s(): Cannot open key: [%d] %s", get_active_function_name(TSRMLS_C),
php_error(E_WARNING, "filePro: cannot open key: [%d] %s",
errno, strerror(errno));
RETURN_FALSE;
}
@@ -375,7 +375,7 @@ PHP_FUNCTION(filepro_fieldname)
if (!FP_GLOBAL(fp_database)) {
php_error(E_WARNING,
"%s(): Must set database directory first!", get_active_function_name(TSRMLS_C));
"filePro: must set database directory first!\n");
RETURN_FALSE;
}
@@ -386,7 +386,7 @@ PHP_FUNCTION(filepro_fieldname)
}
php_error(E_WARNING,
"%s(): Unable to locate field number %d.", get_active_function_name(TSRMLS_C),
"filePro: unable to locate field number %d.\n",
Z_LVAL_P(fno));
RETVAL_FALSE;
@@ -416,7 +416,7 @@ PHP_FUNCTION(filepro_fieldtype)
if (!FP_GLOBAL(fp_database)) {
php_error(E_WARNING,
"%s(): Must set database directory first!", get_active_function_name(TSRMLS_C));
"filePro: must set database directory first!\n");
RETURN_FALSE;
}
@@ -426,7 +426,7 @@ PHP_FUNCTION(filepro_fieldtype)
}
}
php_error(E_WARNING,
"%s(): Unable to locate field number %d.", get_active_function_name(TSRMLS_C),
"filePro: unable to locate field number %d.\n",
Z_LVAL_P(fno));
RETVAL_FALSE;
}
@@ -455,7 +455,7 @@ PHP_FUNCTION(filepro_fieldwidth)
if (!FP_GLOBAL(fp_database)) {
php_error(E_WARNING,
"%s(): Must set database directory first!", get_active_function_name(TSRMLS_C));
"filePro: must set database directory first!\n");
RETURN_FALSE;
}
@@ -465,7 +465,7 @@ PHP_FUNCTION(filepro_fieldwidth)
}
}
php_error(E_WARNING,
"%s(): Unable to locate field number %d.", get_active_function_name(TSRMLS_C),
"filePro: unable to locate field number %d.\n",
Z_LVAL_P(fno));
RETVAL_FALSE;
}
@@ -489,7 +489,7 @@ PHP_FUNCTION(filepro_fieldcount)
if (!FP_GLOBAL(fp_database)) {
php_error(E_WARNING,
"%s(): Must set database directory first!", get_active_function_name(TSRMLS_C));
"filePro: must set database directory first!\n");
RETURN_FALSE;
}
@@ -523,7 +523,7 @@ PHP_FUNCTION(filepro_retrieve)
if (!FP_GLOBAL(fp_database)) {
php_error(E_WARNING,
"%s(): Must set database directory first!", get_active_function_name(TSRMLS_C));
"filePro: must set database directory first!\n");
RETURN_FALSE;
}
@@ -534,7 +534,7 @@ PHP_FUNCTION(filepro_retrieve)
rnum = Z_LVAL_P(rno);
if (rnum < 0 || fnum < 0 || fnum >= FP_GLOBAL(fp_fcount)) {
php_error(E_WARNING, "%s(): Parameters out of range", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "filepro: parameters out of range");
RETURN_FALSE;
}
@@ -543,7 +543,7 @@ PHP_FUNCTION(filepro_retrieve)
offset += lp->width;
}
if (!lp) {
php_error(E_WARNING, "%s(): Cannot locate field", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "filePro: cannot locate field");
RETURN_FALSE;
}
@@ -559,7 +559,7 @@ PHP_FUNCTION(filepro_retrieve)
}
if (!(fp = VCWD_FOPEN(workbuf, "r"))) {
php_error(E_WARNING, "%s(): Cannot open key: [%d] %s", get_active_function_name(TSRMLS_C),
php_error(E_WARNING, "filePro: cannot open key: [%d] %s",
errno, strerror(errno));
fclose(fp);
RETURN_FALSE;
@@ -568,7 +568,7 @@ PHP_FUNCTION(filepro_retrieve)
readbuf = emalloc (lp->width+1);
if (fread(readbuf, lp->width, 1, fp) != 1) {
php_error(E_WARNING, "%s(): Cannot read data: [%d] %s", get_active_function_name(TSRMLS_C),
php_error(E_WARNING, "filePro: cannot read data: [%d] %s",
errno, strerror(errno));
efree(readbuf);
fclose(fp);
-1
View File
@@ -1,3 +1,2 @@
FTP
Andrew Skalski
Stefan Esser
+12 -335
View File
@@ -12,8 +12,7 @@
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andrew Skalski <askalski@chek.com> |
| Stefan Esser <sesser@php.net> (resume functions) |
| Author: Andrew Skalski <askalski@chek.com> |
+----------------------------------------------------------------------+
*/
@@ -106,7 +105,6 @@ ftp_open(const char *host, short port, long timeout_sec)
{
ftpbuf_t *ftp;
int size;
struct timeval tv;
/* alloc the ftp structure */
@@ -116,17 +114,13 @@ ftp_open(const char *host, short port, long timeout_sec)
return NULL;
}
tv.tv_sec = timeout_sec;
tv.tv_usec = 0;
ftp->fd = php_hostconnect(host, (unsigned short) (port ? port : 21), SOCK_STREAM, &tv);
ftp->fd = php_hostconnect(host, (unsigned short) (port ? port : 21), SOCK_STREAM, (int) timeout_sec);
if (ftp->fd == -1) {
goto bail;
}
/* Default Settings */
ftp->timeout_sec = timeout_sec;
ftp->async = 0;
size = sizeof(ftp->localaddr);
memset(&ftp->localaddr, 0, size);
@@ -158,8 +152,6 @@ ftp_close(ftpbuf_t *ftp)
return NULL;
if (ftp->fd != -1)
closesocket(ftp->fd);
if (ftp->data)
data_close(ftp->data);
ftp_gc(ftp);
free(ftp);
return NULL;
@@ -235,8 +227,6 @@ ftp_reinit(ftpbuf_t *ftp)
ftp_gc(ftp);
ftp->async = 0;
if (!ftp_putcmd(ftp, "REIN", NULL))
return 0;
if (!ftp_getresp(ftp) || ftp->resp != 220)
@@ -422,9 +412,9 @@ ftp_nlist(ftpbuf_t *ftp, const char *path)
/* {{{ ftp_list
*/
char**
ftp_list(ftpbuf_t *ftp, const char *path, int recursive)
ftp_list(ftpbuf_t *ftp, const char *path)
{
return ftp_genlist(ftp, ((recursive) ? "LIST -R" : "LIST"), path);
return ftp_genlist(ftp, "LIST", path);
}
/* }}} */
@@ -438,7 +428,7 @@ ftp_type(ftpbuf_t *ftp, ftptype_t type)
if (ftp == NULL)
return 0;
if (type == ftp->type)
if (type == Z_TYPE_P(ftp))
return 1;
if (type == FTPTYPE_ASCII)
@@ -453,7 +443,7 @@ ftp_type(ftpbuf_t *ftp, ftptype_t type)
if (!ftp_getresp(ftp) || ftp->resp != 200)
return 0;
ftp->type = type;
Z_TYPE_P(ftp) = type;
return 1;
}
@@ -551,13 +541,12 @@ ftp_pasv(ftpbuf_t *ftp, int pasv)
/* {{{ ftp_get
*/
int
ftp_get(ftpbuf_t *ftp, php_stream *outstream, const char *path, ftptype_t type, int resumepos)
ftp_get(ftpbuf_t *ftp, php_stream *outstream, const char *path, ftptype_t type)
{
databuf_t *data = NULL;
char *ptr;
int lastch;
int rcvd;
char arg[11];
TSRMLS_FETCH();
if (ftp == NULL)
@@ -571,16 +560,6 @@ ftp_get(ftpbuf_t *ftp, php_stream *outstream, const char *path, ftptype_t type,
goto bail;
}
if (resumepos>0) {
sprintf(arg, "%u", resumepos);
if (!ftp_putcmd(ftp, "REST", arg)) {
goto bail;
}
if (!ftp_getresp(ftp) || (ftp->resp != 350)) {
goto bail;
}
}
if (!ftp_putcmd(ftp, "RETR", path)) {
goto bail;
}
@@ -635,13 +614,12 @@ bail:
/* {{{ ftp_put
*/
int
ftp_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, int startpos)
ftp_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type)
{
databuf_t *data = NULL;
int size;
char *ptr;
int ch;
char arg[11];
TSRMLS_FETCH();
if (ftp == NULL)
@@ -653,16 +631,6 @@ ftp_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, i
if ((data = ftp_getdata(ftp)) == NULL)
goto bail;
if (startpos>0) {
sprintf(arg, "%u", startpos);
if (!ftp_putcmd(ftp, "REST", arg)) {
goto bail;
}
if (!ftp_getresp(ftp) || (ftp->resp != 350)) {
goto bail;
}
}
if (!ftp_putcmd(ftp, "STOR", path))
goto bail;
if (!ftp_getresp(ftp) || (ftp->resp != 150 && ftp->resp != 125))
@@ -930,9 +898,9 @@ ftp_getresp(ftpbuf_t *ftp)
}
/* Break out when the end-tag is found */
if (isdigit(ftp->inbuf[0]) &&
isdigit(ftp->inbuf[1]) &&
isdigit(ftp->inbuf[2]) &&
if (isdigit(ftp->inbuf[0]) &&
isdigit(ftp->inbuf[1]) &&
isdigit(ftp->inbuf[2]) &&
ftp->inbuf[3] == ' ') {
break;
}
@@ -952,9 +920,6 @@ ftp_getresp(ftpbuf_t *ftp)
memmove(ftp->inbuf, ftp->inbuf + 4, FTP_BUFSIZE - 4);
if (ftp->extra)
ftp->extra -= 4;
return 1;
}
/* }}} */
@@ -1023,59 +988,6 @@ my_recv(ftpbuf_t *ftp, int s, void *buf, size_t len)
}
/* }}} */
/* {{{ data_available
*/
int
data_available(ftpbuf_t *ftp, int s)
{
fd_set read_set;
struct timeval tv;
int n;
tv.tv_sec = 0;
tv.tv_usec = 1;
FD_ZERO(&read_set);
FD_SET(s, &read_set);
n = select(s + 1, &read_set, NULL, NULL, &tv);
if (n < 1) {
#ifndef PHP_WIN32
if (n == 0)
errno = ETIMEDOUT;
#endif
return 0;
}
return 1;
}
/* }}} */
/* {{{ data_writeable
*/
int
data_writeable(ftpbuf_t *ftp, int s)
{
fd_set write_set;
struct timeval tv;
int n;
tv.tv_sec = 0;
tv.tv_usec = 1;
FD_ZERO(&write_set);
FD_SET(s, &write_set);
n = select(s + 1, NULL, &write_set, NULL, &tv);
if (n < 1) {
#ifndef PHP_WIN32
if (n == 0)
errno = ETIMEDOUT;
#endif
return 0;
}
return 1;
}
/* }}} */
/* {{{ my_accept
*/
int
@@ -1130,7 +1042,7 @@ ftp_getdata(ftpbuf_t *ftp)
}
data->listener = -1;
data->fd = -1;
data->type = ftp->type;
Z_TYPE_P(data) = Z_TYPE_P(ftp);
sa = (struct sockaddr *) &ftp->localaddr;
/* bind/listen */
@@ -1367,241 +1279,6 @@ bail:
}
/* }}} */
/* {{{ ftp_async_get
*/
int
ftp_async_get(ftpbuf_t *ftp, php_stream *outstream, const char *path, ftptype_t type, int resumepos)
{
databuf_t *data = NULL;
char *ptr;
int lastch;
int rcvd;
char arg[11];
TSRMLS_FETCH();
if (ftp == NULL)
goto bail;
if (!ftp_type(ftp, type)) {
goto bail;
}
if ((data = ftp_getdata(ftp)) == NULL) {
goto bail;
}
if (resumepos>0) {
sprintf(arg, "%u", resumepos);
if (!ftp_putcmd(ftp, "REST", arg)) {
goto bail;
}
if (!ftp_getresp(ftp) || (ftp->resp != 350)) {
goto bail;
}
}
if (!ftp_putcmd(ftp, "RETR", path)) {
goto bail;
}
if (!ftp_getresp(ftp) || (ftp->resp != 150 && ftp->resp != 125)) {
goto bail;
}
if ((data = data_accept(data, ftp)) == NULL) {
goto bail;
}
ftp->data = data;
ftp->stream = outstream;
ftp->lastch = 0;
ftp->async = 1;
return (ftp_async_continue_read(ftp));
bail:
data_close(data);
return PHP_FTP_FAILED;
}
/* }}} */
/* {{{ ftp_aget
*/
int
ftp_async_continue_read(ftpbuf_t *ftp)
{
databuf_t *data = NULL;
char *ptr;
int lastch;
int rcvd;
ftptype_t type;
TSRMLS_FETCH();
data = ftp->data;
/* check if there is already more data */
if (!data_available(ftp, data->fd)) {
return PHP_FTP_MOREDATA;
}
type = ftp->type;
lastch = ftp->lastch;
if (rcvd = my_recv(ftp, data->fd, data->buf, FTP_BUFSIZE)) {
if (rcvd == -1) {
goto bail;
}
if (type == FTPTYPE_ASCII) {
for (ptr = data->buf; rcvd; rcvd--, ptr++) {
if (lastch == '\r' && *ptr != '\n')
php_stream_putc(ftp->stream, '\r');
if (*ptr != '\r')
php_stream_putc(ftp->stream, *ptr);
lastch = *ptr;
}
}
else {
php_stream_write(ftp->stream, data->buf, rcvd);
}
ftp->lastch = lastch;
return PHP_FTP_MOREDATA;
}
if (type == FTPTYPE_ASCII && lastch == '\r')
php_stream_putc(ftp->stream, '\r');
data = data_close(data);
if (php_stream_error(ftp->stream)) {
goto bail;
}
if (!ftp_getresp(ftp) || (ftp->resp != 226 && ftp->resp != 250)) {
goto bail;
}
ftp->async = 0;
return PHP_FTP_FINISHED;
bail:
ftp->async = 0;
data_close(data);
return PHP_FTP_FAILED;
}
/* }}} */
/* {{{ ftp_async_put
*/
int
ftp_async_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, int startpos)
{
databuf_t *data = NULL;
int size;
char *ptr;
int ch;
char arg[11];
TSRMLS_FETCH();
if (ftp == NULL)
return 0;
if (!ftp_type(ftp, type))
goto bail;
if ((data = ftp_getdata(ftp)) == NULL)
goto bail;
if (startpos>0) {
sprintf(arg, "%u", startpos);
if (!ftp_putcmd(ftp, "REST", arg)) {
goto bail;
}
if (!ftp_getresp(ftp) || (ftp->resp != 350)) {
goto bail;
}
}
if (!ftp_putcmd(ftp, "STOR", path))
goto bail;
if (!ftp_getresp(ftp) || (ftp->resp != 150 && ftp->resp != 125))
goto bail;
if ((data = data_accept(data, ftp)) == NULL)
goto bail;
ftp->data = data;
ftp->stream = instream;
ftp->lastch = 0;
ftp->async = 1;
return (ftp_async_continue_write(ftp));
bail:
data_close(data);
return PHP_FTP_FAILED;
}
/* }}} */
/* {{{ ftp_async_continue_write
*/
int
ftp_async_continue_write(ftpbuf_t *ftp)
{
int size;
char *ptr;
int ch;
TSRMLS_FETCH();
/* check if we can write more data */
if (!data_writeable(ftp, ftp->data->fd)) {
return PHP_FTP_MOREDATA;
}
size = 0;
ptr = ftp->data->buf;
while ((ch = php_stream_getc(ftp->stream))!=EOF && !php_stream_eof(ftp->stream)) {
if (ch == '\n' && ftp->type == FTPTYPE_ASCII) {
*ptr++ = '\r';
size++;
}
*ptr++ = ch;
size++;
/* flush if necessary */
if (FTP_BUFSIZE - size < 2) {
if (my_send(ftp, ftp->data->fd, ftp->data->buf, size) != size)
goto bail;
return PHP_FTP_MOREDATA;
}
}
if (size && my_send(ftp, ftp->data->fd, ftp->data->buf, size) != size)
goto bail;
if (php_stream_error(ftp->stream))
goto bail;
ftp->data = data_close(ftp->data);
if (!ftp_getresp(ftp) || (ftp->resp != 226 && ftp->resp != 250))
goto bail;
ftp->async = 0;
return PHP_FTP_FINISHED;
bail:
data_close(ftp->data);
ftp->async = 0;
return PHP_FTP_FAILED;
}
/* }}} */
#endif /* HAVE_FTP */
/*
+10 -44
View File
@@ -13,7 +13,6 @@
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andrew Skalski <askalski@chek.com> |
| Stefan Esser <sesser@php.net> (resume functions) |
+----------------------------------------------------------------------+
*/
@@ -30,10 +29,6 @@
#endif
#define FTP_DEFAULT_TIMEOUT 90
#define FTP_DEFAULT_AUTOSEEK 1
#define PHP_FTP_FAILED 0
#define PHP_FTP_FINISHED 1
#define PHP_FTP_MOREDATA 2
/* XXX this should be configurable at runtime XXX */
#define FTP_BUFSIZE 4096
@@ -43,14 +38,6 @@ typedef enum ftptype {
FTPTYPE_IMAGE
} ftptype_t;
typedef struct databuf
{
int listener; /* listener socket */
int fd; /* data connection */
ftptype_t type; /* transfer type */
char buf[FTP_BUFSIZE]; /* data buffer */
} databuf_t;
typedef struct ftpbuf
{
int fd; /* control connection */
@@ -66,16 +53,15 @@ typedef struct ftpbuf
int pasv; /* 0=off; 1=pasv; 2=ready */
php_sockaddr_storage pasvaddr; /* passive mode address */
long timeout_sec; /* User configureable timeout (seconds) */
int autoseek; /* User configureable autoseek flag */
int async; /* asyncronous transfer in progress */
databuf_t *data; /* Data connection for asyncrounous transfers */
php_stream *stream; /* output stream for asyncrounous transfers */
int lastch; /* last char of previous call */
int direction; /* recv = 0 / send = 1 */
int closestream;/* close or not close stream */
} ftpbuf_t;
typedef struct databuf
{
int listener; /* listener socket */
int fd; /* data connection */
ftptype_t type; /* transfer type */
char buf[FTP_BUFSIZE]; /* data buffer */
} databuf_t;
/* open a FTP connection, returns ftpbuf (NULL on error)
@@ -134,7 +120,7 @@ char** ftp_nlist(ftpbuf_t *ftp, const char *path);
* array must be freed (but don't
* free the array elements)
*/
char** ftp_list(ftpbuf_t *ftp, const char *path, int recursive);
char** ftp_list(ftpbuf_t *ftp, const char *path);
/* switches passive mode on or off
* returns true on success, false on error
@@ -145,12 +131,12 @@ int ftp_pasv(ftpbuf_t *ftp, int pasv);
* returns true on success, false on error
*/
int ftp_get(ftpbuf_t *ftp, php_stream *outstream, const char *path,
ftptype_t type, int resumepos);
ftptype_t type);
/* stores the data from a file, socket, or process as a file on the remote server
* returns true on success, false on error
*/
int ftp_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, int startpos);
int ftp_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type);
/* returns the size of the given file, or -1 on error */
int ftp_size(ftpbuf_t *ftp, const char *path);
@@ -167,24 +153,4 @@ int ftp_delete(ftpbuf_t *ftp, const char *path);
/* sends a SITE command to the server */
int ftp_site(ftpbuf_t *ftp, const char *cmd);
/* retrieves part of a file and saves its contents to outfp
* returns true on success, false on error
*/
int ftp_async_get(ftpbuf_t *ftp, php_stream *outstream, const char *path,
ftptype_t type, int resumepos);
/* stores the data from a file, socket, or process as a file on the remote server
* returns true on success, false on error
*/
int ftp_async_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, int startpos);
/* continues a previous async_(f)get command
*/
int ftp_async_continue_read(ftpbuf_t *ftp);
/* continues a previous async_(f)put command
*/
int ftp_async_continue_write(ftpbuf_t *ftp);
#endif
+55 -395
View File
@@ -13,7 +13,6 @@
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andrew Skalski <askalski@chek.com> |
| Stefan Esser <sesser@php.net> (resume functions) |
+----------------------------------------------------------------------+
*/
@@ -61,11 +60,6 @@ function_entry php_ftp_functions[] = {
PHP_FE(ftp_close, NULL)
PHP_FE(ftp_set_option, NULL)
PHP_FE(ftp_get_option, NULL)
PHP_FE(ftp_async_fget, NULL)
PHP_FE(ftp_async_get, NULL)
PHP_FE(ftp_async_continue, NULL)
PHP_FE(ftp_async_put, NULL)
PHP_FE(ftp_async_fput, NULL)
PHP_FALIAS(ftp_quit, ftp_close, NULL)
{NULL, NULL, NULL}
};
@@ -97,16 +91,11 @@ static void ftp_destructor_ftpbuf(zend_rsrc_list_entry *rsrc TSRMLS_DC)
PHP_MINIT_FUNCTION(ftp)
{
le_ftpbuf = zend_register_list_destructors_ex(ftp_destructor_ftpbuf, NULL, le_ftpbuf_name, module_number);
REGISTER_LONG_CONSTANT("FTP_ASCII", FTPTYPE_ASCII, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_ASCII", FTPTYPE_ASCII, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_TEXT", FTPTYPE_ASCII, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_BINARY", FTPTYPE_IMAGE, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_IMAGE", FTPTYPE_IMAGE, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_AUTORESUME", PHP_FTP_AUTORESUME, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_TIMEOUT_SEC", PHP_FTP_OPT_TIMEOUT_SEC, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_AUTOSEEK", PHP_FTP_OPT_AUTOSEEK, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_FAILED", PHP_FTP_FAILED, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_FINISHED", PHP_FTP_FINISHED, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("FTP_MOREDATA", PHP_FTP_MOREDATA, CONST_PERSISTENT | CONST_CS);
return SUCCESS;
}
@@ -119,7 +108,7 @@ PHP_MINFO_FUNCTION(ftp)
#define XTYPE(xtype, mode) { \
if (mode != FTPTYPE_ASCII && mode != FTPTYPE_IMAGE) { \
php_error(E_WARNING, "%s(): Mode must be FTP_ASCII or FTP_BINARY", get_active_function_name(TSRMLS_C)); \
php_error(E_WARNING, "%s(): mode must be FTP_ASCII or FTP_BINARY", get_active_function_name(TSRMLS_C)); \
RETURN_FALSE; \
} \
xtype = mode; \
@@ -140,7 +129,7 @@ PHP_FUNCTION(ftp_connect)
}
if (timeout_sec <= 0) {
php_error(E_WARNING, "%s(): Timeout has to be greater than 0",
php_error(E_WARNING, "%s(): timeout has to be greater than 0",
get_active_function_name(TSRMLS_C));
RETURN_FALSE;
}
@@ -151,9 +140,6 @@ PHP_FUNCTION(ftp_connect)
RETURN_FALSE;
}
/* autoseek for resuming */
ftp->autoseek = FTP_DEFAULT_AUTOSEEK;
ZEND_REGISTER_RESOURCE(return_value, ftp, le_ftpbuf);
}
/* }}} */
@@ -266,7 +252,7 @@ PHP_FUNCTION(ftp_exec)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &z_ftp, &cmd, &cmd_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
/* execute serverside command */
@@ -356,7 +342,7 @@ PHP_FUNCTION(ftp_nlist)
}
/* }}} */
/* {{{ proto array ftp_rawlist(resource stream, string directory [, bool recursive])
/* {{{ proto array ftp_rawlist(resource stream, string directory)
Returns a detailed listing of a directory as an array of output lines */
PHP_FUNCTION(ftp_rawlist)
{
@@ -364,16 +350,15 @@ PHP_FUNCTION(ftp_rawlist)
ftpbuf_t *ftp;
char **llist, **ptr, *dir;
int dir_len;
zend_bool recursive = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs|b", &z_ftp, &dir, &dir_len, &recursive) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &z_ftp, &dir, &dir_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
/* get raw directory listing */
if (NULL == (llist = ftp_list(ftp, dir, recursive))) {
if (NULL == (llist = ftp_list(ftp, dir))) {
RETURN_FALSE;
}
@@ -408,7 +393,7 @@ PHP_FUNCTION(ftp_systype)
}
/* }}} */
/* {{{ proto bool ftp_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])
/* {{{ proto bool ftp_fget(resource stream, resource fp, string remote_file, int mode)
Retrieves a file from the FTP server and writes it to an open file */
PHP_FUNCTION(ftp_fget)
{
@@ -417,9 +402,9 @@ PHP_FUNCTION(ftp_fget)
ftptype_t xtype;
php_stream *stream;
char *file;
int file_len, mode, resumepos=0;
int file_len, mode;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrsl|l", &z_ftp, &z_file, &file, &file_len, &mode, &resumepos) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrsl", &z_ftp, &z_file, &file, &file_len, &mode) == FAILURE) {
return;
}
@@ -427,28 +412,13 @@ PHP_FUNCTION(ftp_fget)
ZEND_FETCH_RESOURCE(stream, php_stream*, &z_file, -1, "File-Handle", php_file_le_stream());
XTYPE(xtype, mode);
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && resumepos == PHP_FTP_AUTORESUME) {
resumepos = 0;
}
if (ftp->autoseek && resumepos) {
/* if autoresume is wanted seek to end */
if (resumepos == PHP_FTP_AUTORESUME) {
php_stream_seek(stream, 0, SEEK_END);
resumepos = php_stream_tell(stream);
} else {
php_stream_seek(stream, resumepos, SEEK_SET);
}
}
if (!ftp_get(ftp, stream, file, xtype, resumepos) || php_stream_error(stream)) {
if (!ftp_get(ftp, stream, file, xtype) || php_stream_error(stream)) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
RETURN_FALSE;
}
if (php_stream_error(stream)) {
php_error(E_WARNING, "%s(): Error writing %s", get_active_function_name(TSRMLS_C), Z_STRVAL_P(z_file));
php_error(E_WARNING, "%s(): error writing %s", get_active_function_name(TSRMLS_C), Z_STRVAL_P(z_file));
RETURN_FALSE;
}
@@ -456,53 +426,6 @@ PHP_FUNCTION(ftp_fget)
}
/* }}} */
/* {{{ proto bool ftp_async_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])
Retrieves a file from the FTP server asynchronly and writes it to an open file */
PHP_FUNCTION(ftp_async_fget)
{
zval *z_ftp, *z_file;
ftpbuf_t *ftp;
ftptype_t xtype;
php_stream *stream;
char *file;
int file_len, mode, resumepos=0, ret;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rrsl|l", &z_ftp, &z_file, &file, &file_len, &mode, &resumepos) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
ZEND_FETCH_RESOURCE(stream, php_stream*, &z_file, -1, "File-Handle", php_file_le_stream());
XTYPE(xtype, mode);
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && resumepos == PHP_FTP_AUTORESUME) {
resumepos = 0;
}
if (ftp->autoseek && resumepos) {
/* if autoresume is wanted seek to end */
if (resumepos == PHP_FTP_AUTORESUME) {
php_stream_seek(stream, 0, SEEK_END);
resumepos = php_stream_tell(stream);
} else {
php_stream_seek(stream, resumepos, SEEK_SET);
}
}
/* configuration */
ftp->direction = 0; /* recv */
ftp->closestream = 0; /* do not close */
if ((ret = ftp_async_get(ftp, stream, file, xtype, resumepos)) == PHP_FTP_FAILED || php_stream_error(stream)) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
RETURN_LONG(ret);
}
RETURN_LONG(ret);
}
/* }}} */
/* {{{ proto bool ftp_pasv(resource stream, bool pasv)
Turns passive mode on or off */
PHP_FUNCTION(ftp_pasv)
@@ -525,175 +448,71 @@ PHP_FUNCTION(ftp_pasv)
}
/* }}} */
/* {{{ proto bool ftp_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])
/* {{{ proto bool ftp_get(resource stream, string local_file, string remote_file, int mode)
Retrieves a file from the FTP server and writes it to a local file */
PHP_FUNCTION(ftp_get)
{
zval *z_ftp;
ftpbuf_t *ftp;
ftptype_t xtype;
php_stream *outstream;
php_stream * tmpstream, *outstream;
char *local, *remote;
int local_len, remote_len, mode, resumepos=0;
int local_len, remote_len, mode;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rssl|l", &z_ftp, &local, &local_len, &remote, &remote_len, &mode, &resumepos) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rssl", &z_ftp, &local, &local_len, &remote, &remote_len, &mode) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
XTYPE(xtype, mode);
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && resumepos == PHP_FTP_AUTORESUME) {
resumepos = 0;
/* get to temporary file, so if there is an error, no existing
* file gets clobbered
*/
tmpstream = php_stream_fopen_tmpfile();
if (tmpstream == NULL) {
RETURN_FALSE;
}
if (ftp->autoseek && resumepos) {
outstream = php_stream_fopen(local, "rb+", NULL);
if (outstream == NULL) {
outstream = php_stream_fopen(local, "wb", NULL);
}
if (outstream != NULL) {
/* if autoresume is wanted seek to end */
if (resumepos == PHP_FTP_AUTORESUME) {
php_stream_seek(outstream, 0, SEEK_END);
resumepos = php_stream_tell(outstream);
} else {
php_stream_seek(outstream, resumepos, SEEK_SET);
}
}
} else {
outstream = php_stream_fopen(local, "wb", NULL);
if (!ftp_get(ftp, tmpstream, remote, xtype) || php_stream_error(tmpstream)) {
php_stream_close(tmpstream);
php_error(E_WARNING, "ftp_get: %s", ftp->inbuf);
RETURN_FALSE;
}
outstream = php_stream_fopen(local, "wb", NULL);
if (outstream == NULL) {
php_error(E_WARNING, "%s(): Error opening %s", get_active_function_name(TSRMLS_C), local);
php_stream_close(tmpstream);
php_error(E_WARNING, "%s(): error opening %s", get_active_function_name(TSRMLS_C), local);
RETURN_FALSE;
}
if (!ftp_get(ftp, outstream, remote, xtype, resumepos) || php_stream_error(outstream)) {
php_stream_close(outstream);
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
RETURN_FALSE;
php_stream_rewind(tmpstream);
if (php_stream_copy_to_stream(tmpstream, outstream, PHP_STREAM_COPY_ALL) == 0) {
php_error(E_WARNING, "%s(): error writing %s", get_active_function_name(TSRMLS_C), local);
RETVAL_FALSE;
}
else
RETVAL_TRUE;
php_stream_close(tmpstream);
php_stream_close(outstream);
}
/* }}} */
/* {{{ proto inf ftp_async_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])
Retrieves a file from the FTP server asynchronly and writes it to a local file */
PHP_FUNCTION(ftp_async_get)
{
zval *z_ftp;
ftpbuf_t *ftp;
ftptype_t xtype;
php_stream *outstream;
char *local, *remote;
int local_len, remote_len, mode, resumepos=0, ret;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rssl|l", &z_ftp, &local, &local_len, &remote, &remote_len, &mode, &resumepos) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
XTYPE(xtype, mode);
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && resumepos == PHP_FTP_AUTORESUME) {
resumepos = 0;
}
if (ftp->autoseek && resumepos) {
outstream = php_stream_fopen(local, "rb+", NULL);
if (outstream == NULL) {
outstream = php_stream_fopen(local, "wb", NULL);
}
if (outstream != NULL) {
/* if autoresume is wanted seek to end */
if (resumepos == PHP_FTP_AUTORESUME) {
php_stream_seek(outstream, 0, SEEK_END);
resumepos = php_stream_tell(outstream);
} else {
php_stream_seek(outstream, resumepos, SEEK_SET);
}
}
} else {
outstream = php_stream_fopen(local, "wb", NULL);
}
if (outstream == NULL) {
php_error(E_WARNING, "%s(): Error opening %s", get_active_function_name(TSRMLS_C), local);
RETURN_FALSE;
}
/* configuration */
ftp->direction = 0; /* recv */
ftp->closestream = 1; /* do close */
if ((ret = ftp_async_get(ftp, outstream, remote, xtype, resumepos)) == PHP_FTP_FAILED || php_stream_error(outstream)) {
php_stream_close(outstream);
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
RETURN_LONG(PHP_FTP_FAILED);
}
if (ret == PHP_FTP_FINISHED) {
php_stream_close(outstream);
}
RETURN_LONG(ret);
}
/* }}} */
/* {{{ proto int ftp_async_continue(resource stream)
Continues retrieving/sending a file asyncronously */
PHP_FUNCTION(ftp_async_continue)
{
zval *z_ftp;
ftpbuf_t *ftp;
int ret;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &z_ftp) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
if (!ftp->async) {
php_error(E_WARNING, "%s(): no asyncronous transfer to continue.", get_active_function_name(TSRMLS_C));
RETURN_LONG(PHP_FTP_FAILED);
}
if (ftp->direction) {
ret=ftp_async_continue_write(ftp);
} else {
ret=ftp_async_continue_read(ftp);
}
if (ret != PHP_FTP_MOREDATA && ftp->closestream) {
php_stream_close(ftp->stream);
}
if (ret == PHP_FTP_FAILED || php_stream_error(ftp->stream)) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
}
RETURN_LONG(ret);
}
/* }}} */
/* {{{ proto bool ftp_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])
/* {{{ proto bool ftp_fput(resource stream, string remote_file, resource fp, int mode)
Stores a file from an open file to the FTP server */
PHP_FUNCTION(ftp_fput)
{
zval *z_ftp, *z_file;
ftpbuf_t *ftp;
ftptype_t xtype;
int mode, remote_len, startpos=0;
int mode, remote_len;
php_stream *stream;
char *remote;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsrl|l", &z_ftp, &remote, &remote_len, &z_file, &mode, &startpos) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsrl", &z_ftp, &remote, &remote_len, &z_file, &mode) == FAILURE) {
return;
}
@@ -701,25 +520,7 @@ PHP_FUNCTION(ftp_fput)
ZEND_FETCH_RESOURCE(stream, php_stream*, &z_file, -1, "File-Handle", php_file_le_stream());
XTYPE(xtype, mode);
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && startpos == PHP_FTP_AUTORESUME) {
startpos = 0;
}
if (ftp->autoseek && startpos) {
/* if autoresume is wanted ask for remote size */
if (startpos == PHP_FTP_AUTORESUME) {
startpos = ftp_size(ftp, remote);
if (startpos < 0) {
startpos = 0;
}
}
if (startpos) {
php_stream_seek(stream, startpos, SEEK_SET);
}
}
if (!ftp_put(ftp, remote, stream, xtype, startpos)) {
if (!ftp_put(ftp, remote, stream, xtype)) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
RETURN_FALSE;
}
@@ -728,58 +529,7 @@ PHP_FUNCTION(ftp_fput)
}
/* }}} */
/* {{{ proto bool ftp_async_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])
Stores a file from an open file to the FTP server asyncronly */
PHP_FUNCTION(ftp_async_fput)
{
zval *z_ftp, *z_file;
ftpbuf_t *ftp;
ftptype_t xtype;
int mode, remote_len, startpos=0, ret;
php_stream *stream;
char *remote;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsrl|l", &z_ftp, &remote, &remote_len, &z_file, &mode, &startpos) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
ZEND_FETCH_RESOURCE(stream, php_stream*, &z_file, -1, "File-Handle", php_file_le_stream());
XTYPE(xtype, mode);
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && startpos == PHP_FTP_AUTORESUME) {
startpos = 0;
}
if (ftp->autoseek && startpos) {
/* if autoresume is wanted ask for remote size */
if (startpos == PHP_FTP_AUTORESUME) {
startpos = ftp_size(ftp, remote);
if (startpos < 0) {
startpos = 0;
}
}
if (startpos) {
php_stream_seek(stream, startpos, SEEK_SET);
}
}
/* configuration */
ftp->direction = 1; /* send */
ftp->closestream = 0; /* do not close */
if (((ret = ftp_async_put(ftp, remote, stream, xtype, startpos)) == PHP_FTP_FAILED) || php_stream_error(stream)) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
RETURN_LONG(ret);
}
RETURN_LONG(ret);
}
/* }}} */
/* {{{ proto bool ftp_put(resource stream, string remote_file, string local_file, int mode[, int startpos])
/* {{{ proto bool ftp_put(resource stream, string remote_file, string local_file, int mode)
Stores a file on the FTP server */
PHP_FUNCTION(ftp_put)
{
@@ -787,13 +537,13 @@ PHP_FUNCTION(ftp_put)
ftpbuf_t *ftp;
ftptype_t xtype;
char *remote, *local;
int remote_len, local_len, mode, startpos=0, ret;
int remote_len, local_len, mode;
php_stream * instream;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rssl|l", &z_ftp, &remote, &remote_len, &local, &local_len, &mode, &startpos) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rssl", &z_ftp, &remote, &remote_len, &local, &local_len, &mode) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
XTYPE(xtype, mode);
@@ -803,25 +553,7 @@ PHP_FUNCTION(ftp_put)
RETURN_FALSE;
}
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && startpos == PHP_FTP_AUTORESUME) {
startpos = 0;
}
if (ftp->autoseek && startpos) {
/* if autoresume is wanted ask for remote size */
if (startpos == PHP_FTP_AUTORESUME) {
startpos = ftp_size(ftp, remote);
if (startpos < 0) {
startpos = 0;
}
}
if (startpos) {
php_stream_seek(instream, startpos, SEEK_SET);
}
}
if (!ftp_put(ftp, remote, instream, xtype, startpos) || php_stream_error(instream)) {
if (!ftp_put(ftp, remote, instream, xtype) || php_stream_error(instream)) {
php_stream_close(instream);
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
RETURN_FALSE;
@@ -832,67 +564,6 @@ PHP_FUNCTION(ftp_put)
}
/* }}} */
/* {{{ proto bool ftp_async_put(resource stream, string remote_file, string local_file, int mode[, int startpos])
Stores a file on the FTP server */
PHP_FUNCTION(ftp_async_put)
{
zval *z_ftp;
ftpbuf_t *ftp;
ftptype_t xtype;
char *remote, *local;
int remote_len, local_len, mode, startpos=0, ret;
php_stream * instream;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rssl|l", &z_ftp, &remote, &remote_len, &local, &local_len, &mode, &startpos) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
XTYPE(xtype, mode);
instream = php_stream_fopen(local, "rb", NULL);
if (instream == NULL) {
RETURN_FALSE;
}
/* ignore autoresume if autoseek is switched off */
if (!ftp->autoseek && startpos == PHP_FTP_AUTORESUME) {
startpos = 0;
}
if (ftp->autoseek && startpos) {
/* if autoresume is wanted ask for remote size */
if (startpos == PHP_FTP_AUTORESUME) {
startpos = ftp_size(ftp, remote);
if (startpos < 0) {
startpos = 0;
}
}
if (startpos) {
php_stream_seek(instream, startpos, SEEK_SET);
}
}
/* configuration */
ftp->direction = 1; /* send */
ftp->closestream = 1; /* do close */
ret = ftp_async_put(ftp, remote, instream, xtype, startpos);
if (ret != PHP_FTP_MOREDATA) {
php_stream_close(instream);
}
if (ret == PHP_FTP_FAILED || php_stream_error(instream)) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ftp->inbuf);
}
RETURN_LONG(ret);
}
/* }}} */
/* {{{ proto int ftp_size(resource stream, string filename)
Returns the size of the file, or -1 on error */
PHP_FUNCTION(ftp_size)
@@ -1021,10 +692,10 @@ PHP_FUNCTION(ftp_close)
ZEND_FETCH_RESOURCE(ftp, ftpbuf_t*, &z_ftp, -1, le_ftpbuf_name, le_ftpbuf);
RETURN_BOOL(zend_list_delete(Z_LVAL_P(z_ftp)) == SUCCESS);
zend_list_delete(Z_LVAL_P(z_ftp));
}
/* }}} */
/* {{{ proto bool ftp_set_option(resource stream, int option, mixed value)
Sets an FTP option */
PHP_FUNCTION(ftp_set_option)
@@ -1032,7 +703,7 @@ PHP_FUNCTION(ftp_set_option)
zval *z_ftp, *z_value;
long option;
ftpbuf_t *ftp;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlz", &z_ftp, &option, &z_value) == FAILURE) {
return;
}
@@ -1042,29 +713,20 @@ PHP_FUNCTION(ftp_set_option)
switch (option) {
case PHP_FTP_OPT_TIMEOUT_SEC:
if (Z_TYPE_P(z_value) != IS_LONG) {
php_error(E_WARNING, "%s(): Option TIMEOUT_SEC expects value of type long, %s given",
php_error(E_WARNING, "%s(): option TIMEOUT_SEC expects value of type long, %s given",
get_active_function_name(TSRMLS_C), zend_zval_type_name(z_value));
RETURN_FALSE;
}
if (Z_LVAL_P(z_value) <= 0) {
php_error(E_WARNING, "%s(): Timeout has to be greater than 0",
php_error(E_WARNING, "%s(): timeout has to be greater than 0",
get_active_function_name(TSRMLS_C));
RETURN_FALSE;
}
ftp->timeout_sec = Z_LVAL_P(z_value);
RETURN_TRUE;
break;
case PHP_FTP_OPT_AUTOSEEK:
if (Z_TYPE_P(z_value) != IS_BOOL) {
php_error(E_WARNING, "%s(): Option AUTOSEEK expects value of type boolean, %s given",
get_active_function_name(TSRMLS_C), zend_zval_type_name(z_value));
RETURN_FALSE;
}
ftp->autoseek = Z_LVAL_P(z_value);
RETURN_TRUE;
break;
default:
php_error(E_WARNING, "%s(): Unknown option '%d'", get_active_function_name(TSRMLS_C), option);
php_error(E_WARNING, "%s(): unknown option '%d'", get_active_function_name(TSRMLS_C), option);
RETURN_FALSE;
break;
}
@@ -1078,7 +740,7 @@ PHP_FUNCTION(ftp_get_option)
zval *z_ftp;
long option;
ftpbuf_t *ftp;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &z_ftp, &option) == FAILURE) {
return;
}
@@ -1089,10 +751,8 @@ PHP_FUNCTION(ftp_get_option)
case PHP_FTP_OPT_TIMEOUT_SEC:
RETURN_LONG(ftp->timeout_sec);
break;
case PHP_FTP_OPT_AUTOSEEK:
RETURN_BOOL(ftp->autoseek);
default:
php_error(E_WARNING, "%s(): Unknown option '%d'", get_active_function_name(TSRMLS_C), option);
php_error(E_WARNING, "%s(): unknown option '%d'", get_active_function_name(TSRMLS_C), option);
RETURN_FALSE;
break;
}
+1 -9
View File
@@ -12,8 +12,7 @@
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andrew Skalski <askalski@chek.com> |
| Stefan Esser <sesser@php.net> (resume functions) |
| Author: Andrew Skalski <askalski@chek.com> |
+----------------------------------------------------------------------+
*/
@@ -28,8 +27,6 @@ extern zend_module_entry php_ftp_module_entry;
#define php_ftp_module_ptr &php_ftp_module_entry
#define PHP_FTP_OPT_TIMEOUT_SEC 0
#define PHP_FTP_OPT_AUTOSEEK 1
#define PHP_FTP_AUTORESUME -1
PHP_MINIT_FUNCTION(ftp);
PHP_MINFO_FUNCTION(ftp);
@@ -58,11 +55,6 @@ PHP_FUNCTION(ftp_site);
PHP_FUNCTION(ftp_close);
PHP_FUNCTION(ftp_set_option);
PHP_FUNCTION(ftp_get_option);
PHP_FUNCTION(ftp_async_get);
PHP_FUNCTION(ftp_async_fget);
PHP_FUNCTION(ftp_async_put);
PHP_FUNCTION(ftp_async_fput);
PHP_FUNCTION(ftp_async_continue);
#define phpext_ftp_ptr php_ftp_module_ptr
+16 -27
View File
@@ -18,11 +18,11 @@ PHP_ARG_WITH(png-dir, for the location of libpng,
PHP_ARG_WITH(xpm-dir, for the location of libXpm,
[ --with-xpm-dir=DIR GD: Set the path to libXpm install prefix.])
PHP_ARG_WITH(ttf, for FreeType 1.x support,
PHP_ARG_WITH(ttf,for FreeType 1.x support,
[ --with-ttf[=DIR] GD: Include FreeType 1.x support])
PHP_ARG_WITH(freetype-dir, for FreeType 2,
[ --with-freetype-dir=DIR GD: Set the path to FreeType 2 install prefix.])
PHP_ARG_WITH(freetype-dir, for freetype(2),
[ --with-freetype-dir=DIR GD: Set the path to freetype2 install prefix.])
PHP_ARG_WITH(t1lib, for T1lib support,
[ --with-t1lib[=DIR] GD: Include T1lib support.])
@@ -129,10 +129,6 @@ AC_DEFUN(PHP_GD_FREETYPE1,[
TTF_DIR=$i
TTF_INC_DIR=$i/include/freetype
fi
if test -f "$i/include/freetype1/freetype/freetype.h"; then
TTF_DIR=$i
TTF_INC_DIR=$i/include/freetype1/freetype
fi
done
fi
if test -n "$TTF_DIR" ; then
@@ -187,7 +183,7 @@ AC_DEFUN(PHP_GD_T1LIB,[
[
AC_DEFINE(HAVE_LIBT1,1,[ ])
PHP_ADD_INCLUDE($GD_T1_DIR/include)
PHP_ADD_LIBRARY_WITH_PATH(t1, $GD_T1_DIR/lib, GD_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(t1, "$GD_T1_DIR/lib", GD_SHARED_LIBADD)
],[
AC_MSG_ERROR([Problem with libt1.(a|so). Please check config.log for more information.])
],[
@@ -214,7 +210,6 @@ AC_DEFUN(PHP_GD_CHECK_VERSION,[
PHP_CHECK_LIBRARY(gd, gdImageCreateFromGd2, [AC_DEFINE(HAVE_GD_GD2, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImageCreateTrueColor, [AC_DEFINE(HAVE_LIBGD20, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImageSetTile, [AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImageEllipse, [AC_DEFINE(HAVE_GD_IMAGEELLIPSE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImageSetBrush, [AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImageStringTTF, [AC_DEFINE(HAVE_GD_STRINGTTF, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImageStringFT, [AC_DEFINE(HAVE_GD_STRINGFT, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
@@ -237,7 +232,8 @@ if test "$PHP_GD" = "php"; then
libgd/gdfontg.c libgd/gdtables.c libgd/gdft.c libgd/gdcache.c libgd/gdkanji.c \
libgd/wbmp.c libgd/gd_wbmp.c libgd/gdhelpers.c libgd/gd_topal.c"
PHP_NEW_EXTENSION(gd, gd.c gdttf.c $sources, $ext_shared,, \\$(GDLIB_CFLAGS))
PHP_NEW_EXTENSION(gd, gd.c gdt1.c $sources, $ext_shared,, \\$(GDLIB_CFLAGS))
PHP_ADD_INCLUDE($ext_srcdir/libgd)
PHP_ADD_BUILD_DIR($ext_builddir/libgd)
dnl PNG is required by GD library
@@ -267,8 +263,7 @@ dnl These are always available with bundled library
AC_DEFINE(HAVE_GD_BUNDLED, 1, [ ])
dnl Make sure the libgd/ is first in the include path
GDLIB_CFLAGS="-I$ext_srcdir/libgd -DHAVE_LIBPNG"
GDLIB_CFLAGS="-DHAVE_LIBPNG"
dnl Depending which libraries were included to PHP configure,
dnl enable the support in bundled GD library
@@ -289,17 +284,13 @@ dnl enable the support in bundled GD library
GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBFREETYPE"
fi
if test -n "$TTF_DIR"; then
GDLIB_CFLAGS="$GDLIB_CFLAGS -DHAVE_LIBTTF"
fi
PHP_SUBST(GDLIB_CFLAGS)
else
if test "$PHP_GD" != "no"; then
PHP_NEW_EXTENSION(gd, gd.c gdcache.c gdttf.c, $ext_shared)
PHP_NEW_EXTENSION(gd, gd.c gdcache.c gdttf.c gdt1.c, $ext_shared)
PHP_SUBST(GD_SHARED_LIBADD)
dnl Various checks for GD features
@@ -327,6 +318,14 @@ dnl Various checks for GD features
done
done
if test -n "$GD_INCLUDE" -a -n "$GD_LIB" ; then
PHP_ADD_LIBRARY_WITH_PATH(gd, $GD_LIB, GD_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBGD,1,[ ])
PHP_GD_CHECK_VERSION
else
AC_MSG_ERROR([Unable to find libgd.(a|so) anywhere under $GD_SEARCH_PATHS])
fi
dnl NetBSD package structure
if test -f /usr/pkg/include/gd/gd.h -a -z "$GD_INCLUDE" ; then
GD_INCLUDE=/usr/pkg/include/gd
@@ -337,16 +336,6 @@ dnl SuSE 6.x package structure
GD_INCLUDE=/usr/include/gd
fi
if test -n "$GD_INCLUDE" -a -n "$GD_LIB" ; then
PHP_ADD_LIBRARY_WITH_PATH(gd, $GD_LIB, GD_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBGD,1,[ ])
PHP_GD_CHECK_VERSION
elif test -z "$GD_INCLUDE"; then
AC_MSG_ERROR([Unable to find gd.h anywhere under $GD_SEARCH_PATHS])
else
AC_MSG_ERROR([Unable to find libgd.(a|so) anywhere under $GD_SEARCH_PATHS])
fi
PHP_EXPAND_PATH($GD_INCLUDE, GD_INCLUDE)
PHP_ADD_INCLUDE($GD_INCLUDE)
+322 -172
View File
File diff suppressed because it is too large. Load diff
+8
View File
@@ -168,6 +168,10 @@ SOURCE=.\gdcache.c
# End Source File
# Begin Source File
SOURCE=.\gdt1.c
# End Source File
# Begin Source File
SOURCE=.\gdttf.c
# End Source File
# End Group
@@ -180,6 +184,10 @@ SOURCE=.\gdcache.h
# End Source File
# Begin Source File
SOURCE=.\gdt1.h
# End Source File
# Begin Source File
SOURCE=.\gdttf.h
# End Source File
# Begin Source File
+8
View File
@@ -102,6 +102,10 @@ SOURCE=.\gd.c
# End Source File
# Begin Source File
SOURCE=.\gdt1.c
# End Source File
# Begin Source File
SOURCE=.\gdttf.c
# End Source File
# End Group
@@ -114,6 +118,10 @@ SOURCE=.\gdcache.h
# End Source File
# Begin Source File
SOURCE=.\gdt1.h
# End Source File
# Begin Source File
SOURCE=.\gdttf.h
# End Source File
# Begin Source File
+3 -3
View File
@@ -52,13 +52,13 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
if ((argc == 2) || (argc == 3 && Z_STRLEN_PP(file))) {
if (!fn || fn == empty_string || php_check_open_basedir(fn TSRMLS_CC)) {
php_error(E_WARNING, "%s(): Invalid filename '%s'", get_active_function_name(TSRMLS_C), fn);
php_error(E_WARNING, "%s: invalid filename '%s'", get_active_function_name(TSRMLS_C), fn);
RETURN_FALSE;
}
fp = VCWD_FOPEN(fn, "wb");
if (!fp) {
php_error(E_WARNING, "%s(): Unable to open '%s' for writing", get_active_function_name(TSRMLS_C), fn);
php_error(E_WARNING, "%s: unable to open '%s' for writing", get_active_function_name(TSRMLS_C), fn);
RETURN_FALSE;
}
@@ -79,7 +79,7 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
switch(image_type) {
case PHP_GDIMG_CONVERT_WBM:
if(q<0||q>255) {
php_error(E_WARNING, "%s(): Invalid threshold value '%d'. It must be between 0 and 255",get_active_function_name(TSRMLS_C), q);
php_error(E_WARNING, "%s: invalid threshold value '%d'. It must be between 0 and 255",get_active_function_name(TSRMLS_C), q);
}
case PHP_GDIMG_TYPE_JPG:
(*func_p)(im, ctx, q);
+548
View File
@@ -0,0 +1,548 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2002 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available at through the world-wide-web at |
| http://www.php.net/license/2_02.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Jouni Ahto <jah@mork.net> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#if 0 /* Moved currently back to gd.c */
#include "php.h"
#include "php_gd.h"
#if HAVE_LIBT1
void php_free_ps_font(int font_id)
{
T1_DeleteFont(font_id);
}
void php_free_ps_enc(char **enc)
{
T1_DeleteEncoding(enc);
}
/* {{{ proto int imagepsloadfont(string pathname)
Load a new font from specified file */
PHP_FUNCTION(imagepsloadfont)
{
zval **file;
int f_ind, l_ind;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &file) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_string_ex(file);
f_ind = T1_AddFont(Z_STRVAL_PP(file));
if (f_ind < 0) {
switch (f_ind) {
case -1:
php_error(E_WARNING, "Couldn't find the font file");
RETURN_FALSE;
break;
case -2:
case -3:
php_error(E_WARNING, "Memory allocation fault in t1lib");
RETURN_FALSE;
break;
default:
php_error(E_WARNING, "An unknown error occurred in t1lib");
RETURN_FALSE;
break;
}
}
T1_LoadFont(f_ind);
/*
l_ind = zend_list_insert(f_ind, T1_GLOBAL(le_ps_font));
RETURN_LONG(l_ind);
*/
zend_list_addref(f_ind);
RETURN_LONG(f_ind);
}
/* }}} */
/* {{{ The function in t1lib which this function uses seem to be buggy...
proto int imagepscopyfont(int font_index)
Make a copy of a font for purposes like extending or reenconding */
/*
PHP_FUNCTION(imagepscopyfont)
{
pval *fnt;
int l_ind, type;
gd_ps_font *nf_ind, *of_ind;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters(ht, 1, &fnt) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_long(fnt);
of_ind = zend_list_find(Z_LVAL_P(fnt), &type);
if (type != GD_GLOBAL(le_ps_font)) {
php_error(E_WARNING, "%d is not a Type 1 font index", Z_LVAL_P(fnt));
RETURN_FALSE;
}
nf_ind = emalloc(sizeof(gd_ps_font));
nf_ind->font_id = T1_CopyFont(of_ind->font_id);
if (nf_ind->font_id < 0) {
l_ind = nf_ind->font_id;
efree(nf_ind);
switch (l_ind) {
case -1:
php_error(E_WARNING, "FontID %d is not loaded in memory", l_ind);
RETURN_FALSE;
break;
case -2:
php_error(E_WARNING, "Tried to copy a logical font");
RETURN_FALSE;
break;
case -3:
php_error(E_WARNING, "Memory allocation fault in t1lib");
RETURN_FALSE;
break;
default:
php_error(E_WARNING, "An unknown error occurred in t1lib");
RETURN_FALSE;
break;
}
}
nf_ind->extend = 1;
l_ind = zend_list_insert(nf_ind, GD_GLOBAL(le_ps_font));
RETURN_LONG(l_ind);
}
*/
/* }}} */
/* {{{ proto bool imagepsfreefont(int font_index)
Free memory used by a font */
PHP_FUNCTION(imagepsfreefont)
{
zval **fnt;
int type;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &fnt) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_long_ex(fnt);
zend_list_find(Z_LVAL_PP(fnt), &type);
if (type != T1_GLOBAL(le_ps_font)) {
php_error(E_WARNING, "%d is not a Type 1 font index", Z_LVAL_PP(fnt));
RETURN_FALSE;
}
zend_list_delete(Z_LVAL_PP(fnt));
RETURN_TRUE;
}
/* }}} */
/* {{{ proto bool imagepsencodefont(int font_index, string filename)
To change a fonts character encoding vector */
PHP_FUNCTION(imagepsencodefont)
{
zval **fnt, **enc;
char **enc_vector;
int type;
int f_ind;
if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &fnt, &enc) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_long_ex(fnt);
convert_to_string_ex(enc);
f_ind = zend_list_find(Z_LVAL_PP(fnt), &type);
if (type != T1_GLOBAL(le_ps_font)) {
php_error(E_WARNING, "%d is not a Type 1 font index", Z_LVAL_PP(fnt));
RETURN_FALSE;
}
if ((enc_vector = T1_LoadEncoding(Z_STRVAL_PP(enc))) == NULL) {
php_error(E_WARNING, "Couldn't load encoding vector from %s", Z_STRVAL_PP(enc));
RETURN_FALSE;
}
T1_DeleteAllSizes(f_ind);
if (T1_ReencodeFont(f_ind, enc_vector)) {
T1_DeleteEncoding(enc_vector);
php_error(E_WARNING, "Couldn't reencode font");
RETURN_FALSE;
}
zend_list_insert(enc_vector, T1_GLOBAL(le_ps_enc));
RETURN_TRUE;
}
/* }}} */
/* {{{ proto bool imagepsextendfont(int font_index, float extend)
Extend or or condense (if extend < 1) a font */
PHP_FUNCTION(imagepsextendfont)
{
zval **fnt, **ext;
int type;
int f_ind;
if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &fnt, &ext) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_long_ex(fnt);
convert_to_double_ex(ext);
f_ind = zend_list_find(Z_LVAL_PP(fnt), &type);
if (type != T1_GLOBAL(le_ps_font)) {
php_error(E_WARNING, "%d is not a Type 1 font index", Z_LVAL_PP(fnt));
RETURN_FALSE;
}
if (T1_ExtendFont(f_ind, Z_DVAL_PP(ext)) != 0) RETURN_FALSE;
/*
f_ind->extend = Z_DVAL_P(ext);
*/
RETURN_TRUE;
}
/* }}} */
/* {{{ proto bool imagepsslantfont(int font_index, float slant)
Slant a font */
PHP_FUNCTION(imagepsslantfont)
{
zval **fnt, **slt;
int type;
int f_ind;
if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &fnt, &slt) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_long_ex(fnt);
convert_to_double_ex(slt);
f_ind = zend_list_find(Z_LVAL_PP(fnt), &type);
if (type != T1_GLOBAL(le_ps_font)) {
php_error(E_WARNING, "%d is not a Type 1 font index", Z_LVAL_PP(fnt));
RETURN_FALSE;
}
if (T1_SlantFont(f_ind, Z_DVAL_PP(slt)) != 0) RETURN_FALSE;
RETURN_TRUE;
}
/* }}} */
/* {{{ proto array imagepstext(int image, string text, int font, int size, int xcoord, int ycoord [, int space, int tightness, float angle, int antialias])
Rasterize a string over an image */
PHP_FUNCTION(imagepstext)
{
zval **img, **str, **fnt, **sz, **fg, **bg, **sp, **px, **py, **aas, **wd, **ang;
int i, j, x, y;
int space, type;
int f_ind;
int h_lines, v_lines, c_ind;
int rd, gr, bl, fg_rd, fg_gr, fg_bl, bg_rd, bg_gr, bg_bl;
int aa[16], aa_steps;
int width, amount_kern, add_width;
double angle;
unsigned long aa_greys[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
gdImagePtr bg_img;
GLYPH *str_img;
T1_OUTLINE *char_path, *str_path;
T1_TMATRIX *transform = NULL;
switch(ZEND_NUM_ARGS()) {
case 8:
if (zend_get_parameters_ex(8, &img, &str, &fnt, &sz, &fg, &bg, &px, &py) == FAILURE) {
RETURN_FALSE;
}
convert_to_string_ex(str);
convert_to_long_ex(fnt);
convert_to_long_ex(sz);
convert_to_long_ex(fg);
convert_to_long_ex(bg);
convert_to_long_ex(px);
convert_to_long_ex(py);
x = Z_LVAL_PP(px);
y = Z_LVAL_PP(py);
space = 0;
aa_steps = 4;
width = 0;
angle = 0;
break;
case 12:
if (zend_get_parameters_ex(12, &img, &str, &fnt, &sz, &fg, &bg, &px, &py, &sp, &wd, &ang, &aas) == FAILURE) {
RETURN_FALSE;
}
convert_to_string_ex(str);
convert_to_long_ex(fnt);
convert_to_long_ex(sz);
convert_to_long_ex(sp);
convert_to_long_ex(fg);
convert_to_long_ex(bg);
convert_to_long_ex(px);
convert_to_long_ex(py);
x = Z_LVAL_PP(px);
y = Z_LVAL_PP(py);
convert_to_long_ex(sp);
space = Z_LVAL_PP(sp);
convert_to_long_ex(aas);
aa_steps = Z_LVAL_PP(aas);
convert_to_long_ex(wd);
width = Z_LVAL_PP(wd);
convert_to_double_ex(ang);
angle = Z_DVAL_PP(ang);
break;
default:
WRONG_PARAM_COUNT;
}
bg_img = zend_list_find(Z_LVAL_PP(img), &type);
if (!bg_img || type != GD_GLOBAL(le_gd)) {
php_error(E_WARNING, "Unable to find image pointer");
RETURN_FALSE;
}
f_ind = zend_list_find(Z_LVAL_P(fnt), &type);
if (!f_ind || type != GD_GLOBAL(le_ps_font)) {
php_error(E_WARNING, "%d is not a Type 1 font index", Z_LVAL_P(fnt));
RETURN_FALSE;
}
fg_rd = gdImageRed(bg_img, Z_LVAL_P(fg));
fg_gr = gdImageGreen(bg_img, Z_LVAL_P(fg));
fg_bl = gdImageBlue(bg_img, Z_LVAL_P(fg));
bg_rd = gdImageRed(bg_img, Z_LVAL_P(bg));
bg_gr = gdImageGreen(bg_img, Z_LVAL_P(bg));
bg_bl = gdImageBlue(bg_img, Z_LVAL_P(bg));
for (i = 0; i < aa_steps; i++) {
rd = bg_rd+(double)(fg_rd-bg_rd)/aa_steps*(i+1);
gr = bg_gr+(double)(fg_gr-bg_gr)/aa_steps*(i+1);
bl = bg_bl+(double)(fg_bl-bg_bl)/aa_steps*(i+1);
aa[i] = gdImageColorResolve(bg_img, rd, gr, bl);
}
T1_AASetBitsPerPixel(8);
switch (aa_steps) {
case 4:
T1_AASetGrayValues(0, 1, 2, 3, 4);
T1_AASetLevel(T1_AA_LOW);
break;
case 16:
T1_AAHSetGrayValues(aa_greys);
T1_AASetLevel(T1_AA_HIGH);
break;
default:
php_error(E_WARNING, "Invalid value %d as number of steps for antialiasing", aa_steps);
RETURN_FALSE;
}
if (angle) {
transform = T1_RotateMatrix(NULL, angle);
}
if (width) {
#ifdef HAVE_LIBT1_OUTLINE
str_path = T1_GetCharOutline(f_ind->font_id, Z_STRVAL_P(str)[0], Z_LVAL_P(sz), transform);
for (i = 1; i < Z_STRLEN_P(str); i++) {
amount_kern = (int) T1_GetKerning(f_ind->font_id, Z_STRVAL_P(str)[i-1], Z_STRVAL_P(str)[i]);
amount_kern += Z_STRVAL_P(str)[i-1] == ' ' ? space : 0;
add_width = (int) (amount_kern+width)/f_ind->extend;
char_path = T1_GetMoveOutline(f_ind->font_id, add_width, 0, 0, Z_LVAL_P(sz), transform);
str_path = T1_ConcatOutlines(str_path, char_path);
char_path = T1_GetCharOutline(f_ind->font_id, Z_STRVAL_P(str)[i], Z_LVAL_P(sz), transform);
str_path = T1_ConcatOutlines(str_path, char_path);
}
str_img = T1_AAFillOutline(str_path, 0);
#else
php_error(E_WARNING, "Setting space between characters in function ImagePSText is supported only with t1lib version 0.9 or above");
RETURN_FALSE;
#endif
} else {
str_img = T1_AASetString(f_ind->font_id, Z_STRVAL_P(str), Z_STRLEN_P(str),
space, T1_KERNING, Z_LVAL_P(sz), transform);
}
if (T1_errno) RETURN_FALSE;
h_lines = str_img->metrics.ascent - str_img->metrics.descent;
v_lines = str_img->metrics.rightSideBearing - str_img->metrics.leftSideBearing;
for (i = 0; i < v_lines; i++) {
for (j = 0; j < h_lines; j++) {
switch (str_img->bits[j*v_lines+i]) {
case 0:
break;
default:
c_ind = aa[str_img->bits[j*v_lines+i]-1];
gdImageSetPixel(bg_img, x+str_img->metrics.leftSideBearing+i, y-str_img->metrics.ascent+j, c_ind);
}
}
}
if (array_init(return_value) == FAILURE) {
RETURN_FALSE;
}
add_next_index_long(return_value, str_img->metrics.leftSideBearing);
add_next_index_long(return_value, str_img->metrics.descent);
add_next_index_long(return_value, str_img->metrics.rightSideBearing);
add_next_index_long(return_value, str_img->metrics.ascent);
}
/* }}} */
/* {{{ proto array imagepsbbox(string text, int font, int size [, int space, int tightness, int angle])
Return the bounding box needed by a string if rasterized */
PHP_FUNCTION(imagepsbbox)
{
pval *str, *fnt, *sz, *sp, *wd, *ang;
int i, space, add_width, char_width, amount_kern, type;
int cur_x, cur_y, dx, dy;
int x1, y1, x2, y2, x3, y3, x4, y4;
gd_ps_font *f_ind;
int per_char = 0;
double angle, sin_a, cos_a;
BBox char_bbox, str_bbox = {0, 0, 0, 0};
switch(ZEND_NUM_ARGS()) {
case 3:
if (zend_get_parameters(ht, 3, &str, &fnt, &sz) == FAILURE) {
RETURN_FALSE;
}
convert_to_string(str);
convert_to_long(fnt);
convert_to_long(sz);
space = 0;
break;
case 6:
if (zend_get_parameters(ht, 6, &str, &fnt, &sz, &sp, &wd, &ang) == FAILURE) {
RETURN_FALSE;
}
convert_to_string(str);
convert_to_long(fnt);
convert_to_long(sz);
convert_to_long(sp);
space = Z_LVAL_P(sp);
convert_to_long(wd);
add_width = Z_LVAL_P(wd);
convert_to_double(ang);
angle = Z_DVAL_P(ang) * M_PI / 180;
sin_a = sin(angle);
cos_a = cos(angle);
per_char = add_width || angle ? 1 : 0;
break;
default:
WRONG_PARAM_COUNT;
}
f_ind = zend_list_find(Z_LVAL_P(fnt), &type);
if (type != GD_GLOBAL(le_ps_font)) {
php_error(E_WARNING, "%d is not a Type 1 font index", Z_LVAL_P(fnt));
RETURN_FALSE;
}
#define max(a, b) (a > b ? a : b)
#define min(a, b) (a < b ? a : b)
#define new_x(a, b) (int) ((a) * cos_a - (b) * sin_a)
#define new_y(a, b) (int) ((a) * sin_a + (b) * cos_a)
if (per_char) {
space += T1_GetCharWidth(f_ind->font_id, ' ');
cur_x = cur_y = 0;
for (i = 0; i < Z_STRLEN_P(str); i++) {
if (Z_STRVAL_P(str)[i] == ' ') {
char_bbox.llx = char_bbox.lly = char_bbox.ury = 0;
char_bbox.urx = char_width = space;
} else {
char_bbox = T1_GetCharBBox(f_ind->font_id, Z_STRVAL_P(str)[i]);
char_width = T1_GetCharWidth(f_ind->font_id, Z_STRVAL_P(str)[i]);
}
amount_kern = i ? T1_GetKerning(f_ind->font_id, Z_STRVAL_P(str)[i-1], Z_STRVAL_P(str)[i]) : 0;
/* Transfer character bounding box to right place */
x1 = new_x(char_bbox.llx, char_bbox.lly) + cur_x;
y1 = new_y(char_bbox.llx, char_bbox.lly) + cur_y;
x2 = new_x(char_bbox.llx, char_bbox.ury) + cur_x;
y2 = new_y(char_bbox.llx, char_bbox.ury) + cur_y;
x3 = new_x(char_bbox.urx, char_bbox.ury) + cur_x;
y3 = new_y(char_bbox.urx, char_bbox.ury) + cur_y;
x4 = new_x(char_bbox.urx, char_bbox.lly) + cur_x;
y4 = new_y(char_bbox.urx, char_bbox.lly) + cur_y;
/* Find min & max values and compare them with current bounding box */
str_bbox.llx = min(str_bbox.llx, min(x1, min(x2, min(x3, x4))));
str_bbox.lly = min(str_bbox.lly, min(y1, min(y2, min(y3, y4))));
str_bbox.urx = max(str_bbox.urx, max(x1, max(x2, max(x3, x4))));
str_bbox.ury = max(str_bbox.ury, max(y1, max(y2, max(y3, y4))));
/* Move to the next base point */
dx = new_x(char_width + add_width + amount_kern, 0);
dy = new_y(char_width + add_width + amount_kern, 0);
cur_x += dx;
cur_y += dy;
/*
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", x1, y1, x2, y2, x3, y3, x4, y4, char_bbox.llx, char_bbox.lly, char_bbox.urx, char_bbox.ury, char_width, amount_kern, cur_x, cur_y, dx, dy);
*/
}
} else {
str_bbox = T1_GetStringBBox(f_ind->font_id, Z_STRVAL_P(str), Z_STRLEN_P(str), space, T1_KERNING);
}
if (T1_errno) RETURN_FALSE;
if (array_init(return_value) == FAILURE) {
RETURN_FALSE;
}
/*
printf("%d %d %d %d\n", str_bbox.llx, str_bbox.lly, str_bbox.urx, str_bbox.ury);
*/
add_next_index_long(return_value, (int) ceil(((double) str_bbox.llx)*Z_LVAL_P(sz)/1000));
add_next_index_long(return_value, (int) ceil(((double) str_bbox.lly)*Z_LVAL_P(sz)/1000));
add_next_index_long(return_value, (int) ceil(((double) str_bbox.urx)*Z_LVAL_P(sz)/1000));
add_next_index_long(return_value, (int) ceil(((double) str_bbox.ury)*Z_LVAL_P(sz)/1000));
}
/* }}} */
#endif /* HAVE_LIBT1 */
#endif /* 0 */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
+17 -17
View File
@@ -12,24 +12,24 @@
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Harald Radi <h.radi@nme.at> |
| Author: Jouni Ahto <jah@mork.net> |
+----------------------------------------------------------------------+
*/
/* TODO: include this file in ext/rpc/layer.h and add your handlers to
* the handler_entries[] array.
/* $Id$ */
#if HAVE_LIBT1
#include <t1lib.h>
extern void php_free_ps_font(zend_rsrc_list_entry *rsrc TSRMLS_DC);
extern void php_free_ps_enc(zend_rsrc_list_entry *rsrc TSRMLS_DC);
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
#ifndef SKELETON_H
#define SKELETON_H
#include "../handler.h"
#include "../php_rpc.h"
RPC_DECLARE_HANDLER(skeleton);
/* TODO: define your functions here */
ZEND_FUNCTION(skeleton_function);
/**/
#endif /* SKELETON_H */
+4 -4
View File
@@ -509,12 +509,12 @@ tweenColorFetch (char **error, void *key)
is incorporate our knowledge of the percentage of this
pixel that is really "lit" by pushing the alpha value
up toward transparency in edge regions. */
a->tweencolor = gdAlphaBlend(bg, gdTrueColorAlpha (
a->tweencolor = gdTrueColorAlpha (
gdTrueColorGetRed (fg),
gdTrueColorGetGreen (fg),
gdTrueColorGetBlue (fg),
gdAlphaMax - ((gdAlphaMax - gdTrueColorGetAlpha (fg)) * pixel / NUMCOLORS))
);
gdAlphaMax - ((gdAlphaMax - gdTrueColorGetAlpha (fg)) * pixel / NUMCOLORS)
);
}
else
{
@@ -604,7 +604,7 @@ gdft_draw_bitmap (gdImage * im, int fg, FT_Bitmap bitmap, int pen_x, int pen_y)
}
else {
pixel = &im->pixels[y][x];
if (tc_key.pixel == NUMCOLORS && gdTrueColorGetAlpha(fg) ==0)
if (tc_key.pixel == NUMCOLORS)
*pixel = fg;
else {
tc_key.bgcolor = *pixel;
+14
View File
@@ -30,6 +30,12 @@
#if HAVE_LIBGD
#include <gd.h>
#if HAVE_LIBT1
#include "gdt1.h"
#endif
#define PHP_GDIMG_TYPE_GIF 1
#define PHP_GDIMG_TYPE_PNG 2
#define PHP_GDIMG_TYPE_JPG 3
@@ -59,6 +65,9 @@ PHP_MINFO_FUNCTION(gd);
PHP_MINIT_FUNCTION(gd);
PHP_MSHUTDOWN_FUNCTION(gd);
#ifndef HAVE_GDIMAGECOLORRESOLVE
extern int gdImageColorResolve(gdImagePtr, int, int, int);
#endif
PHP_FUNCTION(imagearc);
PHP_FUNCTION(imagechar);
PHP_FUNCTION(imagecharup);
@@ -157,6 +166,11 @@ PHP_FUNCTION(image2wbmp);
PHP_GD_API int phpi_get_le_gd(void);
/* This is missing from gd.h */
#if HAVE_COLORCLOSESTHWB
int gdImageColorClosestHWB(gdImagePtr im, int r, int g, int b);
#endif
#else
#define phpext_gd_ptr NULL
+2 -2
View File
@@ -17,9 +17,9 @@ if test "$PHP_GMP" != "no"; then
AC_MSG_ERROR(Unable to locate gmp.h)
fi
PHP_ADD_INCLUDE($GMP_DIR/include)
PHP_NEW_EXTENSION(gmp, gmp.c, $ext_shared)
AC_DEFINE(HAVE_GMP, 1, [ ])
PHP_SUBST(GMP_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(gmp, $GMP_DIR/lib, GMP_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(gmp, $GMP_DIR/lib)
fi
-159
View File
@@ -1,159 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP version 4.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available at through the world-wide-web at |
| http://www.php.net/license/2_02.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Rasmus Lerdorf <rasmus@lerdorf.on.ca> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef PHP_HWAPI_H
#define PHP_HWAPI_H
#ifdef PHP_WIN32
#define PHP_HWAPI_API __declspec(dllexport)
#else
#define PHP_HWAPI_API
#endif
#if HAVE_HWAPI
#ifndef DLEXPORT
#define DLEXPORT
#endif
#ifdef ZTS
#include "TSRM.h"
#endif
extern zend_module_entry hwapi_module_entry;
#define hwapi_module_ptr &hwapi_module_entry
typedef struct {
long default_link;
long default_port;
long num_links,num_persistent;
long max_links,max_persistent;
long allow_persistent;
int le_socketp, le_psocketp, le_document;
} zend_hwapi_globals;
#ifdef ZTS
# define HwApiSLS_D zend_hwapi_globals *hwapi_globals
# define HwApiSLS_DC , HwApiSLS_D
# define HwApiSLS_C hwapi_globals
# define HwApiSLS_CC , HwApiSLS_C
# define HwApiSG(v) (hwapi_globals->v)
# define HwApiSLS_FETCH() zend_hwapi_globals *hwapi_globals = ts_resource(hwapi_globals_id)
#else
# define HwApiSLS_D
# define HwApiSLS_DC
# define HwApiSLS_C
# define HwApiSLS_CC
# define HwApiSG(v) (hwapi_globals.v)
# define HwApiSLS_FETCH()
extern PHP_HWAPI_API zend_hwapi_globals hwapi_globals;
#endif
extern PHP_MINIT_FUNCTION(hwapi);
extern PHP_MSHUTDOWN_FUNCTION(hwapi);
extern PHP_RINIT_FUNCTION(hwapi);
PHP_MINFO_FUNCTION(hwapi);
/* HW_API */
PHP_FUNCTION(hwapi_dummy);
PHP_FUNCTION(hwapi_init);
PHP_FUNCTION(hwapi_hgcsp);
PHP_FUNCTION(hwapi_object);
PHP_FUNCTION(hwapi_children);
PHP_FUNCTION(hwapi_mychildren);
PHP_FUNCTION(hwapi_parents);
PHP_FUNCTION(hwapi_find);
PHP_FUNCTION(hwapi_identify);
PHP_FUNCTION(hwapi_remove);
PHP_FUNCTION(hwapi_content);
PHP_FUNCTION(hwapi_copy);
PHP_FUNCTION(hwapi_link);
PHP_FUNCTION(hwapi_move);
PHP_FUNCTION(hwapi_lock);
PHP_FUNCTION(hwapi_unlock);
PHP_FUNCTION(hwapi_replace);
PHP_FUNCTION(hwapi_insert);
PHP_FUNCTION(hwapi_insertdocument);
PHP_FUNCTION(hwapi_insertcollection);
PHP_FUNCTION(hwapi_srcanchors);
PHP_FUNCTION(hwapi_dstanchors);
PHP_FUNCTION(hwapi_objectbyanchor);
PHP_FUNCTION(hwapi_dstofsrcanchor);
PHP_FUNCTION(hwapi_srcsofdst);
PHP_FUNCTION(hwapi_checkin);
PHP_FUNCTION(hwapi_checkout);
PHP_FUNCTION(hwapi_setcommittedversion);
PHP_FUNCTION(hwapi_revert);
PHP_FUNCTION(hwapi_history);
PHP_FUNCTION(hwapi_removeversion);
PHP_FUNCTION(hwapi_freeversion);
PHP_FUNCTION(hwapi_configurationhistory);
PHP_FUNCTION(hwapi_saveconfiguration);
PHP_FUNCTION(hwapi_restoreconfiguration);
PHP_FUNCTION(hwapi_mergeconfiguration);
PHP_FUNCTION(hwapi_removeconfiguration);
PHP_FUNCTION(hwapi_user);
PHP_FUNCTION(hwapi_userlist);
PHP_FUNCTION(hwapi_hwstat);
PHP_FUNCTION(hwapi_dcstat);
PHP_FUNCTION(hwapi_dbstat);
PHP_FUNCTION(hwapi_ftstat);
PHP_FUNCTION(hwapi_info);
/* HW_Object */
PHP_FUNCTION(hwapi_object_new);
PHP_FUNCTION(hwapi_object_count);
PHP_FUNCTION(hwapi_object_title);
PHP_FUNCTION(hwapi_object_attreditable);
PHP_FUNCTION(hwapi_object_assign);
PHP_FUNCTION(hwapi_object_attribute);
PHP_FUNCTION(hwapi_object_insert);
PHP_FUNCTION(hwapi_object_remove);
PHP_FUNCTION(hwapi_object_value);
/* HW_Attribute */
PHP_FUNCTION(hwapi_attribute_new);
PHP_FUNCTION(hwapi_attribute_key);
PHP_FUNCTION(hwapi_attribute_value);
PHP_FUNCTION(hwapi_attribute_values);
PHP_FUNCTION(hwapi_attribute_langdepvalue);
/* HW_Content */
PHP_FUNCTION(hwapi_content_new);
PHP_FUNCTION(hwapi_content_read);
PHP_FUNCTION(hwapi_content_mimetype);
/* HW_Error */
PHP_FUNCTION(hwapi_error_count);
PHP_FUNCTION(hwapi_error_reason);
/* HW_Reason */
PHP_FUNCTION(hwapi_reason_type);
PHP_FUNCTION(hwapi_reason_description);
#else
#define hwapi_module_ptr NULL
#endif /* HAVE_HWAPI */
#define phpext_hwapi_ptr hwapi_module_ptr
#endif /* PHP_HWAPI_H */
+120 -116
View File
@@ -746,7 +746,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if(host) efree(host);
if(password) efree(password);
if(username) efree(username);
php_error(E_ERROR, "%s(): Could not get memory for connection details", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Could not get memory for connection details");
RETURN_FALSE;
}
sprintf(hashed_details, "hw_%s_%d", host, port);
@@ -759,7 +759,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
list_entry new_le;
if (HwSG(max_links)!=-1 && HwSG(num_links)>=HwSG(max_links)) {
php_error(E_ERROR, "%s(): Too many open links (%d)", get_active_function_name(TSRMLS_C), HwSG(num_links));
php_error(E_ERROR, "Hyperwave: Too many open links (%d)", HwSG(num_links));
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -767,7 +767,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
RETURN_FALSE;
}
if (HwSG(max_persistent!=-1) && HwSG(num_persistent)>=HwSG(max_persistent)) {
php_error(E_ERROR, "%s(): Too many open persistent links (%d)", get_active_function_name(TSRMLS_C), HwSG(num_persistent));
php_error(E_ERROR, "Hyperwave: Too many open persistent links (%d)", HwSG(num_persistent));
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -776,7 +776,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
}
if ( (sockfd = open_hg_connection(host, port)) < 0 ) {
php_error(E_ERROR, "%s(): Could not open connection to %s, Port: %d (retval=%d, errno=%d)", get_active_function_name(TSRMLS_C), host, port, sockfd, errno);
php_error(E_ERROR, "Could not open connection to %s, Port: %d (retval=%d, errno=%d)", host, port, sockfd, errno);
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -785,7 +785,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
}
if(NULL == (ptr = malloc(sizeof(hw_connection)))) {
php_error(E_ERROR, "%s(): Could not get memory for connection structure", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Could not get memory for connection structure");
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -794,7 +794,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
}
if(0 != (ptr->lasterror = initialize_hg_connection(sockfd, &do_swap, &version, &userdata, &server_string, username, password))) {
php_error(E_ERROR, "%s(): Could not initalize hyperwave connection", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Could not initalize hyperwave connection");
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -819,7 +819,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
Z_TYPE(new_le) = le_psocketp;
if (zend_hash_update(&EG(persistent_list), hashed_details, hashed_details_length+1, (void *) &new_le, sizeof(list_entry), NULL)==FAILURE) {
php_error(E_ERROR, "%s(): Could not hash table with connection details", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Could not hash table with connection details");
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -872,7 +872,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
}
if ( (sockfd = open_hg_connection(host, port)) < 0 ) {
php_error(E_ERROR, "%s(): Could not open connection to %s, Port: %d (retval=%d", get_active_function_name(TSRMLS_C), host, port, sockfd);
php_error(E_ERROR, "Could not open connection to %s, Port: %d (retval=%d", host, port, sockfd);
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -889,7 +889,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
}
if(0 != (ptr->lasterror = initialize_hg_connection(sockfd, &do_swap, &version, &userdata, &server_string, username, password))) {
php_error(E_ERROR, "%s(): Could not initalize hyperwave connection", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Could not initalize hyperwave connection");
if(host) efree(host);
if(username) efree(username);
if(password) efree(password);
@@ -916,7 +916,7 @@ static void php_hw_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
new_index_ptr.ptr = (void *) Z_LVAL_P(return_value);
Z_TYPE(new_index_ptr) = le_index_ptr;
if (zend_hash_update(&EG(regular_list), hashed_details, hashed_details_length+1, (void *) &new_index_ptr, sizeof(list_entry), NULL)==FAILURE) {
php_error(E_ERROR, "%s(): Could not update connection details in hash table", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Could not update connection details in hash table");
if(host) efree(host);
efree(hashed_details);
RETURN_FALSE;
@@ -982,7 +982,7 @@ PHP_FUNCTION(hw_close)
id=Z_LVAL_PP(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
zend_list_delete(id);
@@ -1006,7 +1006,7 @@ PHP_FUNCTION(hw_info)
id=Z_LVAL_PP(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
if(NULL != (str = get_hw_info(ptr))) {
@@ -1038,7 +1038,7 @@ PHP_FUNCTION(hw_error)
id=Z_LVAL_PP(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
RETURN_LONG(ptr->lasterror);
@@ -1061,7 +1061,7 @@ PHP_FUNCTION(hw_errormsg)
id=Z_LVAL_PP(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -1352,7 +1352,7 @@ char *php_hw_command(INTERNAL_FUNCTION_PARAMETERS, int comm) {
link=Z_LVAL_PP(arg1);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
return NULL;
}
@@ -1519,7 +1519,7 @@ PHP_FUNCTION(hw_dummy)
msgid=Z_LVAL_PP(arg3);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -1570,7 +1570,7 @@ PHP_FUNCTION(hw_getobject)
link=Z_LVAL_PP(argv[0]);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -1646,7 +1646,7 @@ PHP_FUNCTION(hw_insertobject)
parms=Z_STRVAL_P(arg3);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -1678,7 +1678,7 @@ PHP_FUNCTION(hw_getandlock)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -1710,7 +1710,7 @@ PHP_FUNCTION(hw_unlock)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -1739,7 +1739,7 @@ PHP_FUNCTION(hw_deleteobject)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -1772,7 +1772,7 @@ PHP_FUNCTION(hw_changeobject)
newobjarr=Z_ARRVAL_P(arg3);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -1875,7 +1875,7 @@ PHP_FUNCTION(hw_modifyobject)
addobjarr=Z_ARRVAL_PP(argv[3]);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -2030,7 +2030,7 @@ PHP_FUNCTION(hw_modifyobject)
if (0 == (ptr->lasterror = send_lock(ptr->socket, id))) {
if (0 == (ptr->lasterror = send_changeobject(ptr->socket, id, modification))) {
if (0 != (ptr->lasterror = send_unlock(ptr->socket, id))) {
php_error(E_WARNING, "%s(): Aiii, Changeobject failed and couldn't unlock object (id = 0x%X)", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Aiii, Changeobject failed and couldn't unlock object (id = 0x%X)", id);
free(modification);
RETURN_FALSE;
}
@@ -2042,7 +2042,7 @@ PHP_FUNCTION(hw_modifyobject)
RETURN_FALSE;
}
} else {
php_error(E_WARNING, "%s(): Could not lock object (id = 0x%X)", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Could not lock object (id = 0x%X)", id);
free(modification);
RETURN_FALSE;
}
@@ -2061,7 +2061,7 @@ PHP_FUNCTION(hw_modifyobject)
}
break;
default:
php_error(E_WARNING, "%s(): Mode must be 0 or 1 (recursive)", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "hw_modifyobject: Mode must be 0 or 1 (recursive)");
}
free(modification);
RETURN_TRUE;
@@ -2106,7 +2106,7 @@ void php_hw_mvcp(INTERNAL_FUNCTION_PARAMETERS, int mvcp) {
}
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -2218,7 +2218,7 @@ PHP_FUNCTION(hw_gettext)
id=Z_LVAL_P(argv[1]);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -2260,7 +2260,7 @@ PHP_FUNCTION(hw_edittext)
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find socket identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find socket identifier %d", link);
RETURN_FALSE;
}
@@ -2268,7 +2268,7 @@ PHP_FUNCTION(hw_edittext)
docptr = zend_list_find(doc, &type);
if(!docptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find document identifier %d", get_active_function_name(TSRMLS_C), doc);
php_error(E_WARNING, "Unable to find document identifier %d", doc);
RETURN_FALSE;
}
@@ -2303,7 +2303,7 @@ PHP_FUNCTION(hw_getcgi)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -2365,7 +2365,7 @@ PHP_FUNCTION(hw_getremote)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -2406,7 +2406,7 @@ PHP_FUNCTION(hw_getremotechildren)
objrec=Z_STRVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
@@ -2510,7 +2510,7 @@ PHP_FUNCTION(hw_setlinkroot)
rootid = Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -2556,7 +2556,7 @@ PHP_FUNCTION(hw_pipedocument)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -2565,7 +2565,7 @@ PHP_FUNCTION(hw_pipedocument)
convert_to_array(arg3);
prefixarray =Z_ARRVAL_P(arg3);
if((prefixarray == NULL) || (zend_hash_num_elements(prefixarray) != 5)) {
php_error(E_WARNING, "%s(): You must provide 5 urlprefixes (you have provided %d)", get_active_function_name(TSRMLS_C), zend_hash_num_elements(prefixarray));
php_error(E_WARNING, "You must provide 5 urlprefixes (you have provided %d)", zend_hash_num_elements(prefixarray));
RETURN_FALSE;
}
@@ -2580,7 +2580,7 @@ PHP_FUNCTION(hw_pipedocument)
zend_hash_get_current_data(prefixarray, (void *) &dataptr);
data = *dataptr;
if (Z_TYPE_P(data) != IS_STRING) {
php_error(E_WARNING, "%s(): %s must be a String", get_active_function_name(TSRMLS_C), key);
php_error(E_WARNING, "%s must be a String", key);
RETURN_FALSE;
} else if ( strcmp(key, "HW_DEFAULT_LINK") == 0 ) {
urlprefix[HW_DEFAULT_LINK] = Z_STRVAL_P(data);
@@ -2593,7 +2593,7 @@ PHP_FUNCTION(hw_pipedocument)
} else if ( strcmp(key, "HW_APPLET_LINK") == 0 ) {
urlprefix[HW_APPLET_LINK] = Z_STRVAL_P(data);
} else {
php_error(E_WARNING, "%s(): %s is not a valid urlprefix", get_active_function_name(TSRMLS_C), key);
php_error(E_WARNING, "%s is not a valid urlprefix", key);
RETURN_FALSE;
}
zend_hash_move_forward(prefixarray);
@@ -2669,7 +2669,7 @@ PHP_FUNCTION(hw_oldpipedocument)
id=Z_LVAL_P(argv[1]);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -2730,7 +2730,7 @@ PHP_FUNCTION(hw_pipecgi)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -2796,14 +2796,14 @@ PHP_FUNCTION(hw_insertdocument)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find connection identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find connection identifier %d", link);
RETURN_FALSE;
}
doc=Z_LVAL_P(arg3);
docptr = zend_list_find(doc, &type);
if(!docptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find document identifier %d", get_active_function_name(TSRMLS_C), doc);
php_error(E_WARNING, "Unable to find document identifier %d", doc);
RETURN_FALSE;
}
@@ -2863,8 +2863,14 @@ PHP_FUNCTION(hw_new_document)
PHP_FUNCTION(hw_new_document_from_file)
{
pval **arg1, **arg2;
int len, type;
char *ptr;
int issock=0;
int socketd=0;
FILE *fp;
php_stream *stream;
int ready=0;
int bcount=0;
int use_include_path=0;
hw_document *doc;
@@ -2889,16 +2895,13 @@ PHP_FUNCTION(hw_new_document_from_file)
doc->size = php_stream_copy_to_mem(stream, &doc->data, PHP_STREAM_COPY_ALL, 1);
php_stream_close(stream);
/* I'm not sure if it is necessary to add a '\0'. It depends on whether
* PHP-Strings has to be null terminated. doc->size doesn't count the
* '\0'.
*/
doc->data = realloc(doc->data, doc->size+1);
doc->data = realloc(doc->data, bcount+1);
ptr = doc->data;
ptr[doc->size] = '\0';
ptr[bcount] = '\0';
doc->attributes = strdup(Z_STRVAL_PP(arg1));
doc->bodytag = NULL;
doc->size = bcount;
Z_LVAL_P(return_value) = zend_list_insert(doc, le_document);
Z_TYPE_P(return_value) = IS_LONG;
}
@@ -2919,7 +2922,7 @@ PHP_FUNCTION(hw_free_document)
id=Z_LVAL_P(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
zend_list_delete(id);
@@ -2946,7 +2949,7 @@ PHP_FUNCTION(hw_output_document)
id=Z_LVAL_P(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -2980,7 +2983,7 @@ PHP_FUNCTION(hw_document_bodytag)
id=Z_LVAL_P(argv[0]);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3025,7 +3028,7 @@ PHP_FUNCTION(hw_document_content)
id=Z_LVAL_P(argv[0]);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3054,7 +3057,7 @@ PHP_FUNCTION(hw_document_setcontent)
id=Z_LVAL_P(argv[0]);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3089,7 +3092,7 @@ PHP_FUNCTION(hw_document_size)
id=Z_LVAL_P(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3116,7 +3119,7 @@ PHP_FUNCTION(hw_document_attributes)
id=Z_LVAL_P(arg1);
ptr = zend_list_find(id, &type);
if(!ptr || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3144,14 +3147,14 @@ PHP_FUNCTION(hw_getparentsobj)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getparentsobj(ptr->socket, id, &childObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getparentsobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3179,7 +3182,7 @@ PHP_FUNCTION(hw_getparents)
id=Z_LVAL_P(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3189,7 +3192,7 @@ PHP_FUNCTION(hw_getparents)
int i;
if (0 != (ptr->lasterror = send_getparents(ptr->socket, id, &childIDs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getparents) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3225,7 +3228,7 @@ PHP_FUNCTION(hw_children)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3235,7 +3238,7 @@ PHP_FUNCTION(hw_children)
int i;
if (0 != (ptr->lasterror = send_children(ptr->socket, id, &childIDs, &count))){
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getchildcoll) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3272,14 +3275,14 @@ PHP_FUNCTION(hw_childrenobj)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_childrenobj(ptr->socket, id, &childObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getchildcollobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3307,7 +3310,7 @@ PHP_FUNCTION(hw_getchildcoll)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3317,7 +3320,7 @@ PHP_FUNCTION(hw_getchildcoll)
int i;
if (0 != (ptr->lasterror = send_getchildcoll(ptr->socket, id, &childIDs, &count))){
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getchildcoll) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3354,14 +3357,14 @@ PHP_FUNCTION(hw_getchildcollobj)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getchildcollobj(ptr->socket, id, &childObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getchildcollobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3388,7 +3391,7 @@ PHP_FUNCTION(hw_docbyanchor)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3420,7 +3423,7 @@ PHP_FUNCTION(hw_docbyanchorobj)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
@@ -3462,13 +3465,13 @@ PHP_FUNCTION(hw_getobjectbyquery)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyquery(ptr->socket, query, maxhits, &childIDs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyquery) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3506,13 +3509,13 @@ PHP_FUNCTION(hw_getobjectbyqueryobj)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyqueryobj(ptr->socket, query, maxhits, &childObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyqueryobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3547,13 +3550,13 @@ PHP_FUNCTION(hw_getobjectbyquerycoll)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyquerycoll(ptr->socket, id, query, maxhits, &childIDs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyquerycoll) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3593,13 +3596,13 @@ PHP_FUNCTION(hw_getobjectbyquerycollobj)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyquerycollobj(ptr->socket, id, query, maxhits, &childObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyquerycollobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3633,13 +3636,13 @@ PHP_FUNCTION(hw_getobjectbyftquery)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyftquery(ptr->socket, query, maxhits, &childIDs, &weights, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyftquery) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3678,13 +3681,13 @@ PHP_FUNCTION(hw_getobjectbyftqueryobj)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyftqueryobj(ptr->socket, query, maxhits, &childObjRecs, &weights, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyftqueryobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3720,13 +3723,13 @@ PHP_FUNCTION(hw_getobjectbyftquerycoll)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyftquerycoll(ptr->socket, id, query, maxhits, &childIDs, &weights, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyquerycoll) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3767,13 +3770,13 @@ PHP_FUNCTION(hw_getobjectbyftquerycollobj)
if (maxhits < 0) maxhits=0x7FFFFFFF;
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getobjbyftquerycollobj(ptr->socket, id, query, maxhits, &childObjRecs, &weights, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getobjectbyquerycollobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3802,13 +3805,13 @@ PHP_FUNCTION(hw_getchilddoccoll)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getchilddoccoll(ptr->socket, id, &childIDs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getchilddoccoll) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3842,13 +3845,13 @@ PHP_FUNCTION(hw_getchilddoccollobj)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getchilddoccollobj(ptr->socket, id, &childObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getchilddoccollobj) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3878,13 +3881,13 @@ PHP_FUNCTION(hw_getanchors)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getanchors(ptr->socket, id, &anchorIDs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getanchors) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3918,13 +3921,13 @@ PHP_FUNCTION(hw_getanchorsobj)
id=Z_LVAL_PP(arg2);
ptr = (hw_connection *) zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING, "Unable to find file identifier %d", id);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getanchorsobj(ptr->socket, id, &anchorObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getanchors) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -3949,7 +3952,7 @@ PHP_FUNCTION(hw_getusername)
link = Z_LVAL_PP(arg1);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -3979,7 +3982,7 @@ PHP_FUNCTION(hw_identify)
passwd=Z_STRVAL_PP(arg3);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -3988,7 +3991,7 @@ PHP_FUNCTION(hw_identify)
char *str;
if (0 != (ptr->lasterror = send_identify(ptr->socket, name, passwd, &userdata))) {
php_error(E_WARNING, "%s(): Command returned %d\n", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_identify returned %d\n", ptr->lasterror);
if(ptr->username) free(ptr->username);
ptr->username = NULL;
RETURN_FALSE;
@@ -4076,19 +4079,19 @@ PHP_FUNCTION(hw_incollections)
retcoll=Z_LVAL_PP(arg4);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
cobjids = zend_hash_num_elements(Z_ARRVAL_PP(arg2));
if(NULL == (objectIDs = make_ints_from_array(Z_ARRVAL_PP(arg2)))) {
php_error(E_WARNING, "%s(): Could not create Int Array from Array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Could not create Int Array from Array\n");
RETURN_FALSE;
}
ccollids = zend_hash_num_elements(Z_ARRVAL_PP(arg3));
if(NULL == (collIDs = make_ints_from_array(Z_ARRVAL_PP(arg3)))) {
php_error(E_WARNING, "%s(): Could not create Int Array from Array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Could not create Int Array from Array\n");
efree(objectIDs);
RETURN_FALSE;
}
@@ -4137,12 +4140,12 @@ PHP_FUNCTION(hw_inscoll)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
if(NULL == (objrec = make_objrec_from_array(Z_ARRVAL_PP(arg3)))) {
php_error(E_WARNING, "%s(): Could not create Object Record from Array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Could not create Object Record from Array\n");
RETURN_FALSE;
}
@@ -4186,7 +4189,7 @@ PHP_FUNCTION(hw_insdoc)
id = Z_LVAL_PP(argv[1]);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
@@ -4219,13 +4222,13 @@ PHP_FUNCTION(hw_getsrcbydestobj)
id=Z_LVAL_PP(arg2);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_getsrcbydest(ptr->socket, id, &childObjRecs, &count))) {
php_error(E_WARNING, "%s(): Command returned %d", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (getsrcbydest) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -4254,13 +4257,13 @@ PHP_FUNCTION(hw_mapid)
id=Z_LVAL_PP(arg3);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = send_mapid(ptr->socket, servid, id, &virtid))) {
php_error(E_WARNING, "%s(): Command returned %d", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "send_command (mapid) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
RETURN_LONG(virtid);
@@ -4290,13 +4293,13 @@ PHP_FUNCTION(hw_getrellink)
destid=Z_LVAL_PP(arg4);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
set_swap(ptr->swap_on);
if (0 != (ptr->lasterror = getrellink(ptr->socket, rootid, sourceid, destid, &anchorstr))) {
php_error(E_WARNING, "%s(): Command returned %d", get_active_function_name(TSRMLS_C), ptr->lasterror);
php_error(E_WARNING, "command (getrellink) returned %d\n", ptr->lasterror);
RETURN_FALSE;
}
@@ -4311,6 +4314,7 @@ PHP_FUNCTION(hw_insertanchors)
pval **arg1, **arg2, **arg3, **arg4;
hw_document *hwdoc;
int type, docid, error, argc, count;
char *anchorstr;
char **anchorrecs;
char **dest;
char **urlprefix;
@@ -4339,7 +4343,7 @@ PHP_FUNCTION(hw_insertanchors)
docid=Z_LVAL_PP(arg1);
hwdoc = zend_list_find(docid, &type);
if(!hwdoc || (type!=le_document)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), docid);
php_error(E_WARNING, "Unable to find file identifier %d", docid);
RETURN_FALSE;
}
@@ -4349,7 +4353,7 @@ PHP_FUNCTION(hw_insertanchors)
convert_to_array_ex(arg4);
prefixarray =Z_ARRVAL_PP(arg4);
if((prefixarray == NULL) || (zend_hash_num_elements(prefixarray) != 5)) {
php_error(E_WARNING, "%s(): You must provide 5 urlprefixes (you have provided %d)", get_active_function_name(TSRMLS_C), zend_hash_num_elements(prefixarray));
php_error(E_WARNING, "You must provide 5 urlprefixes (you have provided %d)", zend_hash_num_elements(prefixarray));
RETURN_FALSE;
}
@@ -4364,7 +4368,7 @@ PHP_FUNCTION(hw_insertanchors)
zend_hash_get_current_data(prefixarray, (void *) &dataptr);
data = *dataptr;
if (Z_TYPE_P(data) != IS_STRING) {
php_error(E_WARNING, "%s(): %s must be a String", get_active_function_name(TSRMLS_C), key);
php_error(E_WARNING, "%s must be a String", key);
RETURN_FALSE;
} else if ( strcmp(key, "HW_DEFAULT_LINK") == 0 ) {
urlprefix[HW_DEFAULT_LINK] = Z_STRVAL_P(data);
@@ -4377,7 +4381,7 @@ PHP_FUNCTION(hw_insertanchors)
} else if ( strcmp(key, "HW_APPLET_LINK") == 0 ) {
urlprefix[HW_APPLET_LINK] = Z_STRVAL_P(data);
} else {
php_error(E_WARNING, "%s(): %s is not a valid urlprefix", get_active_function_name(TSRMLS_C), key);
php_error(E_WARNING, "%s is not a valid urlprefix", key);
RETURN_FALSE;
}
zend_hash_move_forward(prefixarray);
@@ -4387,7 +4391,7 @@ PHP_FUNCTION(hw_insertanchors)
}
if(zend_hash_num_elements(Z_ARRVAL_PP(arg2)) != zend_hash_num_elements(Z_ARRVAL_PP(arg3))) {
php_error(E_WARNING, "%s(): Unequal number of elements in arrays", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unequal number of elments in arrays");
RETURN_FALSE;
}
@@ -4398,7 +4402,7 @@ PHP_FUNCTION(hw_insertanchors)
dest = make_strs_from_array(arrht);
if (0 != (error = send_insertanchors(&(hwdoc->data), &count, anchorrecs, dest, zend_hash_num_elements(arrht), urlprefix, &bodytag))) {
php_error(E_WARNING, "%s(): Command returned %d", get_active_function_name(TSRMLS_C), error);
php_error(E_WARNING, "command (insertanchors) returned %d\n", error);
RETURN_FALSE;
}
/*fprintf(stderr, "in hw_insertanchors: %s\n", hwdoc->attributes); */
@@ -4435,7 +4439,7 @@ PHP_FUNCTION(hw_connection_info)
link=Z_LVAL_PP(arg1);
ptr = zend_list_find(link, &type);
if(!ptr || (type!=le_socketp && type!=le_psocketp)) {
php_error(E_WARNING, "%s(): Unable to find file identifier %d", get_active_function_name(TSRMLS_C), link);
php_error(E_WARNING, "Unable to find file identifier %d", link);
RETURN_FALSE;
}
+14 -14
View File
@@ -187,7 +187,7 @@ void php_icap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
}
icap_stream = cal_open(NULL, Z_STRVAL_P(calendar), 0);
if (!icap_stream) {
php_error(E_WARNING, "%s(): Couldn't open stream %s", get_active_function_name(TSRMLS_C), Z_STRVAL_P(calendar));
php_error(E_WARNING, "Couldn't open stream %s\n", Z_STRVAL_P(calendar));
RETURN_FALSE;
}
@@ -216,7 +216,7 @@ PHP_FUNCTION(icap_close)
ind = Z_LVAL_P(streamind);
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
if(myargcount==2) {
@@ -261,7 +261,7 @@ PHP_FUNCTION(icap_reopen)
ind = Z_LVAL_P(streamind);
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
@@ -276,7 +276,7 @@ PHP_FUNCTION(icap_reopen)
cal_login(icap_stream, Z_STRVAL_P(calendar));
*/
if (icap_stream == NULL) {
php_error(E_WARNING, "%s(): Couldn't re-open stream", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Couldn't re-open stream\n");
RETURN_FALSE;
}
RETURN_TRUE;
@@ -304,7 +304,7 @@ PHP_FUNCTION(icap_expunge)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
@@ -332,7 +332,7 @@ PHP_FUNCTION(icap_fetch_event)
ind = Z_LVAL_P(streamind);
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
if(myargcount==3) {
@@ -410,7 +410,7 @@ PHP_FUNCTION(icap_list_events)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
@@ -488,7 +488,7 @@ PHP_FUNCTION(icap_create_calendar)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
/*
@@ -524,7 +524,7 @@ PHP_FUNCTION(icap_rename_calendar)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
/*
@@ -562,7 +562,7 @@ PHP_FUNCTION(icap_list_alarms)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
@@ -632,7 +632,7 @@ PHP_FUNCTION(icap_delete_calendar)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
@@ -667,7 +667,7 @@ PHP_FUNCTION(icap_delete_event)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
if (cal_remove(icap_le_struct->icap_stream, Z_LVAL_P(uid)))
@@ -724,7 +724,7 @@ PHP_FUNCTION(icap_store_event)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
@@ -869,7 +869,7 @@ PHP_FUNCTION(icap_snooze)
icap_le_struct = (pils *)zend_list_find(ind, &ind_type);
if (!icap_le_struct ) {
php_error(E_WARNING, "%s(): Unable to find stream pointer", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Unable to find stream pointer");
RETURN_FALSE;
}
-35
View File
@@ -8,41 +8,6 @@ PHP_ARG_WITH(iconv, for iconv support,
if test "$PHP_ICONV" != "no"; then
PHP_SETUP_ICONV(ICONV_SHARED_LIBADD, [
AC_MSG_CHECKING([if iconv supports errno])
AC_TRY_RUN([
#define LIBICONV_PLUG
#include <iconv.h>
#include <errno.h>
#if defined(_LIBICONV_H)
#define icv_open(a, b) libiconv_open(a, b)
#define icv_close(a) libiconv_close(a)
#define icv(a, b, c, d, e) libiconv(a, b, c, d, e)
#else
#define icv_open(a, b) iconv_open(a, b)
#define icv_close(a) iconv_close(a)
#define icv(a, b, c, d, e) iconv(a, b, c, d, e)
#endif
int main() {
iconv_t cd;
cd = icv_open( "*blahblah*", "*blahblah*" );
if( cd == (iconv_t)(-1) ) {
if( errno == EINVAL ) {
return 0;
} else {
return 1;
}
}
icv_close( cd );
return 2;
}
],[
AC_MSG_RESULT(yes)
PHP_DEFINE(ICONV_SUPPORTS_ERRNO)
],[
AC_MSG_RESULT(no)
])
PHP_NEW_EXTENSION(iconv, iconv.c, $ext_shared)
PHP_SUBST(ICONV_SHARED_LIBADD)
], [
+35 -58
View File
@@ -28,7 +28,6 @@
#ifdef PHP_ATOM_INC
#include "php_have_iconv.h"
#include "php_have_libiconv.h"
#include "php_iconv_supports_errno.h"
#endif
#if HAVE_ICONV
@@ -50,7 +49,6 @@
#if HAVE_LIBICONV
#define LIBICONV_PLUG
#define icv_open(a, b) libiconv_open(a, b)
#define icv_close(a) libiconv_close(a)
#define icv(a, b, c, d, e) libiconv(a, b, c, d, e)
@@ -147,7 +145,8 @@ static int php_iconv_string(const char *in_p, size_t in_len,
char **out, size_t *out_len,
const char *in_charset, const char *out_charset, int *err TSRMLS_DC)
{
#if !defined(ICONV_SUPPORTS_ERRNO)
#if HAVE_LIBICONV
/* No errno for libiconv(?) */
unsigned int in_size, out_size, out_left;
char *out_buffer, *out_p;
iconv_t cd;
@@ -164,9 +163,9 @@ static int php_iconv_string(const char *in_p, size_t in_len,
a single char can be more than 4 bytes.
I added 15 extra bytes for safety. <yohgaki@php.net>
*/
out_size = in_len * sizeof(ucs4_t) + 15;
out_buffer = (char *) emalloc(out_size + 1);
out_size = in_len * sizeof(ucs4_t) + 16;
out_buffer = (char *) emalloc(out_size);
*out = out_buffer;
out_p = out_buffer;
out_left = out_size;
@@ -175,7 +174,7 @@ static int php_iconv_string(const char *in_p, size_t in_len,
if (cd == (iconv_t)(-1)) {
*err = PHP_ICONV_UNKNOWN;
php_error(E_WARNING, "%s(): Unknown error, unable to convert from `%s' to `%s'",
php_error(E_WARNING, "%s(): unknown error, unable to convert from `%s' to `%s'",
get_active_function_name(TSRMLS_C), in_charset, out_charset);
efree(out_buffer);
return FAILURE;
@@ -198,78 +197,71 @@ static int php_iconv_string(const char *in_p, size_t in_len,
#else
/*
iconv supports errno. Handle it better way.
libc iconv should support errno. Handle it better way.
*/
iconv_t cd;
size_t in_left, out_size, out_left;
char *out_p, *out_buf, *tmp_buf;
size_t bsz, result = 0;
size_t i, bsz, result;
*err = 0;
cd = icv_open(out_charset, in_charset);
cd = iconv_open(out_charset, in_charset);
if (cd == (iconv_t)(-1)) {
if (errno == EINVAL) {
*err = PHP_ICONV_WRONG_CHARSET;
php_error(E_NOTICE, "%s(): Wrong charset, cannot convert from `%s' to `%s'",
php_error(E_NOTICE, "%s() wrong charset, cannot convert from `%s' to `%s'",
get_active_function_name(TSRMLS_C), in_charset, out_charset);
} else {
}
else {
*err = PHP_ICONV_CONVERTER;
php_error(E_NOTICE, "%s(): Cannot open converter",
php_error(E_NOTICE, "%s() cannot open converter",
get_active_function_name(TSRMLS_C));
}
return FAILURE;
}
in_left= in_len;
out_left = in_len + 32; /* Avoid realloc() most cases */
out_size = 0;
bsz = out_left;
out_buf = (char *) emalloc(bsz+1);
out_p = out_buf;
while(in_left > 0) {
result = icv(cd, (const char **)&in_p, &in_left, (char **) &out_p, &out_left);
out_size = bsz - out_left;
if( result == (size_t)(-1) ) {
if( errno == E2BIG && in_left > 0 ) {
/* converted string is longer than out buffer */
bsz += in_len;
tmp_buf = (char*) erealloc(out_buf, bsz+1);
if (tmp_buf != NULL) {
out_p = out_buf = tmp_buf;
out_p += out_size;
out_left = bsz - out_size;
continue;
}
}
result = iconv(cd, (char **)&in_p, &in_left, (char **) &out_p, &out_left);
out_size = bsz - out_left;
for (i = 2;in_left > 0 && errno == E2BIG; i++) {
/* converted string is longer than out buffer */
tmp_buf = (char*)erealloc(out_buf, bsz*i+1);
if (tmp_buf == NULL) {
break;
}
break;
out_buf = tmp_buf;
out_p = tmp_buf;
out_p += out_size;
out_left = in_len;
result = iconv(cd, (char **)&in_p, &in_left, &out_p, &out_left);
out_size += bsz - out_left;
}
icv_close(cd);
iconv_close(cd);
if (result == (size_t)(-1)) {
switch (errno) {
case EINVAL:
php_error(E_NOTICE, "%s(): Detected incomplete character in input string",
php_error(E_NOTICE, "%s() detected incomplete character in input string",
get_active_function_name(TSRMLS_C));
*err = PHP_ICONV_ILLEGAL_CHAR;
break;
case EILSEQ:
php_error(E_NOTICE, "%s(): Detected illegal character in input string",
php_error(E_NOTICE, "%s() detected illegal character in input string",
get_active_function_name(TSRMLS_C));
*err = PHP_ICONV_ILLEGAL_SEQ;
break;
case E2BIG:
/* should not happen */
php_error(E_WARNING, "%s(): Run out buffer",
php_error(E_WARNING, "%s() run out buffer",
get_active_function_name(TSRMLS_C));
*err = PHP_ICONV_TOO_BIG;
break;
default:
/* other error */
php_error(E_NOTICE, "%s(): Unknown error (%d)",
php_error(E_NOTICE, "%s() unknown error (%d)",
get_active_function_name(TSRMLS_C), errno);
*err = PHP_ICONV_UNKNOWN;
efree(out_buf);
@@ -311,37 +303,22 @@ PHP_NAMED_FUNCTION(php_if_iconv)
Returns str in output buffer converted to the iconv.output_encoding character set */
PHP_FUNCTION(ob_iconv_handler)
{
char *out_buffer, *content_type, *mimetype = NULL, *s;
char *out_buffer;
zval *zv_string;
unsigned int out_len;
int err, status;
int err, status;;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zl", &zv_string, &status) == FAILURE)
return;
convert_to_string_ex(&zv_string);
if (SG(sapi_headers).mimetype &&
strncmp(SG(sapi_headers).mimetype, "text/", 5) == 0) {
if ((s = strchr(SG(sapi_headers).mimetype,';')) == NULL){
mimetype = estrdup(SG(sapi_headers).mimetype);
} else {
mimetype = estrndup(SG(sapi_headers).mimetype, s-SG(sapi_headers).mimetype);
}
} else if (SG(sapi_headers).send_default_content_type) {
mimetype = estrdup(SG(default_mimetype) ? SG(default_mimetype) : SAPI_DEFAULT_MIMETYPE);
}
if (mimetype &&
if (SG(sapi_headers).send_default_content_type &&
php_iconv_string(Z_STRVAL_P(zv_string), Z_STRLEN_P(zv_string),
&out_buffer, &out_len,
ICONVG(internal_encoding),
ICONVG(output_encoding),
&err TSRMLS_CC) == SUCCESS) {
spprintf(&content_type, 0, "Content-Type:%s;charset=%s", mimetype, ICONVG(output_encoding));
if (content_type && sapi_add_header(content_type, strlen(content_type), 0) != FAILURE) {
SG(sapi_headers).send_default_content_type = 0;
}
efree(mimetype);
RETVAL_STRINGL(out_buffer, out_len, 0);
} else {
zval_dtor(return_value);
+1 -2
View File
@@ -7,5 +7,4 @@ EUC-JP to ISO-2022-JP
--FILE--
<?php include('eucjp2iso2022jp.inc'); ?>
--EXPECT--
ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0Cg==
ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0ChskQkZ8S1w4bCVGJS0lOSVIJEgbKEJFbmdsaXNoIFRleHQKGyRCRnxLXDhsJUYlLSU5JUgkSBsoQkVuZ2xpc2ggVGV4dAobJEJGfEtcOGwlRiUtJTklSCRIGyhCRW5nbGlzaCBUZXh0CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+1 -1
View File
@@ -40,7 +40,7 @@ $str = "
日本語テキストとEnglish Text
";
$str = iconv("EUC-JP", "UTF-8", $str); /* libiconv(1.8) doesn't know "UTF8" but "UTF-8". */
$str = iconv("EUC-JP", "UTF8", $str);
$str = base64_encode($str);
echo $str."\n";
+2 -3
View File
@@ -1,11 +1,10 @@
--TEST--
EUC-JP to UTF8
--SKIPIF--
<?php include('skipif.inc');?>
<?php include('skipif.inc'); ?>
--POST--
--GET--
--FILE--
<?php include('eucjp2utf8.inc'); ?>
--EXPECT--
CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0Cg==
CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CuaXpeacrOiqnuODhuOCreOCueODiOOBqEVuZ2xpc2ggVGV4dArml6XmnKzoqp7jg4bjgq3jgrnjg4jjgahFbmdsaXNoIFRleHQK5pel5pys6Kqe44OG44Kt44K544OI44GoRW5nbGlzaCBUZXh0CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-7
View File
@@ -1,7 +0,0 @@
<?php
/* charset=CP932, KOI8-R */
$str = "\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d\x87\x6d";
print iconv( "CP932", "EUC-JP//TRANSLIT", $str );
$str = "(\x9c\xe4\x9c)";
print iconv( "KOI8-R", "EUC-JP//TRANSLIT", $str );
?>
-10
View File
@@ -1,10 +0,0 @@
--TEST--
ICONV: LIBICONV transliteration (bug #16069)
--SKIPIF--
<?php include('skipif.inc'); if( iconv('CP932', 'EUC-JP//TRANSLIT', "\x87\x6d") == '' ) die("skip(no libiconv)\n"); ?>
--POST--
--GET--
--FILE--
<?php include('translit.inc'); ?>
--EXPECT--
ミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバールミリバール(°Д°)
+34 -69
View File
@@ -21,40 +21,6 @@ AC_DEFUN(IMAP_LIB_CHK,[
done
])
dnl PHP_IMAP_TEST_BUILD(action-if-ok, action-if-not-ok [, extra-libs])
AC_DEFUN(PHP_IMAP_TEST_BUILD, [
old_LIBS=$LIBS
LIBS="$3 $LIBS"
AC_TRY_RUN([
void mm_log(void){}
void mm_dlog(void){}
void mm_flags(void){}
void mm_fatal(void){}
void mm_critical(void){}
void mm_nocritical(void){}
void mm_notify(void){}
void mm_login(void){}
void mm_diskerror(void){}
void mm_status(void){}
void mm_lsub(void){}
void mm_list(void){}
void mm_exists(void){}
void mm_searched(void){}
void mm_expunged(void){}
char mail_open();
int main() {
mail_open(0,"",0);
return 0;
}
], [
LIBS=$old_LIBS
$1
],[
LIBS=$old_LIBS
$2
])
])
AC_DEFUN(PHP_IMAP_KRB_CHK, [
AC_ARG_WITH(kerberos,
[ --with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerberos install dir.],[
@@ -68,12 +34,6 @@ AC_DEFUN(PHP_IMAP_KRB_CHK, [
fi
if test "$PHP_KERBEROS" != "no"; then
if test ! -f $PHP_KERBEROS/lib/libkrb5.a && test ! -f $PHP_KERBEROS/lib/libkrb5.$SHLIB_SUFFIX_NAME; then
AC_MSG_ERROR([Kerberos libraries not found in $PHP_KERBEROS/lib.
Check the path given to --with-kerberos (if no path is given, defaults to /usr/kerberos )
])
fi
AC_DEFINE(HAVE_IMAP_KRB,1,[ ])
PHP_ADD_LIBPATH($PHP_KERBEROS/lib, IMAP_SHARED_LIBADD)
PHP_ADD_LIBRARY(gssapi_krb5, 1, IMAP_SHARED_LIBADD)
@@ -82,10 +42,9 @@ AC_DEFUN(PHP_IMAP_KRB_CHK, [
PHP_ADD_LIBRARY(com_err, 1, IMAP_SHARED_LIBADD)
else
AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [
AC_MSG_ERROR([This c-client library is build with Kerberos support.
AC_MSG_ERROR(This c-client library is build with Kerberos support.
Add --with-kerberos<=DIR> to your configure line. Check config.log for details.
])
Add --with-kerberos<=DIR> to your configure line. Check config.log for details.)
])
fi
@@ -103,29 +62,45 @@ AC_DEFUN(PHP_IMAP_SSL_CHK, [
PHP_IMAP_SSL=/usr
fi
AC_MSG_CHECKING([whether SSL libraries are needed for c-client])
if test "$PHP_IMAP_SSL" != "no"; then
AC_MSG_RESULT([$PHP_IMAP_SSL/lib])
AC_DEFINE(HAVE_IMAP_SSL,1,[ ])
PHP_ADD_LIBPATH($PHP_IMAP_SSL/lib, IMAP_SHARED_LIBADD)
PHP_ADD_LIBRARY_DEFER(ssl,, IMAP_SHARED_LIBADD)
PHP_ADD_LIBRARY_DEFER(crypto,, IMAP_SHARED_LIBADD)
PHP_ADD_LIBPATH($PHP_IMAP_SSL/lib, IMAP_SHARED_LIBADD)
else
TST_LIBS="-L$IMAP_LIBDIR -l$IMAP_LIB"
old_LIBS=$LIBS
LIBS="$LIBS -L$IMAP_LIBDIR -l$IMAP_LIB"
if test $PHP_KERBEROS != "no"; then
TST_LIBS="$TST_LIBS -L$PHP_KERBEROS/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
LIBS="$LIBS -L$PHP_KERBEROS/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
fi
PHP_IMAP_TEST_BUILD([
AC_MSG_RESULT(no)
], [
AC_MSG_RESULT(yes)
AC_MSG_ERROR([This c-client library is build with SSL support.
Add --with-imap-ssl<=DIR> to your configure line. Check config.log for details.
])
], $TST_LIBS)
AC_TRY_RUN([
void mm_log(void){}
void mm_dlog(void){}
void mm_flags(void){}
void mm_fatal(void){}
void mm_critical(void){}
void mm_nocritical(void){}
void mm_notify(void){}
void mm_login(void){}
void mm_diskerror(void){}
void mm_status(void){}
void mm_lsub(void){}
void mm_list(void){}
void mm_exists(void){}
void mm_searched(void){}
void mm_expunged(void){}
char mail_open();
int main() {
mail_open(0,"",0);
return 0;
}
],,[
AC_MSG_ERROR(This c-client library is build with SSL support.
Add --with-imap-ssl<=DIR> to your configure line. Check config.log for details.)
])
LIBS=$old_LIBS
fi
])
@@ -187,18 +162,8 @@ if test "$PHP_IMAP" != "no"; then
fi
PHP_ADD_INCLUDE($IMAP_INC_DIR)
PHP_ADD_LIBRARY_DEFER($IMAP_LIB,, IMAP_SHARED_LIBADD)
PHP_ADD_LIBPATH($IMAP_LIBDIR, IMAP_SHARED_LIBADD)
PHP_ADD_LIBRARY_DEFER($IMAP_LIB,, IMAP_SHARED_LIBADD)
PHP_IMAP_KRB_CHK
PHP_IMAP_SSL_CHK
dnl Test the build in the end
TST_LIBS="$DLIBS $IMAP_SHARED_LIBADD"
AC_MSG_CHECKING(whether IMAP works)
PHP_IMAP_TEST_BUILD([
AC_MSG_RESULT(yes)
], [
AC_MSG_RESULT(no)
AC_MSG_ERROR([build test failed. Please check the config.log for details.])
], $TST_LIBS)
fi
+10 -3
View File
@@ -123,7 +123,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAP_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /I "..\..\main" /I "..\..\Zend" /I "..\..\..\bindlib_w32" /I "..\..\TSRM" /I "..\..\..\php_build\imap\c-client" /D "ZTS" /D "NDEBUG" /D "IMAP_EXPORTS" /D "COMPILE_DL_IMAP" /D HAVE_IMAP=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /D ZEND_DEBUG=0 /D HAVE_IMAP2001=1 /FR /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /I "..\..\main" /I "..\..\Zend" /I "..\..\..\bindlib_w32" /I "..\..\TSRM" /D "ZTS" /D "NDEBUG" /D "IMAP_EXPORTS" /D "COMPILE_DL_IMAP" /D HAVE_IMAP=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /D ZEND_DEBUG=0 /D HAVE_IMAP2001=1 /FR /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x40d /d "NDEBUG"
@@ -133,8 +133,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php4ts.lib wsock32.lib winmm.lib cclient.lib Secur32.lib CertIdl.Lib /nologo /dll /machine:I386 /nodefaultlib:"LIBCMT" /out:"..\..\Release_TS/php_imap.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline" /libpath:"..\..\..\php_build\imap"
# SUBTRACT LINK32 /nodefaultlib
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php4ts.lib wsock32.lib winmm.lib cclient.lib Secur32.lib CertIdl.Lib /nologo /dll /machine:I386 /nodefaultlib:"LIBCMT" /out:"..\..\Release_TS/php_imap.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline"
!ENDIF
@@ -149,6 +148,10 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\win32\imap_sendmail.c
# End Source File
# Begin Source File
SOURCE=.\php_imap.c
# End Source File
# Begin Source File
@@ -161,6 +164,10 @@ SOURCE=..\..\win32\sendmail.c
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\win32\imap_sendmail.h
# End Source File
# Begin Source File
SOURCE=.\php_imap.h
# End Source File
# Begin Source File
+333 -284
View File
File diff suppressed because it is too large. Load diff
+8 -3
View File
@@ -22,7 +22,6 @@
| Andrew Skalski <askalski@chekinc.com> |
| Hartmut Holzgraefe <hartmut@six.de> |
| Jani Taskinen <sniper@iki.fi> |
| Daniel R. Kalowsky <kalowsky@php.net> |
| PHP 4.0 updates: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
@@ -79,6 +78,12 @@ typedef enum {
typedef struct php_imap_le_struct {
MAILSTREAM *imap_stream;
long flags;
#ifdef OP_RELOGIN
/* AJS: busy flag for persistent connections, pointers for chaining */
struct php_imap_le_struct *next;
struct php_imap_le_struct **prev;
char busy;
#endif
} pils;
typedef struct php_imap_mailbox_struct {
@@ -172,7 +177,6 @@ PHP_FUNCTION(imap_thread);
#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
PHP_FUNCTION(imap_get_quota);
PHP_FUNCTION(imap_get_quotaroot);
PHP_FUNCTION(imap_set_quota);
PHP_FUNCTION(imap_setacl);
#endif
@@ -204,7 +208,8 @@ ZEND_BEGIN_MODULE_GLOBALS(imap)
unsigned long status_uidnext;
unsigned long status_uidvalidity;
#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
zval *quota_return;
unsigned long quota_usage;
unsigned long quota_limit;
#endif
ZEND_END_MODULE_GLOBALS(imap)
+113 -113
View File
@@ -62,7 +62,7 @@
/* local function prototypes */
static void php_ifx_set_default_link(int id TSRMLS_DC);
static long php_intifx_getType(long id, HashTable *list TSRMLS_DC);
static long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list TSRMLS_DC);
static long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list);
static long php_intifx_free_blob(long id, HashTable *list TSRMLS_DC);
static long php_intifx2_free_blob(long id, HashTable *list TSRMLS_DC);
static long php_intifx_get_blob(long bid, HashTable *list, char** content TSRMLS_DC);
@@ -71,7 +71,7 @@ static loc_t *php_intifx_get_blobloc(long bid, HashTable *list TSRMLS_DC);
static char* php_intifx_create_tmpfile(long bid TSRMLS_DC);
static long php_intifx_copy_blob(long bid, HashTable *list TSRMLS_DC);
static char* php_intifx_null(TSRMLS_D);
static long php_intifx_create_char(char* param, long len, HashTable *list TSRMLS_DC);
static long php_intifx_create_char(char* param, long len, HashTable *list);
static long php_intifx_free_char(long id, HashTable *list TSRMLS_DC);
static long php_intifx_update_char(long bid, char* param, long len, HashTable *list TSRMLS_DC);
static long php_intifx_get_char(long bid, HashTable *list, char** content TSRMLS_DC);
@@ -112,7 +112,7 @@ typedef char IFX[128];
{ \
if (ifx_check() < 0) { \
IFXG(sv_sqlcode) = SQLCODE; \
php_error(E_WARNING, "%s(): Set connection %s fails (%s)", get_active_function_name(TSRMLS_C), ifx, ifx_error(ifx)); \
php_error(E_WARNING,"Set connection %s fails (%s)", ifx, ifx_error(ifx)); \
RETURN_FALSE; \
} \
}
@@ -418,7 +418,7 @@ EXEC SQL END DECLARE SECTION;
if (PG(sql_safe_mode)) {
if (ZEND_NUM_ARGS()>0) {
php_error(E_NOTICE, "%s(): SQL safe mode in effect - ignoring host/user/password information", get_active_function_name(TSRMLS_C));
php_error(E_NOTICE, "SQL safe mode in effect - ignoring host/user/password information");
}
host = passwd = NULL;
user = php_get_current_user();
@@ -490,12 +490,12 @@ EXEC SQL END DECLARE SECTION;
list_entry new_le;
if (IFXG(max_links)!=-1 && IFXG(num_links) >= IFXG(max_links)) {
php_error(E_WARNING, "%s(): Too many open links (%d)", get_active_function_name(TSRMLS_C), IFXG(num_links));
php_error(E_WARNING, "Informix: Too many open links (%d)", IFXG(num_links));
efree(hashed_details);
RETURN_FALSE;
}
if (IFXG(max_persistent)!=-1 && IFXG(num_persistent) >= IFXG(max_persistent)) {
php_error(E_WARNING, "%s(): Too many open persistent links (%d)", get_active_function_name(TSRMLS_C), IFXG(num_persistent));
php_error(E_WARNING, "Informix: Too many open persistent links (%d)", IFXG(num_persistent));
efree(hashed_details);
RETURN_FALSE;
}
@@ -509,7 +509,7 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() == IFX_ERROR) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,ifx_error(ifx));
free(ifx);
efree(hashed_details);
RETURN_FALSE;
@@ -539,7 +539,7 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() == IFX_ERROR) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Link to server lost, unable to reconnect (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING, "Informix: Link to server lost, unable to reconnect (%s)", ifx_error(ifx));
zend_hash_del(&EG(persistent_list), hashed_details, hashed_details_length+1);
efree(hashed_details);
RETURN_FALSE;
@@ -577,7 +577,7 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() == IFX_ERROR) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Unable to connect (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Informix: Unable to connect (%s)", ifx_error(ifx));
zend_hash_del(&EG(regular_list), hashed_details, hashed_details_length+1);
efree(hashed_details);
RETURN_FALSE;
@@ -594,7 +594,7 @@ EXEC SQL END DECLARE SECTION;
}
}
if (IFXG(max_links) != -1 && IFXG(num_links) >= IFXG(max_links)) {
php_error(E_WARNING, "%s(): Too many open links (%d)", get_active_function_name(TSRMLS_C), IFXG(num_links));
php_error(E_WARNING, "Informix: Too many open links (%d)", IFXG(num_links));
efree(hashed_details);
RETURN_FALSE;
}
@@ -607,7 +607,7 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() == IFX_ERROR) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING,"%s(): %s", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"ifx_connect: %s", ifx_error(ifx));
efree(hashed_details);
efree(ifx);
RETURN_FALSE;
@@ -781,7 +781,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL PREPARE :statemid FROM :statement;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Prepare fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Prepare fails (%s)", ifx_error(ifx));
RETURN_FALSE;
}
@@ -791,7 +791,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL ALLOCATE DESCRIPTOR :descrpid WITH MAX 384;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Allocate desciptor <%s> fails (%s)", get_active_function_name(TSRMLS_C), descrpid, ifx_error(ifx));
php_error(E_WARNING,"Allocate desciptor <%s> fails (%s)", descrpid, ifx_error(ifx));
EXEC SQL free :statemid;
RETURN_FALSE;
}
@@ -799,7 +799,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DESCRIBE :statemid USING SQL DESCRIPTOR :descrpid;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Describe fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Describe fails (%s)", ifx_error(ifx));
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
RETURN_FALSE;
@@ -809,7 +809,7 @@ EXEC SQL END DECLARE SECTION;
Ifx_Result = (IFX_RES *) emalloc(sizeof(IFX_RES));
if (Ifx_Result == NULL) {
php_error(E_WARNING, "%s(): Out of memory allocating IFX_RES", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Out of memory allocating IFX_RES");
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
RETURN_FALSE;
@@ -857,7 +857,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Can't get blob array param", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Can't get blob array param");
RETURN_FALSE;
}
if (Z_TYPE_PP(pblobidarr) != IS_ARRAY) {
@@ -865,7 +865,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Blob-parameter is not an array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"blob-parameter is not an array");
RETURN_FALSE;
}
@@ -887,7 +887,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING,"%s(): %d is not an Informix blob-result index", get_active_function_name(TSRMLS_C), (int)((*tmp)->value.lval));
php_error(E_WARNING,"%d is not a Informix blob-result index", (int)((*tmp)->value.lval));
RETURN_FALSE;
}
if(locator->loc_loctype==LOCFNAME) {
@@ -925,7 +925,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Execute immediate fails : %s (%s)", get_active_function_name(TSRMLS_C), statement, ifx_error(ifx));
php_error(E_WARNING,"Execute immediate fails : %s (%s)", statement, ifx_error(ifx));
RETURN_FALSE;
}
Ifx_Result->affected_rows = sqlca.sqlerrd[2]; /* really affected */
@@ -962,7 +962,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Can not get descriptor %s (%s)", get_active_function_name(TSRMLS_C), descrpid, ifx_error(ifx));
php_error(E_WARNING,"Can not get descriptor %s (%s)", descrpid, ifx_error(ifx));
RETURN_FALSE;
}
@@ -995,7 +995,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Declare cursor fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Declare cursor fails (%s)", ifx_error(ifx));
RETURN_FALSE;
}
@@ -1006,7 +1006,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL free :statemid;
EXEC SQL free :cursorid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Open cursor fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Open cursor fails (%s)", ifx_error(ifx));
RETURN_FALSE;
}
strcpy(Ifx_Result->cursorid, cursorid);
@@ -1024,17 +1024,17 @@ $endif;
) {
int bid = 0;
if(fieldtype==SQLTEXT) {
bid=php_intifx_create_blob(TYPE_BLTEXT,BLMODE_INMEM,"",-1,&EG(regular_list) TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLTEXT,BLMODE_INMEM,"",-1,&EG(regular_list));
locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*locator;
}
if(fieldtype==SQLBYTES) {
if(IFXG(blobinfile)==0) {
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INMEM,"",-1,&EG(regular_list) TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INMEM,"",-1,&EG(regular_list));
locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
} else {
blobfilename=php_intifx_create_tmpfile(i TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INFILE, blobfilename,strlen(blobfilename),&EG(regular_list) TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INFILE, blobfilename,strlen(blobfilename),&EG(regular_list));
locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
locator->loc_oflags=LOC_WONLY;
}
@@ -1131,7 +1131,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL PREPARE :statemid FROM :statement;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Prepare fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Prepare fails (%s)", ifx_error(ifx));
RETURN_FALSE;
}
@@ -1141,7 +1141,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL ALLOCATE DESCRIPTOR :descrpid WITH MAX 384;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Allocate desciptor <%s> fails (%s)", get_active_function_name(TSRMLS_C), descrpid, ifx_error(ifx));
php_error(E_WARNING,"Allocate desciptor <%s> fails (%s)", descrpid, ifx_error(ifx));
EXEC SQL free :statemid;
RETURN_FALSE;
}
@@ -1149,7 +1149,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DESCRIBE :statemid USING SQL DESCRIPTOR :descrpid;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Describe fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Describe fails (%s)", ifx_error(ifx));
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
RETURN_FALSE;
@@ -1160,7 +1160,7 @@ EXEC SQL END DECLARE SECTION;
Ifx_Result = (IFX_RES *) emalloc(sizeof(IFX_RES));
if (Ifx_Result == NULL) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Out of memory allocating IFX_RES", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Out of memory allocating IFX_RES");
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
RETURN_FALSE;
@@ -1209,7 +1209,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING,"%s(): Can't get blob array param", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Can't get blob array param");
RETURN_FALSE;
}
@@ -1218,7 +1218,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Blob-parameter not an array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"blob-parameter not an array");
RETURN_FALSE;
}
@@ -1240,7 +1240,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): %d is not a Informix blob-result index", get_active_function_name(TSRMLS_C), (int)((*tmp)->value.lval));
php_error(E_WARNING,"%d is not a Informix blob-result index", (int)((*tmp)->value.lval));
RETURN_FALSE;
}
if(locator->loc_loctype==LOCFNAME) {
@@ -1306,7 +1306,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
php_error(E_WARNING, "%s(): Can not get descriptor %s (%s)", get_active_function_name(TSRMLS_C), descrpid, ifx_error(ifx));
php_error(E_WARNING,"Can not get descriptor %s (%s)", descrpid, ifx_error(ifx));
RETURN_FALSE;
}
Ifx_Result->numcols = fieldcount;
@@ -1379,7 +1379,7 @@ EXEC SQL END DECLARE SECTION;
PHP_IFX_CHECK_CONNECTION(ifx);
if (Ifx_Result->iscursory < 0) {
php_error(E_WARNING, "%s(): Resultindex %d is not a prepared query", get_active_function_name(TSRMLS_C), Z_LVAL_PP(result));
php_error(E_WARNING, "Resultindex %d is not a prepared query", Z_LVAL_PP(result));
RETURN_FALSE;
}
@@ -1391,7 +1391,7 @@ EXEC SQL END DECLARE SECTION;
}
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Execute immediate fails: %s", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Execute immediate fails : %s ", ifx_error(ifx));
RETURN_FALSE;
}
Ifx_Result->affected_rows = sqlca.sqlerrd[2]; /* really affected */
@@ -1413,14 +1413,14 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Declare cursor fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Declare cursor fails (%s)", ifx_error(ifx));
RETURN_FALSE;
}
EXEC SQL OPEN :cursorid;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Open cursor fails (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx));
php_error(E_WARNING,"Open cursor fails (%s)", ifx_error(ifx));
RETURN_FALSE;
}
@@ -1436,17 +1436,17 @@ $endif;
int bid = 0;
if(fieldtype==SQLTEXT) {
bid=php_intifx_create_blob(TYPE_BLTEXT,BLMODE_INMEM,"",-1,&EG(regular_list) TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLTEXT,BLMODE_INMEM,"",-1,&EG(regular_list));
locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*locator;
}
if(fieldtype==SQLBYTES) {
if(IFXG(blobinfile)==0) {
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INMEM,"",-1,&EG(regular_list) TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INMEM,"",-1,&EG(regular_list));
locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
} else {
blobfilename=php_intifx_create_tmpfile(i TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INFILE,blobfilename,strlen(blobfilename),&EG(regular_list) TSRMLS_CC);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INFILE,blobfilename,strlen(blobfilename),&EG(regular_list));
locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
locator->loc_oflags=LOC_WONLY;
}
@@ -1682,7 +1682,7 @@ EXEC SQL END DECLARE SECTION;
IFXG(sv_sqlcode) = 0;
if (strcmp(Ifx_Result->cursorid,"") == 0) {
php_error(E_WARNING, "%s(): Not a select cursor!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Not a select cursor !");
RETURN_FALSE;
}
@@ -1716,7 +1716,7 @@ EXEC SQL END DECLARE SECTION;
} else if (!strcasecmp(fetch_pos,"CURRENT")) {
EXEC SQL FETCH CURRENT :cursorid USING SQL DESCRIPTOR :descrpid;
} else {
php_error(E_WARNING, "%s(): Invalid positioning arg on fetch", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "invalid positioning arg on fetch");
}
}
}
@@ -1725,7 +1725,7 @@ EXEC SQL END DECLARE SECTION;
switch (ifx_check()) {
case IFX_ERROR:
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Can not fetch row on cursor %s (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx), cursorid);
php_error(E_WARNING, "Can not fetch row on cursor %s (%s)", ifx_error(ifx), cursorid);
RETURN_FALSE;
break;
case IFX_NODATA:
@@ -1752,7 +1752,7 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Get descriptor (field # %d) fails (%s)", get_active_function_name(TSRMLS_C), i, ifx_error(ifx));
php_error(E_WARNING,"Get descriptor (field # %d) fails (%s)", i, ifx_error(ifx));
RETURN_FALSE;
}
@@ -1850,7 +1850,7 @@ $ifdef HAVE_IFX_IUS;
fieldleng=ifx_var_getlen(&lvar_tmp);
if (fieldleng > 2) fieldleng -= 2; /* fix by Alex Shepherd */
if ((char_data = (char *)emalloc(fieldleng + 1)) == NULL) {
php_error(E_WARNING, "%s(): Out of memory", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Out of memory");
RETURN_FALSE;
}
memcpy(char_data,ifx_var_getdata(&lvar_tmp),fieldleng);
@@ -1864,7 +1864,7 @@ $endif;
case SQLCHAR :
case SQLNCHAR :
if ((char_data = (char *)emalloc(fieldleng + 1)) == NULL) {
php_error(E_WARNING, "%s(): Out of memory", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Out of memory");
RETURN_FALSE;
}
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :char_data = DATA;
@@ -1919,7 +1919,7 @@ $endif;
}
if (locator_b->loc_status < 0) { /* blob too large */
php_error(E_WARNING, "%s(): No memory (%d bytes) for blob", get_active_function_name(TSRMLS_C), locator_b->loc_bufsize);
php_error(E_WARNING,"no memory (%d bytes) for blob", locator_b->loc_bufsize);
RETURN_FALSE;
}
@@ -2048,7 +2048,7 @@ EXEC SQL END DECLARE SECTION;
ZEND_FETCH_RESOURCE(Ifx_Result, IFX_RES *, result, -1, "Informix Result", le_result);
if (strcmp(Ifx_Result->cursorid,"") == 0) {
php_error(E_WARNING, "%s(): Not a select cursor!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Not a select cursor !");
RETURN_FALSE;
}
@@ -2066,7 +2066,7 @@ EXEC SQL END DECLARE SECTION;
switch (ifx_check()) {
case IFX_ERROR:
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Can not fetch next row on cursor %s (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx), cursorid);
php_error(E_WARNING, "Can not fetch next row on cursor %s (%s)", ifx_error(ifx), cursorid);
RETURN_FALSE;
break;
case IFX_NODATA:
@@ -2096,7 +2096,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :fieldname = NAME;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Get descriptor (field # %d) fails (%s)", get_active_function_name(TSRMLS_C), i, ifx_error(ifx));
php_error(E_WARNING,"Get descriptor (field # %d) fails (%s)", i, ifx_error(ifx));
RETURN_FALSE;
}
@@ -2123,7 +2123,7 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Get descriptor (field # %d) fails (%s)", get_active_function_name(TSRMLS_C), i, ifx_error(ifx));
php_error(E_WARNING,"Get descriptor (field # %d) fails (%s)", i, ifx_error(ifx));
RETURN_FALSE;
}
@@ -2202,7 +2202,7 @@ $ifdef HAVE_IFX_IUS;
if (fieldleng > 2) fieldleng -= 2; /* fix by Alex Shepherd */
if ((char_data = (char *)emalloc(fieldleng + 1)) == NULL) {
php_error(E_WARNING, "%s(): Out of memory", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Out of memory");
RETURN_FALSE;
}
memcpy(char_data,ifx_var_getdata(&lvar_tmp),fieldleng);
@@ -2216,7 +2216,7 @@ $endif;
case SQLNCHAR :
case SQLNVCHAR :
if ((char_data = (char *)emalloc(fieldleng + 1)) == NULL) {
php_error(E_WARNING, "%s(): Out of memory", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Out of memory");
RETURN_FALSE;
}
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :char_data = DATA;
@@ -2252,7 +2252,7 @@ $endif;
}
}
if (locator_b->loc_status < 0) { /* blob too large */
php_error(E_WARNING, "%s(): Not enough memory (%d bytes) for blob", get_active_function_name(TSRMLS_C), locator_b->loc_bufsize);
php_error(E_WARNING,"no memory (%d bytes) for blob", locator_b->loc_bufsize);
RETURN_FALSE;
}
@@ -2265,7 +2265,7 @@ $endif;
/* need an extra byte for string terminator */
copy_content = malloc(lg + 1);
if (copy_content == NULL) {
php_error(E_WARNING, "%s(): Not enough memory for TEXT column", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"no memory for TEXT column");
RETURN_FALSE;
}
memcpy(copy_content, content, lg);
@@ -2292,7 +2292,7 @@ $endif;
switch (ifx_check()) {
case IFX_ERROR:
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Can not fetch next row on cursor %s (%s)", get_active_function_name(TSRMLS_C), ifx_error(ifx), cursorid);
php_error(E_WARNING, "Can not fetch next row on cursor %s (%s)", ifx_error(ifx), cursorid);
RETURN_FALSE;
break;
case IFX_NODATA:
@@ -2348,7 +2348,7 @@ EXEC SQL END DECLARE SECTION;
ZEND_FETCH_RESOURCE(Ifx_Result, IFX_RES *, result, -1, "Informix Result", le_result);
if (strcmp(Ifx_Result->cursorid,"") == 0) {
php_error(E_WARNING, "%s(): Not a select cursor!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Not a select cursor !");
RETURN_FALSE;
}
@@ -2369,7 +2369,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :fieldname = NAME, :fieldtype = TYPE;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Get descriptor (field # %d) fails (%s)", get_active_function_name(TSRMLS_C), i, ifx_error(ifx));
php_error(E_WARNING,"Get descriptor (field # %d) fails (%s)", i, ifx_error(ifx));
RETURN_FALSE;
}
@@ -2506,7 +2506,7 @@ EXEC SQL END DECLARE SECTION;
ZEND_FETCH_RESOURCE(Ifx_Result, IFX_RES *, result, -1, "Informix Result", le_result);
if (strcmp(Ifx_Result->cursorid,"") == 0) {
php_error(E_WARNING, "%s(): Not a select cursor!", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Not a select cursor !");
RETURN_FALSE;
}
@@ -2534,7 +2534,7 @@ EXEC SQL END DECLARE SECTION;
if (ifx_check() < 0) {
IFXG(sv_sqlcode) = SQLCODE;
php_error(E_WARNING, "%s(): Get descriptor (field # %d) fails (%s)", get_active_function_name(TSRMLS_C), i, ifx_error(ifx));
php_error(E_WARNING,"Get descriptor (field # %d) fails (%s)", i, ifx_error(ifx));
RETURN_FALSE;
}
@@ -2797,7 +2797,7 @@ static long php_intifx_getType(long id, HashTable *list TSRMLS_DC)
Ifx_res = (IFX_IDRES *) zend_list_find(id,&type);
if (type!=le_idresult) {
php_error(E_WARNING, "%s(): %d is not a Informix id-result index", get_active_function_name(TSRMLS_C), id);
php_error(E_WARNING,"%d is not a Informix id-result index", id);
return -1;
}
return Ifx_res->type;
@@ -2841,7 +2841,7 @@ PHP_FUNCTION(ifx_create_blob)
mode=BLMODE_INFILE;
}
id=php_intifx_create_blob(type,mode,Z_STRVAL_P(pparam),Z_STRLEN_P(pparam),&EG(regular_list) TSRMLS_CC);
id=php_intifx_create_blob(type,mode,Z_STRVAL_P(pparam),Z_STRLEN_P(pparam),&EG(regular_list));
if(id < 0) {
RETURN_FALSE;
@@ -2852,7 +2852,7 @@ PHP_FUNCTION(ifx_create_blob)
/* ----------------------------------------------------------------------
* internal function
* long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list TSRMLS_DC)
* long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list)
*
* creates an blob-object
* type: 1=TEXT, 0=BYTE
@@ -2864,13 +2864,13 @@ PHP_FUNCTION(ifx_create_blob)
* return -1 on error otherwise the new Blob-Object-id
* ----------------------------------------------------------------------
*/
static long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list TSRMLS_DC)
static long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list)
{
IFX_IDRES *Ifx_blob;
Ifx_blob=emalloc(sizeof(IFX_IDRES));
if(Ifx_blob==NULL) {
php_error(E_WARNING, "%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
@@ -2887,7 +2887,7 @@ static long php_intifx_create_blob(long type, long mode, char* param, long len,
if(len>=0) {
char *content=emalloc(len);
if(content==NULL) {
php_error(E_WARNING, "%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
memcpy(content,param,len);
@@ -2908,7 +2908,7 @@ static long php_intifx_create_blob(long type, long mode, char* param, long len,
} else { /* mode = BLMODE_INFILE */
char *filename=emalloc(len+1);
if(filename==NULL) {
php_error(E_WARNING, "%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
memcpy(filename,param,len);
@@ -2970,13 +2970,13 @@ static long php_intifx_copy_blob(long bid, HashTable *list TSRMLS_DC)
Ifx_blob_orig = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || !(Ifx_blob_orig->type==TYPE_BLBYTE || Ifx_blob_orig->type==TYPE_BLTEXT)) {
php_error(E_WARNING,"%s(): %d is not a Informix blob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix blob-result index", bid);
return -1;
}
Ifx_blob=emalloc(sizeof(IFX_IDRES));
if(Ifx_blob==NULL) {
php_error(E_WARNING,"%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
@@ -2992,7 +2992,7 @@ static long php_intifx_copy_blob(long bid, HashTable *list TSRMLS_DC)
char *content;
if(locator_orig->loc_size>=0 && locator_orig->loc_buffer!=NULL) {
if((content=emalloc(locator_orig->loc_size))==NULL) {
php_error(E_WARNING,"%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
memcpy(content,locator_orig->loc_buffer, locator_orig->loc_size);
@@ -3011,7 +3011,7 @@ static long php_intifx_copy_blob(long bid, HashTable *list TSRMLS_DC)
char *filename;
if((filename=emalloc(strlen(locator_orig->loc_fname)+1))==NULL) {
php_error(E_WARNING, "%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
@@ -3072,7 +3072,7 @@ static long php_intifx_free_blob(long bid, HashTable *list TSRMLS_DC)
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
php_error(E_WARNING, "%s(): %d is not a Informix blob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix blob-result index", bid);
return -1;
}
@@ -3110,7 +3110,7 @@ static long php_intifx2_free_blob(long bid, HashTable *list TSRMLS_DC)
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
php_error(E_WARNING, "%s(): %d is not a Informix blob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix blob-result index", bid);
return -1;
}
@@ -3183,7 +3183,7 @@ static long php_intifx_get_blob(long bid, HashTable *list, char** content TSRMLS
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
php_error(E_WARNING, "%s(): %d is not a Informix blob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix blob-result index", bid);
return -1;
}
@@ -3212,7 +3212,7 @@ static loc_t *php_intifx_get_blobloc(long bid, HashTable *list TSRMLS_DC)
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
php_error(E_WARNING, "%s(): %d is not a Informix blob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix blob-result index", bid);
return NULL;
}
return &(Ifx_blob->BLOB.blob_data);
@@ -3268,7 +3268,7 @@ static long php_intifx_update_blob(long bid, char* param, long len, HashTable *l
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
php_error(E_WARNING,"%s(): %d is not a Informix blob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix blob-result index", bid);
return -1;
}
@@ -3280,7 +3280,7 @@ static long php_intifx_update_blob(long bid, char* param, long len, HashTable *l
}
if(len >= 0) {
if((content=emalloc(len))==NULL) {
php_error(E_WARNING, "%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
memcpy(content,param, len);
@@ -3301,7 +3301,7 @@ static long php_intifx_update_blob(long bid, char* param, long len, HashTable *l
efree(Ifx_blob->BLOB.blob_data.loc_fname);
}
if((filename=emalloc(len+1))==NULL) {
php_error(E_WARNING, "%s(): Can't create blob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create blob-resource");
return -1;
}
memcpy(filename,param, len);
@@ -3315,7 +3315,7 @@ static long php_intifx_update_blob(long bid, char* param, long len, HashTable *l
/*-------------------------------------------------
* internal function
*
* php_intifx_create_tmpfile(long bid TSRMLS_DC)
* php_intifx_create_tmpfile(long bid)
* creates a temporary file to store a blob in
*-------------------------------------------------
*/
@@ -3485,7 +3485,7 @@ PHP_FUNCTION(ifx_create_char)
}
convert_to_string(pparam);
id=php_intifx_create_char(Z_STRVAL_P(pparam),Z_STRLEN_P(pparam),&EG(regular_list) TSRMLS_CC);
id=php_intifx_create_char(Z_STRVAL_P(pparam),Z_STRLEN_P(pparam),&EG(regular_list));
if(id < 0) {
RETURN_FALSE;
@@ -3496,7 +3496,7 @@ PHP_FUNCTION(ifx_create_char)
/* ----------------------------------------------------------------------
* internal function
* long php_intifx_create_char(char* param, long len, HashTable *list TSRMLS_DC)
* long php_intifx_create_char(char* param, long len, HashTable *list)
*
* creates an char-object
* param: content
@@ -3505,13 +3505,13 @@ PHP_FUNCTION(ifx_create_char)
* return -1 on error otherwise the new char-Object-id
* ----------------------------------------------------------------------
*/
static long php_intifx_create_char(char* param, long len, HashTable *list TSRMLS_DC)
static long php_intifx_create_char(char* param, long len, HashTable *list)
{
IFX_IDRES *Ifx_char;
Ifx_char=emalloc(sizeof(IFX_IDRES));
if(Ifx_char==NULL) {
php_error(E_WARNING, "%s(): Can't create char-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create char-resource");
return -1;
}
@@ -3524,7 +3524,7 @@ static long php_intifx_create_char(char* param, long len, HashTable *list TSRMLS
Ifx_char->CHAR.char_data=emalloc(len+1);
if(Ifx_char->CHAR.char_data==NULL) {
efree(Ifx_char);
php_error(E_WARNING, "%s(): Can't create char-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create char-resource");
return -1;
}
memcpy(Ifx_char->CHAR.char_data,param,len);
@@ -3583,7 +3583,7 @@ static long php_intifx_get_char(long bid, HashTable *list, char** content TSRMLS
Ifx_char = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_char->type==TYPE_CHAR)) {
php_error(E_WARNING, "%s(): %d is not a Informix char-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix char-result index", bid);
return -1;
}
@@ -3636,7 +3636,7 @@ static long php_intifx_free_char(long bid, HashTable *list TSRMLS_DC)
Ifx_char = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_char->type==TYPE_CHAR)) {
php_error(E_WARNING, "%s(): %d is not a Informix char-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix char-result index", bid);
return -1;
}
@@ -3696,7 +3696,7 @@ static long php_intifx_update_char(long bid, char* param, long len, HashTable *l
Ifx_char = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_char->type==TYPE_CHAR)) {
php_error(E_WARNING, "%s(): %d is not a Informix char-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix char-result index", bid);
return -1;
}
@@ -3712,7 +3712,7 @@ static long php_intifx_update_char(long bid, char* param, long len, HashTable *l
} else {
Ifx_char->CHAR.char_data=emalloc(len+1);
if(Ifx_char->CHAR.char_data==NULL) {
php_error(E_WARNING, "%s(): Can't create char-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create char-resource");
return -1;
}
memcpy(Ifx_char->CHAR.char_data,param,len);
@@ -3772,7 +3772,7 @@ PHP_FUNCTION(ifxus_create_slob)
/* ----------------------------------------------------------------------
* internal function
* long php_intifx_create_slob(long create_mode, HashTable *list TSRMLS_DC)
* long php_intifx_create_slob(long create_mode, HashTable *list)
*
* creates an slob-object and opens it
* mode: 1=LO_RDONLY, 2=LO_WRONLY, 4=LO_APPEND, 8=LO_RDWR, 16=LO_BUFFER, 32=LO_NOBUFFER -> or-mask
@@ -3780,27 +3780,27 @@ PHP_FUNCTION(ifxus_create_slob)
* return -1 on error otherwise the new Blob-Object-id
* ----------------------------------------------------------------------
*/
static long php_intifxus_create_slob(long create_mode, HashTable *list TSRMLS_DC)
static long php_intifxus_create_slob(long create_mode, HashTable *list)
{
IFX_IDRES *Ifx_slob;
int errcode;
Ifx_slob=emalloc(sizeof(IFX_IDRES));
if(Ifx_slob==NULL) {
php_error(E_WARNING, "%s(): Can't create slob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create slob-resource");
return -1;
}
errcode=ifx_lo_def_create_spec(&(Ifx_slob->SLOB.createspec));
if(errcode<0) {
php_error(E_WARNING, "%s(): Can't create slob-resource: %d", get_active_function_name(TSRMLS_C), errcode);
php_error(E_WARNING,"can't create slob-resource: %d", errcode);
return -1;
}
Ifx_slob->type=TYPE_SLOB;
Ifx_slob->SLOB.lofd=ifx_lo_create(Ifx_slob->SLOB.createspec,create_mode,&(Ifx_slob->SLOB.slob_data),&errcode);
if(errcode<0 || Ifx_slob->SLOB.lofd<0) {
php_error(E_WARNING, "%s(): Can't create slob-resource: %d", get_active_function_name(TSRMLS_C), errcode);
php_error(E_WARNING,"can't create slob-resource: %d", errcode);
return -1;
}
return zend_list_insert(Ifx_slob,le_idresult);
@@ -3851,7 +3851,7 @@ static long php_intifxus_free_slob(long bid, HashTable *list TSRMLS_DC)
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING, "%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
return -1;
}
@@ -3912,17 +3912,17 @@ static long php_intifxus_close_slob(long bid, HashTable *list TSRMLS_DC)
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING, "%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
return -1;
}
if(Ifx_slob->SLOB.lofd<0) {
php_error(E_WARNING, "%s(): Slob-resource already closed", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"slob-resource already closed");
return -1;
}
if(ifx_lo_close(Ifx_slob->SLOB.lofd)<0) {
php_error(E_WARNING, "%s(): Can't close slob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't close slob-resource");
return -1;
}
Ifx_slob->SLOB.lofd=-1;
@@ -3990,18 +3990,18 @@ static long php_intifxus_open_slob(long bid, long create_mode, HashTable *list T
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING, "%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
return -1;
}
if(Ifx_slob->SLOB.lofd>0) {
php_error(E_WARNING, "%s(): Slob-resource already open", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"slob-resource already open");
return -1;
}
Ifx_slob->SLOB.lofd=ifx_lo_open(&(Ifx_slob->SLOB.slob_data),create_mode,&errcode);
if(errcode < 0 || Ifx_slob->SLOB.lofd < 0) {
php_error(E_WARNING, "%s(): Can't open slob-resource: %d", get_active_function_name(TSRMLS_C), errcode);
php_error(E_WARNING,"can't open slob-resource: %d", errcode);
return -1;
}
return 0;
@@ -4022,7 +4022,7 @@ static long php_intifxus_new_slob(HashTable *list)
Ifx_slob=emalloc(sizeof(IFX_IDRES));
if(Ifx_slob==NULL) {
php_error(E_WARNING, "%s(): Can't create slob-resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't create slob-resource");
return -1;
}
@@ -4048,7 +4048,7 @@ static ifx_lo_t *php_intifxus_get_slobloc(long bid, HashTable *list TSRMLS_DC)
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING, "%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
return NULL;
}
return &(Ifx_slob->SLOB.slob_data);
@@ -4082,17 +4082,17 @@ PHP_FUNCTION(ifxus_tell_slob)
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING,"%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
RETURN_FALSE;
}
if(ifx_lo_tell(Ifx_slob->SLOB.lofd,&akt_seek_pos)<0) {
php_error(E_WARNING,"%s(): Can't perform tell-operation", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't perform tell-operation");
RETURN_FALSE;
}
if(ifx_int8tolong(&akt_seek_pos,&lakt_seek_pos)<0) {
php_error(E_WARNING, "%s(): Seek-position to large for long", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"seek-position to large for long");
RETURN_FALSE;
}
RETURN_LONG(lakt_seek_pos);
@@ -4130,7 +4130,7 @@ PHP_FUNCTION(ifxus_seek_slob)
bid=Z_LVAL_P(pbid);
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING, "%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
RETURN_FALSE;
}
@@ -4144,12 +4144,12 @@ PHP_FUNCTION(ifxus_seek_slob)
ifx_int8cvlong(Z_LVAL_P(poffset),&offset);
if(ifx_lo_seek(Ifx_slob->SLOB.lofd,&offset,mode,&akt_seek_pos)<0) {
php_error(E_WARNING, "%s(): Can't perform seek-operation", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"can't perform seek-operation");
RETURN_FALSE;
}
if(ifx_int8tolong(&akt_seek_pos,&lakt_seek_pos)<0) {
php_error(E_WARNING, "%s(): Seek-position to large for long", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"seek-position to large for long");
RETURN_FALSE;
}
RETURN_LONG(lakt_seek_pos);
@@ -4185,7 +4185,7 @@ PHP_FUNCTION(ifxus_read_slob)
bid=Z_LVAL_P(pbid);
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING, "%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
RETURN_FALSE;
}
@@ -4193,7 +4193,7 @@ PHP_FUNCTION(ifxus_read_slob)
buffer=emalloc(nbytes);
if(ifx_lo_read(Ifx_slob->SLOB.lofd,buffer,nbytes,&errcode)<0) {
efree(buffer);
php_error(E_WARNING, "%s(): Error reading slob: %d", get_active_function_name(TSRMLS_C), errcode);
php_error(E_WARNING,"error reading slob: %d", errcode);
RETURN_FALSE;
}
RETURN_STRINGL(buffer,nbytes,0);
@@ -4229,7 +4229,7 @@ PHP_FUNCTION(ifxus_write_slob)
bid=Z_LVAL_P(pbid);
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
php_error(E_WARNING, "%s(): %d is not a Informix slob-result index", get_active_function_name(TSRMLS_C), bid);
php_error(E_WARNING,"%d is not a Informix slob-result index", bid);
RETURN_FALSE;
}
@@ -4237,12 +4237,12 @@ PHP_FUNCTION(ifxus_write_slob)
nbytes=Z_STRLEN_P(pcontent);
if(nbytes<=0) {
php_error(E_WARNING, "%s(): String has no content", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"string has no content");
RETURN_FALSE;
}
if((nbytes=ifx_lo_write(Ifx_slob->SLOB.lofd,buffer,nbytes,&errcode))<0) {
php_error(E_WARNING, "%s(): Error writing slob: %d", get_active_function_name(TSRMLS_C), errcode);
php_error(E_WARNING,"error writing slob: %d", errcode);
RETURN_FALSE;
}
+75 -70
View File
@@ -213,7 +213,7 @@ typedef struct {
} else if (Z_TYPE_P(blob_arg) != IS_STRING\
|| Z_STRLEN_P(blob_arg) != sizeof(ibase_blob_handle)\
|| ((ibase_blob_handle *)(Z_STRVAL_P(blob_arg)))->bl_handle != 0){\
_php_ibase_module_error("Invalid blob id");\
_php_ibase_module_error("invalid blob id");\
RETURN_FALSE;\
} else {\
ib_blob = (ibase_blob_handle *)Z_STRVAL_P(blob_arg);\
@@ -262,12 +262,13 @@ PHP_FUNCTION(ibase_errmsg)
}
/* }}} */
/* {{{ _php_ibase_error(TSRMLS_D)
/* {{{ _php_ibase_error()
print interbase error and save it for ibase_errmsg() */
static void _php_ibase_error(TSRMLS_D)
static void _php_ibase_error(void)
{
char *s;
ISC_STATUS *statusp;
TSRMLS_FETCH();
s = IBG(errmsg);
statusp = IB_STATUS;
@@ -275,7 +276,7 @@ static void _php_ibase_error(TSRMLS_D)
strcat(IBG(errmsg), " ");
s = IBG(errmsg) + strlen(IBG(errmsg));
}
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), IBG(errmsg));
php_error(E_WARNING, "InterBase: %s", IBG(errmsg));
}
/* }}} */
@@ -284,14 +285,15 @@ static void _php_ibase_error(TSRMLS_D)
static void _php_ibase_module_error(char *msg, ...)
{
va_list ap;
int len;
TSRMLS_FETCH();
va_start(ap, msg);
/* vsnprintf NUL terminates the buf and writes at most n-1 chars+NUL */
vsnprintf(IBG(errmsg), MAX_ERRMSG, msg, ap);
len = vsnprintf(IBG(errmsg), MAX_ERRMSG - 1, msg, ap);
va_end(ap);
IBG(errmsg[len]) = '\0';
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), IBG(errmsg));
php_error(E_WARNING, "InterBase module: %s", IBG(errmsg));
}
/* }}} */
@@ -329,7 +331,7 @@ static void _php_ibase_commit_link(ibase_db_link *link)
if (link->trans[0] != NULL) { /* commit default */
IBDEBUG("Committing default transaction...");
if (isc_commit_transaction(IB_STATUS, &link->trans[0])) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
}
link->trans[0] = NULL;
}
@@ -337,7 +339,7 @@ static void _php_ibase_commit_link(ibase_db_link *link)
if (link->trans[i] != NULL) {
IBDEBUG("Rolling back other transactions...");
if (isc_rollback_transaction(IB_STATUS, &link->trans[i])) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
}
link->trans[i] = NULL;
}
@@ -395,7 +397,7 @@ static void _php_ibase_free_result(zend_rsrc_list_entry *rsrc TSRMLS_DC)
if ( !(IB_STATUS[0] && IB_STATUS[1]) && ib_result->drop_stmt && ib_result->stmt ) {
IBDEBUG("Dropping statement handle (free_result)...");
if (isc_dsql_free_statement(IB_STATUS, &ib_result->stmt, DSQL_drop)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
}
} else {
/* Shouldn't be here unless query was select and had parameter
@@ -437,7 +439,7 @@ static void _php_ibase_free_query(ibase_query *ib_query)
if ( !(IB_STATUS[0] && IB_STATUS[1]) && ib_query->stmt) {
IBDEBUG("Dropping statement handle (free_query)...");
if (isc_dsql_free_statement(IB_STATUS, &ib_query->stmt, DSQL_drop)){
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
}
}
if (ib_query->in_array) {
@@ -488,7 +490,7 @@ static void _php_ibase_free_trans(zend_rsrc_list_entry *rsrc TSRMLS_DC)
if (ib_link->trans[ib_trans->trans_num] != NULL) {
IBDEBUG("Rolling back unhandled transaction...");
if (isc_rollback_transaction(IB_STATUS, &ib_link->trans[ib_trans->trans_num])) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
}
ib_link->trans[ib_trans->trans_num] = NULL;
}
@@ -691,7 +693,7 @@ static int _php_ibase_attach_db(char *server, char *uname, char *passwd, char *c
dpb_length = dpb - dpb_buffer;
if (isc_attach_database(IB_STATUS, (short) strlen(server), server, db, (short) dpb_length, dpb_buffer)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
return FAILURE;
}
return SUCCESS;
@@ -974,7 +976,7 @@ static int _php_ibase_alloc_array(ibase_array **ib_arrayp, int *array_cntp,
if (isc_array_lookup_bounds(IB_STATUS, &link, &trans,
var->relname, var->sqlname, ar_desc)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
efree(IB_ARRAY);
IB_ARRAY = NULL;
return FAILURE;
@@ -1013,7 +1015,7 @@ static int _php_ibase_alloc_array(ibase_array **ib_arrayp, int *array_cntp,
IB_ARRAY[ar_cnt].el_size = ar_desc->array_desc_length+sizeof(short);
break;
default:
_php_ibase_module_error("Unexpected array type %d in relation '%s' column '%s'",
_php_ibase_module_error("unexpected array type %d in relation '%s' column '%s')",
ar_desc->array_desc_dtype, var->relname, var->sqlname);
efree(IB_ARRAY);
IB_ARRAY = NULL;
@@ -1058,7 +1060,7 @@ static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, i
IB_QUERY->dialect = dialect;
if (isc_dsql_allocate_statement(IB_STATUS, &link, &IB_QUERY->stmt)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
goto _php_ibase_alloc_query_error;
}
@@ -1067,7 +1069,7 @@ static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, i
IB_QUERY->out_sqlda->version = SQLDA_VERSION1;
if (isc_dsql_prepare(IB_STATUS, &IB_QUERY->trans, &IB_QUERY->stmt, 0, query, dialect, IB_QUERY->out_sqlda)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
goto _php_ibase_alloc_query_error;
}
@@ -1077,7 +1079,7 @@ static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, i
IB_QUERY->out_sqlda->sqln = IB_QUERY->out_sqlda->sqld;
IB_QUERY->out_sqlda->version = SQLDA_VERSION1;
if (isc_dsql_describe(IB_STATUS, &IB_QUERY->stmt, SQLDA_VERSION1, IB_QUERY->out_sqlda)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
goto _php_ibase_alloc_query_error;
}
}
@@ -1087,7 +1089,7 @@ static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, i
IB_QUERY->in_sqlda->sqln = 0;
IB_QUERY->in_sqlda->version = SQLDA_VERSION1;
if (isc_dsql_describe_bind(IB_STATUS, &IB_QUERY->stmt, SQLDA_VERSION1, IB_QUERY->in_sqlda)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
goto _php_ibase_alloc_query_error;
}
@@ -1097,7 +1099,7 @@ static int _php_ibase_alloc_query(ibase_query **ib_queryp, isc_db_handle link, i
IB_QUERY->in_sqlda->sqln = IB_QUERY->in_sqlda->sqld;
IB_QUERY->in_sqlda->version = SQLDA_VERSION1;
if (isc_dsql_describe_bind(IB_STATUS, &IB_QUERY->stmt, SQLDA_VERSION1, IB_QUERY->in_sqlda)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
goto _php_ibase_alloc_query_error;
}
}
@@ -1177,7 +1179,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, pval **b_vars, BIND_BUF *buf, ibase_qu
case SQL_SHORT:
convert_to_long(b_var);
if (Z_LVAL_P(b_var) > SHRT_MAX || Z_LVAL_P(b_var) < SHRT_MIN) {
_php_ibase_module_error("Field %*s overflow", var->aliasname_length, var->aliasname);
_php_ibase_module_error("field %*s overflow", var->aliasname_length, var->aliasname);
return FAILURE;
}
buf[i].val.sval = (short)Z_LVAL_P(b_var);
@@ -1243,7 +1245,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, pval **b_vars, BIND_BUF *buf, ibase_qu
n = sscanf(Z_STRVAL_P(b_var), "%d%*[/]%d%*[/]%d %d%*[:]%d%*[:]%d",
&t.tm_mon, &t.tm_mday, &t.tm_year, &t.tm_hour, &t.tm_min, &t.tm_sec);
if(n != 3 && n != 6){
_php_ibase_module_error("Invalid date/time format: Expected 3 or 6 fields, got %d. Use format m/d/Y H:i:s. You gave '%s'", n, Z_STRVAL_P(b_var));
_php_ibase_module_error("invalid date/time format: Expected 3 or 6 fields, got %d. Use format m/d/Y H:i:s. You gave '%s'", n, Z_STRVAL_P(b_var));
return FAILURE;
}
t.tm_year -= 1900;
@@ -1310,22 +1312,22 @@ static int _php_ibase_bind(XSQLDA *sqlda, pval **b_vars, BIND_BUF *buf, ibase_qu
ib_blob->bl_handle = NULL;
if (isc_create_blob(IB_STATUS, &ib_blob->link, &ib_blob->trans_handle, &ib_blob->bl_handle, &ib_blob->bl_qd)) {
efree(ib_blob);
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
return FAILURE;
}
convert_to_string(b_var);
if (isc_put_segment(IB_STATUS, &ib_blob->bl_handle, (unsigned short) Z_STRLEN_P(b_var), Z_STRVAL_P(b_var))) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
return FAILURE;
}
if (isc_close_blob(IB_STATUS, &ib_blob->bl_handle)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
return FAILURE;
}
ib_blob_id = ib_blob;
var->sqldata = (void ISC_FAR *)&ib_blob_id->bl_qd;
/*
_php_ibase_module_error("Invalid blob id string");
_php_ibase_module_error("invalid blob id string");
return FAILURE;
*/
} else {
@@ -1336,7 +1338,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, pval **b_vars, BIND_BUF *buf, ibase_qu
}
break;
case SQL_ARRAY:
_php_ibase_module_error("Binding arrays not supported yet");
_php_ibase_module_error("binding arrays not supported yet");
return FAILURE;
break;
} /*switch*/
@@ -1438,21 +1440,21 @@ static int _php_ibase_exec(ibase_result **ib_resultp, ibase_query *ib_query, int
if (ib_query->in_sqlda) { /* has placeholders */
IBDEBUG("Query wants XSQLDA for input");
if (ib_query->in_sqlda->sqld != argc) {
_php_ibase_module_error("Placeholders (%d) and variables (%d) mismatch", ib_query->in_sqlda->sqld, argc);
_php_ibase_module_error("placeholders (%d) and variables (%d) mismatch", ib_query->in_sqlda->sqld, argc);
goto _php_ibase_exec_error; /* yes mommy, goto! */
}
in_sqlda = emalloc(XSQLDA_LENGTH(ib_query->in_sqlda->sqld));
memcpy(in_sqlda, ib_query->in_sqlda, XSQLDA_LENGTH(ib_query->in_sqlda->sqld));
bind_buf = emalloc(sizeof(BIND_BUF) * ib_query->in_sqlda->sqld);
if (_php_ibase_bind(in_sqlda, args, bind_buf, ib_query) == FAILURE) {
IBDEBUG("Could not bind input XSQLDA");
IBDEBUG("Could not bind input XSQLDA... (_php_ibase_exec)");
goto _php_ibase_exec_error;
}
}
if (isc_dsql_execute(IB_STATUS, &ib_query->trans, &ib_query->stmt, ib_query->dialect, in_sqlda)) {
IBDEBUG("Could not execute query");
_php_ibase_error(TSRMLS_C);
IBDEBUG("Could not execute query... (_php_ibase_exec)");
_php_ibase_error();
goto _php_ibase_exec_error;
}
@@ -1554,12 +1556,12 @@ PHP_FUNCTION(ibase_trans)
&& ib_link->trans[trans_n]; trans_n++)
;
if (trans_n == IBASE_TRANS_ON_LINK) {
_php_ibase_module_error("Too many transactions on link");
_php_ibase_module_error("too many transactions on link");
RETURN_FALSE;
}
if (isc_start_transaction(IB_STATUS, &ib_link->trans[trans_n], 1, &ib_link->link, tpb_len, tpbp)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -1578,7 +1580,7 @@ static int _php_ibase_def_trans(ibase_db_link * ib_link, int trans_n)
if (trans_n == 0 && ib_link->trans[0] == NULL) {
if (isc_start_transaction(IB_STATUS, &ib_link->trans[0], 1, &ib_link->link, 0, NULL)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
return FAILURE;
}
}
@@ -1620,12 +1622,12 @@ static void _php_ibase_trans_end(INTERNAL_FUNCTION_PARAMETERS, int commit)
if (commit) {
if (isc_commit_transaction(IB_STATUS, &ib_link->trans[trans_n])) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
} else {
if (isc_rollback_transaction(IB_STATUS, &ib_link->trans[trans_n])) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
}
@@ -1693,7 +1695,7 @@ PHP_FUNCTION(ibase_query)
query = Z_STRVAL_PP(args[i]);
i++; /* next arg */
} else {
_php_ibase_module_error("Query argument missed");
_php_ibase_module_error("query argument missed");
efree(args);
RETURN_FALSE;
}
@@ -1894,7 +1896,7 @@ static int _php_ibase_arr_pval(pval *ar_pval, char **datap, ibase_array *ib_arra
if (dim > 16) { /* InterBase limit */
_php_ibase_module_error("Too many dimensions");
_php_ibase_module_error("php module internal error in %s %d", __FILE__, __LINE__);
return FAILURE;
}
@@ -1967,7 +1969,7 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type)
ZEND_FETCH_RESOURCE(ib_result, ibase_result *, result_arg, -1, "InterBase result", le_result);
if (ib_result->out_sqlda == NULL) {
_php_ibase_module_error("Trying to fetch results from a non-select query");
_php_ibase_module_error("trying to fetch results from a non-select query");
RETURN_FALSE;
}
@@ -1976,7 +1978,7 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type)
}
if (IB_STATUS[0] && IB_STATUS[1]) { /* error in fetch */
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2017,13 +2019,13 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type)
char bl_items[1], *bl_data, bl_info[20], *p;
if (isc_open_blob(IB_STATUS, &ib_result->link, &ib_result->trans, &bl_handle, (ISC_QUAD ISC_FAR *) var->sqldata)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
bl_items[0] = isc_info_blob_total_length;
if (isc_blob_info(IB_STATUS, &bl_handle, sizeof(bl_items), bl_items, sizeof(bl_info), bl_info)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2047,20 +2049,20 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type)
cur_len += seg_len;
if (cur_len > max_len) { /* never!*/
efree(bl_data);
_php_ibase_module_error("PHP module internal error");
_php_ibase_module_error("php module internal error in %s %d", __FILE__, __LINE__);
RETURN_FALSE;
}
}
if (IB_STATUS[0] && IB_STATUS[1] && (IB_STATUS[1] != isc_segstr_eof)) {
efree(bl_data);
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
bl_data[cur_len] = '\0';
if (isc_close_blob(IB_STATUS, &bl_handle)) {
efree(bl_data);
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
Z_TYPE_P(tmp) = IS_STRING;
@@ -2095,7 +2097,7 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type)
if (isc_array_get_slice(IB_STATUS, &ib_result->link, &ib_result->trans,
&ar_qd, &ib_array->ar_desc, ar_data, &ib_array->ar_size)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2277,7 +2279,7 @@ PHP_FUNCTION(ibase_execute)
IBDEBUG("Implicitly closing a cursor");
if (isc_dsql_free_statement(IB_STATUS, &ib_query->stmt, DSQL_close)){
efree(args);
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
}
}
@@ -2317,11 +2319,11 @@ PHP_FUNCTION(ibase_free_query)
}
/* }}} */
#if HAVE_STRFTIME
/* {{{ proto int ibase_timefmt(string format)
Sets the format of timestamp, date and time columns returned from queries */
PHP_FUNCTION(ibase_timefmt)
{
#if HAVE_STRFTIME
pval ***args;
char *fmt = NULL;
int type = PHP_IBASE_TIMESTAMP;
@@ -2368,9 +2370,12 @@ PHP_FUNCTION(ibase_timefmt)
efree(args);
RETURN_TRUE;
#else
_php_ibase_module_error("ibase_timefmt not supported on this platform");
RETURN_FALSE;
#endif
}
/* }}} */
#endif
/* {{{ proto int ibase_num_fields(int result)
Get the number of fields in result */
@@ -2388,7 +2393,7 @@ PHP_FUNCTION(ibase_num_fields)
ZEND_FETCH_RESOURCE(ib_result, ibase_result *, result, -1, "InterBase result", le_result);
if (ib_result->out_sqlda == NULL) {
_php_ibase_module_error("Trying to get the number of fields from a non-select query");
_php_ibase_module_error("trying to get num fields from a non-select query");
RETURN_FALSE;
}
@@ -2416,7 +2421,7 @@ PHP_FUNCTION(ibase_field_info)
ZEND_FETCH_RESOURCE(ib_result, ibase_result *, result_arg, -1, "InterBase result", le_result);
if (ib_result->out_sqlda == NULL) {
_php_ibase_module_error("Trying to get field info from a non-select query");
_php_ibase_module_error("trying to get field info from a non-select query");
RETURN_FALSE;
}
@@ -2496,7 +2501,7 @@ static int _php_ibase_blob_info(isc_blob_handle bl_handle, IBASE_BLOBINFO *bl_in
bl_info->bl_stream = 0;
if (isc_blob_info(IB_STATUS, &bl_handle, sizeof(bl_items), bl_items, sizeof(bl_inf), bl_inf)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
return FAILURE;
}
@@ -2523,7 +2528,7 @@ static int _php_ibase_blob_info(isc_blob_handle bl_handle, IBASE_BLOBINFO *bl_in
break;
case isc_info_truncated:
case isc_info_error: /* hmm. don't think so...*/
_php_ibase_module_error("PHP module internal error");
_php_ibase_module_error("php module internal error in %s %d", __FILE__, __LINE__);
return FAILURE;
} /*switch*/
p += item_len;
@@ -2571,7 +2576,7 @@ PHP_FUNCTION(ibase_blob_create)
if (isc_create_blob(IB_STATUS, &ib_blob->link, &ib_blob->trans_handle, &ib_blob->bl_handle, &ib_blob->bl_qd)) {
efree(ib_blob);
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2607,7 +2612,7 @@ PHP_FUNCTION(ibase_blob_open)
ib_blob->bl_handle = NULL;
if (isc_open_blob(IB_STATUS, &ib_blob->link, &ib_blob->trans_handle, &ib_blob->bl_handle, &ib_blob->bl_qd)) {
efree(ib_blob);
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2633,7 +2638,7 @@ PHP_FUNCTION(ibase_blob_add)
convert_to_string(string_arg);
if (isc_put_segment(IB_STATUS, &ib_blob->bl_handle, (unsigned short) Z_STRLEN_P(string_arg), Z_STRVAL_P(string_arg))) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
RETURN_TRUE;
@@ -2670,7 +2675,7 @@ PHP_FUNCTION(ibase_blob_get)
cur_len += seg_len;
if (cur_len > max_len) { /* never!*/
efree(bl_data);
_php_ibase_module_error("PHP module internal error");
_php_ibase_module_error("php module internal error in %s %d", __FILE__, __LINE__);
RETURN_FALSE;
}
}
@@ -2678,7 +2683,7 @@ PHP_FUNCTION(ibase_blob_get)
bl_data[cur_len] = '\0';
if (IB_STATUS[0] && (IB_STATUS[1] != isc_segstr_eof && IB_STATUS[1] != isc_segment)) {
efree(bl_data);
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
RETURN_STRINGL(bl_data, cur_len, 0);
@@ -2709,7 +2714,7 @@ static void _php_ibase_blob_end(INTERNAL_FUNCTION_PARAMETERS, int bl_end)
if (bl_end == BLOB_CLOSE) { /* return id here */
if (ib_blob->bl_qd.gds_quad_high || ib_blob->bl_qd.gds_quad_low) { /*not null ?*/
if (isc_close_blob(IB_STATUS, &ib_blob->bl_handle)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
}
@@ -2718,7 +2723,7 @@ static void _php_ibase_blob_end(INTERNAL_FUNCTION_PARAMETERS, int bl_end)
zend_list_delete(Z_LVAL_P(blob_arg));
} else { /* discard created blob */
if (isc_cancel_blob(IB_STATUS, &ib_blob->bl_handle)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
ib_blob->bl_handle = NULL;
@@ -2767,7 +2772,7 @@ PHP_FUNCTION(ibase_blob_info)
if (ib_blob_id->bl_qd.gds_quad_high || ib_blob_id->bl_qd.gds_quad_low) { /*not null ?*/
if (isc_open_blob(IB_STATUS, &ib_blob_id->link, &ib_blob_id->trans_handle,
&ib_blob_id->bl_handle, &ib_blob_id->bl_qd)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2775,7 +2780,7 @@ PHP_FUNCTION(ibase_blob_info)
RETURN_FALSE;
}
if (isc_close_blob(IB_STATUS, &ib_blob_id->bl_handle)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
ib_blob_id->bl_handle = NULL;
@@ -2838,7 +2843,7 @@ PHP_FUNCTION(ibase_blob_echo)
if (isc_open_blob(IB_STATUS, &ib_blob_id->link, &ib_blob_id->trans_handle,
&ib_blob_id->bl_handle, &ib_blob_id->bl_qd)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2848,12 +2853,12 @@ PHP_FUNCTION(ibase_blob_echo)
}
if (IB_STATUS[0] && (IB_STATUS[1] != isc_segstr_eof)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
if (isc_close_blob(IB_STATUS, &ib_blob_id->bl_handle)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
ib_blob_id->bl_handle = NULL;
@@ -2919,7 +2924,7 @@ PHP_FUNCTION(ibase_blob_import)
ib_blob.bl_qd.gds_quad_low = 0;
if (isc_create_blob(IB_STATUS, &ib_blob.link, &ib_blob.trans_handle, &ib_blob.bl_handle, &ib_blob.bl_qd)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -2927,7 +2932,7 @@ PHP_FUNCTION(ibase_blob_import)
while(b = php_stream_read(stream, bl_data, sizeof(bl_data)) > 0) {
if (isc_put_segment(IB_STATUS, &ib_blob.bl_handle, b, bl_data)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
size += b;
@@ -2935,7 +2940,7 @@ PHP_FUNCTION(ibase_blob_import)
}
if (isc_close_blob(IB_STATUS, &ib_blob.bl_handle)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
@@ -3039,7 +3044,7 @@ static void _php_ibase_user(INTERNAL_FUNCTION_PARAMETERS, int operation)
if (isc_service_attach(IB_STATUS, 0, service_name,
&service_handle, spb_length, spb_buffer)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
RETURN_FALSE;
}
else {
@@ -3085,7 +3090,7 @@ static void _php_ibase_user(INTERNAL_FUNCTION_PARAMETERS, int operation)
if (isc_service_start(IB_STATUS, &service_handle,
NULL, (unsigned short) (p - request), request)) {
_php_ibase_error(TSRMLS_C);
_php_ibase_error();
isc_service_detach(IB_STATUS, &service_handle);
RETURN_FALSE;
}
+3 -3
View File
@@ -2,12 +2,12 @@
$(srcdir)/java.c : $(srcdir)/php_java.jar
$(srcdir)/php_java.jar : $(srcdir)/reflect.java
@$(mkinstalldirs) $(srcdir)/net/php
$(mkinstalldirs) $(srcdir)/net/php
@cp $(srcdir)/reflect.java $(srcdir)/net/php
@echo library=php_java > $(srcdir)/net/php/reflect.properties
@$(JAVA_C) $(srcdir)/net/php/reflect.java
$(JAVA_C) $(srcdir)/net/php/reflect.java
@test ! -f reflect.class || mv reflect.class $(srcdir)/net/php # bug in KJC javac
@$(JAVA_JAR) $(srcdir)/php_java.jar $(srcdir)/net/php/*.class $(srcdir)/net/php/*.properties
$(JAVA_JAR) $(srcdir)/php_java.jar $(srcdir)/net/php/*.class $(srcdir)/net/php/*.properties
@rm $(srcdir)/net/php/reflect.*
@rmdir $(srcdir)/net/php
@rmdir $(srcdir)/net
+2 -3
View File
@@ -103,7 +103,6 @@ if test "$PHP_LDAP" != "no"; then
fi
CPPFLAGS=$_SAVE_CPPFLAGS
dnl Solaris 2.8 claims to be 2004 API, but doesn't have
dnl ldap_parse_reference() nor ldap_start_tls_s()
AC_CHECK_FUNCS([ldap_parse_reference ldap_start_tls_s])
dnl Solaris 2.8 claims to be 2004 API, but doesn't have ldap_parse_reference
AC_CHECK_FUNCS(ldap_parse_reference)
fi
+142 -86
View File
@@ -119,13 +119,12 @@ function_entry ldap_functions[] = {
PHP_FE(ldap_parse_result, arg3to6of6_force_ref)
PHP_FE(ldap_first_reference, NULL)
PHP_FE(ldap_next_reference, NULL)
#ifdef HAVE_LDAP_PARSE_REFERENCE
PHP_FE(ldap_parse_reference, third_argument_force_ref)
#endif
PHP_FE(ldap_rename, NULL)
#ifdef HAVE_LDAP_START_TLS_S
PHP_FE(ldap_start_tls, NULL)
#endif
#if LDAP_API_VERSION > 2000
PHP_FE(ldap_start_tls, NULL)
#endif
#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
@@ -226,9 +225,7 @@ PHP_MINIT_FUNCTION(ldap)
REGISTER_LONG_CONSTANT("LDAP_OPT_PROTOCOL_VERSION", LDAP_OPT_PROTOCOL_VERSION, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("LDAP_OPT_ERROR_NUMBER", LDAP_OPT_ERROR_NUMBER, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("LDAP_OPT_REFERRALS", LDAP_OPT_REFERRALS, CONST_PERSISTENT | CONST_CS);
#ifdef LDAP_OPT_RESTART
REGISTER_LONG_CONSTANT("LDAP_OPT_RESTART", LDAP_OPT_RESTART, CONST_PERSISTENT | CONST_CS);
#endif
REGISTER_LONG_CONSTANT("LDAP_OPT_HOST_NAME", LDAP_OPT_HOST_NAME, CONST_PERSISTENT | CONST_CS);
REGISTER_LONG_CONSTANT("LDAP_OPT_ERROR_STRING", LDAP_OPT_ERROR_STRING, CONST_PERSISTENT | CONST_CS);
#ifdef LDAP_OPT_MATCHED_DN
@@ -336,37 +333,75 @@ PHP_MINFO_FUNCTION(ldap)
PHP_FUNCTION(ldap_connect)
{
char *host = NULL;
int hostlen;
int port = 389; /* Default port */
#ifdef HAVE_ORALDAP
char *wallet, *walletpasswd;
int walletlen, walletpasswdlen;
int authmode;
int ssl=0;
#endif
ldap_linkdata *ld;
LDAP *ldap;
switch(ZEND_NUM_ARGS()) {
case 0:
break;
case 1: {
pval **yyhost;
if (zend_get_parameters_ex(1, &yyhost) == FAILURE) {
RETURN_FALSE;
}
convert_to_string_ex(yyhost);
host = Z_STRVAL_PP(yyhost);
}
break;
case 2: {
pval **yyhost, **yyport;
if (zend_get_parameters_ex(2, &yyhost, &yyport) == FAILURE) {
RETURN_FALSE;
}
convert_to_string_ex(yyhost);
host = Z_STRVAL_PP(yyhost);
convert_to_long_ex(yyport);
port = Z_LVAL_PP(yyport);
}
break;
#ifdef HAVE_ORALDAP
if (ZEND_NUM_ARGS() == 3 || ZEND_NUM_ARGS() == 4) {
WRONG_PARAM_COUNT;
}
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|slssl", &host, &hostlen, &port, &wallet, &walletlen, &walletpasswd, &walletpasswdlen, &authmode) == FAILURE) {
RETURN_FALSE;
}
case 5: {
pval **yyhost, **yyport, **yywallet, **yywalletpasswd, **yyauthmode;
if (ZEND_NUM_ARGS() == 5 ) {
ssl = 1;
}
#else
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sl", &host, &hostlen, &port) == FAILURE) {
RETURN_FALSE;
}
if (zend_get_parameters_ex(5, &yyhost, &yyport, &yywallet, &yywalletpasswd, &yyauthmode) == FAILURE) {
RETURN_FALSE;
}
convert_to_string_ex(yyhost);
convert_to_long_ex(yyport);
convert_to_string_ex(yywallet);
convert_to_string_ex(yywalletpasswd);
convert_to_long_ex(yyauthmode);
host = Z_STRVAL_PP(yyhost);
port = Z_LVAL_PP(yyport);
wallet = Z_STRVAL_PP(yywallet);
walletpasswd = Z_STRVAL_PP(yywalletpasswd);
authmode = Z_LVAL_PP(yyauthmode);
ssl = 1;
}
break;
#endif
default:
WRONG_PARAM_COUNT;
break;
}
if (LDAPG(max_links) != -1 && LDAPG(num_links) >= LDAPG(max_links)) {
php_error(E_WARNING, "%s(): Too many open links (%d)", get_active_function_name(TSRMLS_C), LDAPG(num_links));
php_error(E_WARNING, "LDAP: Too many open links (%d)", LDAPG(num_links));
RETURN_FALSE;
}
@@ -381,7 +416,7 @@ PHP_FUNCTION(ldap_connect)
rc = ldap_initialize(&ldap, host);
if (rc != LDAP_SUCCESS) {
php_error(E_WARNING, "%s(): Could not create session handle: %s", get_active_function_name(TSRMLS_C), ldap_err2string(rc));
php_error(E_WARNING, "Could not create LDAP session handle (%d): %s\n", rc, ldap_err2string(rc));
RETURN_FALSE;
}
} else {
@@ -397,7 +432,7 @@ PHP_FUNCTION(ldap_connect)
#ifdef HAVE_ORALDAP
if (ssl) {
if (ldap_init_SSL(&ldap->ld_sb, wallet, walletpasswd, authmode)) {
php_error(E_WARNING, "%s(): SSL init failed", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: SSL init failed");
RETURN_FALSE;
}
}
@@ -434,20 +469,43 @@ static int _get_lderrno(LDAP *ldap)
Bind to LDAP directory */
PHP_FUNCTION(ldap_bind)
{
zval *link;
char *ldap_bind_dn = NULL, *ldap_bind_pw = NULL;
int ldap_bind_dnlen, ldap_bind_pwlen;
pval **link, **bind_rdn, **bind_pw;
char *ldap_bind_rdn, *ldap_bind_pw;
ldap_linkdata *ld;
int rc;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|ss", &link, &ldap_bind_dn, &ldap_bind_dnlen, &ldap_bind_pw, &ldap_bind_pwlen) == FAILURE) {
RETURN_FALSE;
}
switch(ZEND_NUM_ARGS()) {
case 1: /* Anonymous Bind */
if (zend_get_parameters_ex(1, &link) == FAILURE) {
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link);
ldap_bind_rdn = NULL;
ldap_bind_pw = NULL;
if ((rc = ldap_bind_s(ld->link, ldap_bind_dn, ldap_bind_pw, LDAP_AUTH_SIMPLE)) != LDAP_SUCCESS) {
php_error(E_WARNING, "%s(): Unable to bind to server: %s", get_active_function_name(TSRMLS_C), ldap_err2string(rc));
break;
case 3 :
if (zend_get_parameters_ex(3, &link, &bind_rdn, &bind_pw) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_string_ex(bind_rdn);
convert_to_string_ex(bind_pw);
ldap_bind_rdn = Z_STRVAL_PP(bind_rdn);
ldap_bind_pw = Z_STRVAL_PP(bind_pw);
break;
default:
WRONG_PARAM_COUNT;
break;
}
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, link, -1, "ldap link", le_link);
if (ldap_bind_s(ld->link, ldap_bind_rdn, ldap_bind_pw, LDAP_AUTH_SIMPLE) != LDAP_SUCCESS) {
php_error(E_WARNING, "LDAP: Unable to bind to server: %s", ldap_err2string(_get_lderrno(ld->link)));
RETURN_FALSE;
} else {
RETURN_TRUE;
@@ -459,16 +517,16 @@ PHP_FUNCTION(ldap_bind)
Unbind from LDAP directory */
PHP_FUNCTION(ldap_unbind)
{
zval *link;
pval **link;
ldap_linkdata *ld;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &link) == FAILURE) {
RETURN_FALSE;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &link) == FAILURE) {
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link);
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, link, -1, "ldap link", le_link);
zend_list_delete(Z_LVAL_P(link));
zend_list_delete(Z_LVAL_PP(link));
RETURN_TRUE;
}
/* }}} */
@@ -548,19 +606,19 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
case 4 :
if (Z_TYPE_PP(attrs) != IS_ARRAY) {
php_error(E_WARNING, "%s(): Expected Array as last element", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Expected Array as last element");
RETURN_FALSE;
}
num_attribs = zend_hash_num_elements(Z_ARRVAL_PP(attrs));
if ((ldap_attrs = emalloc((num_attribs+1) * sizeof(char *))) == NULL) {
php_error(E_WARNING, "%s(): Could not allocate memory", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Could not allocate memory");
RETURN_FALSE;
}
for(i=0; i<num_attribs; i++) {
if(zend_hash_index_find(Z_ARRVAL_PP(attrs), i, (void **) &attr) == FAILURE) {
php_error(E_WARNING, "%s(): Array initialization wrong", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Array initialization wrong");
efree(ldap_attrs);
RETURN_FALSE;
}
@@ -594,7 +652,7 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
nlinks = zend_hash_num_elements(Z_ARRVAL_PP(link));
if (nlinks == 0) {
php_error(E_WARNING, "%s(): No links in link array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: No links in link array");
if (ldap_attrs != NULL) {
efree(ldap_attrs);
}
@@ -604,7 +662,7 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
if (Z_TYPE_PP(base_dn) == IS_ARRAY) {
nbases = zend_hash_num_elements(Z_ARRVAL_PP(base_dn));
if (nbases != nlinks) {
php_error(E_WARNING, "%s(): Base must either be a string, or an array with the same number of elements as the links array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Base must either be a string, or an array with the same number of elements as the links array");
if (ldap_attrs != NULL) {
efree(ldap_attrs);
}
@@ -620,7 +678,7 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
if (Z_TYPE_PP(filter) == IS_ARRAY) {
nfilters = zend_hash_num_elements(Z_ARRVAL_PP(filter));
if (nfilters != nlinks) {
php_error(E_WARNING, "%s(): Filter must either be a string, or an array with the same number of elements as the links array", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Filter must either be a string, or an array with the same number of elements as the links array");
if (ldap_attrs != NULL) {
efree(ldap_attrs);
}
@@ -729,15 +787,15 @@ static void php_ldap_do_search(INTERNAL_FUNCTION_PARAMETERS, int scope)
&& errno != LDAP_REFERRAL
#endif
) {
php_error(E_WARNING, "%s(): Search: %s", get_active_function_name(TSRMLS_C), ldap_err2string(errno));
php_error(E_WARNING, "LDAP: Unable to perform the search: %s", ldap_err2string(_get_lderrno(ld->link)));
RETVAL_FALSE;
} else {
if (errno == LDAP_SIZELIMIT_EXCEEDED) {
php_error(E_WARNING, "%s(): Partial search results returned: Sizelimit exceeded.", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Partial search results returned: Sizelimit exceeded.");
}
#ifdef LDAP_ADMINLIMIT_EXCEEDED
else if (errno == LDAP_ADMINLIMIT_EXCEEDED) {
php_error(E_WARNING, "%s(): Partial search results returned: Adminlimit exceeded.", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Partial search results returned: Adminlimit exceeded.");
}
#endif
@@ -1090,7 +1148,7 @@ PHP_FUNCTION(ldap_get_values)
attribute = Z_STRVAL_PP(attr);
if ((ldap_value = ldap_get_values(ld->link, resultentry->data, attribute)) == NULL) {
php_error(E_WARNING, "%s(): Cannot get the value(s) of attribute %s", get_active_function_name(TSRMLS_C), ldap_err2string(_get_lderrno(ld->link)));
php_error(E_WARNING, "LDAP: Cannot get the value(s) of attribute %s", ldap_err2string(_get_lderrno(ld->link)));
RETURN_FALSE;
}
@@ -1132,13 +1190,13 @@ PHP_FUNCTION(ldap_get_values_len)
attribute = Z_STRVAL_PP(attr);
if ((ldap_value_len = ldap_get_values_len(ld->link, resultentry->data, attribute)) == NULL) {
php_error(E_WARNING, "%s(): Cannot get the value(s) of attribute %s", get_active_function_name(TSRMLS_C), ldap_err2string(_get_lderrno(ld->link)));
php_error(E_WARNING, "LDAP: Cannot get the value(s) of attribute %s", ldap_err2string(_get_lderrno(ld->link)));
RETURN_FALSE;
}
num_values = ldap_count_values_len(ldap_value_len);
if (array_init(return_value) == FAILURE) {
php_error(E_ERROR, "%s(): Cannot initialize return value", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Cannot initialize return value");
RETURN_FALSE;
}
@@ -1264,7 +1322,7 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper)
}
if (Z_TYPE_PP(entry) != IS_ARRAY) {
php_error(E_WARNING, "%s(): Expected Array as the last element", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Expected Array as the last element");
RETURN_FALSE;
}
@@ -1292,7 +1350,7 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper)
if (zend_hash_get_current_key(Z_ARRVAL_PP(entry), &attribute, &index, 0) == HASH_KEY_IS_STRING) {
ldap_mods[i]->mod_type = estrdup(attribute);
} else {
php_error(E_ERROR, "%s(): Unknown attribute in the data", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "LDAP: Unknown Attribute in the data");
/* Free allocated memory */
while (i >= 0) {
efree(ldap_mods[i--]);
@@ -1322,7 +1380,7 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper)
} else {
for(j=0; j < num_values; j++) {
if (zend_hash_index_find(Z_ARRVAL_PP(value), j, (void **) &ivalue) == FAILURE) {
php_error(E_WARNING, "%s(): Value array must have consecutive indices 0, 1, ...", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: Value array must have consecutive indices 0, 1, ...");
num_berval[i] = j;
num_attribs = i + 1;
RETVAL_FALSE;
@@ -1341,13 +1399,14 @@ static void php_ldap_do_modify(INTERNAL_FUNCTION_PARAMETERS, int oper)
/* check flag to see if do_mod was called to perform full add , gerrit thomson */
if (is_full_add == 1) {
if ((i = ldap_add_s(ld->link, ldap_dn, ldap_mods)) != LDAP_SUCCESS) {
php_error(E_WARNING, "%s(): Add: %s", get_active_function_name(TSRMLS_C), ldap_err2string(i));
if (ldap_add_s(ld->link, ldap_dn, ldap_mods) != LDAP_SUCCESS) {
ldap_perror(ld->link, "LDAP");
php_error(E_WARNING, "LDAP: add operation could not be completed.");
RETVAL_FALSE;
} else RETVAL_TRUE;
} else {
if ((i = ldap_modify_s(ld->link, ldap_dn, ldap_mods)) != LDAP_SUCCESS) {
php_error(E_WARNING, "%s(): Modify: %s", get_active_function_name(TSRMLS_C), ldap_err2string(i));
if (ldap_modify_s(ld->link, ldap_dn, ldap_mods) != LDAP_SUCCESS) {
php_error(E_WARNING, "LDAP: modify operation could not be completed.");
RETVAL_FALSE;
} else RETVAL_TRUE;
}
@@ -1410,7 +1469,6 @@ PHP_FUNCTION(ldap_delete)
pval **link, **dn;
ldap_linkdata *ld;
char *ldap_dn;
int rc;
if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &link, &dn) == FAILURE) {
WRONG_PARAM_COUNT;
@@ -1421,8 +1479,8 @@ PHP_FUNCTION(ldap_delete)
convert_to_string_ex(dn);
ldap_dn = Z_STRVAL_PP(dn);
if ((rc = ldap_delete_s(ld->link, ldap_dn)) != LDAP_SUCCESS) {
php_error(E_WARNING, "%s(): Delete: %s", get_active_function_name(TSRMLS_C), ldap_err2string(rc));
if (ldap_delete_s(ld->link, ldap_dn) != LDAP_SUCCESS) {
ldap_perror(ld->link, "LDAP");
RETURN_FALSE;
}
@@ -1517,7 +1575,7 @@ PHP_FUNCTION(ldap_compare)
break;
}
php_error(E_WARNING, "%s(): Compare: %s", get_active_function_name(TSRMLS_C), ldap_err2string(errno));
php_error(E_WARNING, "LDAP: Compare operation could not be completed: %s", ldap_err2string(errno));
RETURN_LONG(-1);
}
@@ -1540,12 +1598,12 @@ PHP_FUNCTION(ldap_sort)
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, &link, -1, "ldap link", le_link);
if (zend_hash_index_find(&EG(regular_list), Z_LVAL_P(result), (void **) &le) == FAILURE || le->type != le_result) {
php_error(E_WARNING, "%s(): Supplied resource is not a valid ldap result resource", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Supplied resource is not a valid ldap result resource");
RETURN_FALSE;
}
if (ldap_sort_entries(ld->link, (LDAPMessage **) &le->ptr, sflen ? sortfilter : NULL, strcmp) != LDAP_SUCCESS) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), ldap_err2string(errno));
php_error(E_WARNING, "LDAP sort failed: %s", ldap_err2string(errno));
RETURN_FALSE;
}
@@ -1581,9 +1639,7 @@ PHP_FUNCTION(ldap_get_option)
case LDAP_OPT_PROTOCOL_VERSION:
case LDAP_OPT_ERROR_NUMBER:
case LDAP_OPT_REFERRALS:
#ifdef LDAP_OPT_RESTART
case LDAP_OPT_RESTART:
#endif
{
int val;
if (ldap_get_option(ld->link, opt, &val)) {
@@ -1678,9 +1734,7 @@ PHP_FUNCTION(ldap_set_option)
} break;
/* options with boolean value */
case LDAP_OPT_REFERRALS:
#ifdef LDAP_OPT_RESTART
case LDAP_OPT_RESTART:
#endif
{
void *val;
convert_to_boolean_ex(newval);
@@ -1700,7 +1754,7 @@ PHP_FUNCTION(ldap_set_option)
char error=0;
if ((Z_TYPE_PP(newval) != IS_ARRAY) || !(ncontrols = zend_hash_num_elements(Z_ARRVAL_PP(newval)))) {
php_error(E_WARNING, "%s(): Expected non-empty array value for this option", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Expected non-empty array value for this option");
RETURN_FALSE;
}
ctrls = emalloc((1 + ncontrols) * sizeof(*ctrls));
@@ -1709,12 +1763,12 @@ PHP_FUNCTION(ldap_set_option)
zend_hash_internal_pointer_reset(Z_ARRVAL_PP(newval));
while (zend_hash_get_current_data(Z_ARRVAL_PP(newval), (void**)&ctrlval) == SUCCESS) {
if (Z_TYPE_PP(ctrlval) != IS_ARRAY) {
php_error(E_WARNING, "%s(): The array value must contain only arrays, where each array is a control", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "The array value must contain only arrays, where each array is a control");
error = 1;
break;
}
if (zend_hash_find(Z_ARRVAL_PP(ctrlval), "oid", sizeof("oid"), (void **) &val) == FAILURE) {
php_error(E_WARNING, "%s(): Control must have an oid key", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "Control must have an oid key");
error = 1;
break;
}
@@ -1785,7 +1839,7 @@ PHP_FUNCTION(ldap_parse_result)
NULL /* &serverctrls */,
0 );
if (rc != LDAP_SUCCESS ) {
php_error(E_WARNING, "%s(): Unable to parse result: %s", get_active_function_name(TSRMLS_C), ldap_err2string(rc));
php_error(E_WARNING, "LDAP: Unable to parse result: %s", ldap_err2string(_get_lderrno(ld->link)));
RETURN_FALSE;
}
@@ -1797,7 +1851,7 @@ PHP_FUNCTION(ldap_parse_result)
case 6 :
zval_dtor(*referrals);
if (array_init(*referrals) == FAILURE) {
php_error(E_ERROR, "%s(): Cannot initialize return value", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Cannot initialize return value");
ldap_value_free(lreferrals);
ldap_memfree(lerrmsg);
ldap_memfree(lmatcheddn);
@@ -1888,11 +1942,11 @@ PHP_FUNCTION(ldap_next_reference)
}
/* }}} */
#ifdef HAVE_LDAP_PARSE_REFERENCE
/* {{{ proto bool ldap_parse_reference(resource link, resource reference_entry, array referrals)
Extract information from reference entry */
PHP_FUNCTION(ldap_parse_reference)
{
#ifdef HAVE_LDAP_PARSE_REFERENCE
pval **link, **result_entry, **referrals;
ldap_linkdata *ld;
ldap_resultentry *resultentry;
@@ -1911,7 +1965,7 @@ PHP_FUNCTION(ldap_parse_reference)
zval_dtor(*referrals);
if (array_init(*referrals) == FAILURE) {
php_error(E_ERROR, "%s(): Cannot initialize return value", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Cannot initialize return value");
ldap_value_free(lreferrals);
RETURN_FALSE;
}
@@ -1924,9 +1978,12 @@ PHP_FUNCTION(ldap_parse_reference)
ldap_value_free(lreferrals);
}
RETURN_TRUE;
#else
php_error(E_ERROR, "ldap_parse_reference not available in this LDAP lib");
RETURN_FALSE;
#endif
}
/* }}} */
#endif
/* {{{ proto bool ldap_rename(resource link, string dn, string newrdn, string newparent, boolean deleteoldrdn);
Modify the name of an entry */
@@ -1951,7 +2008,7 @@ PHP_FUNCTION(ldap_rename)
rc = ldap_rename_s(ld->link, Z_STRVAL_PP(dn), Z_STRVAL_PP(newrdn), Z_STRVAL_PP(newparent), Z_BVAL_PP(deleteoldrdn), NULL, NULL);
#else
if (Z_STRLEN_PP(newparent) != 0) {
php_error(E_WARNING, "%s(): You are using old LDAP API, newparent must be the empty string, can only modify RDN", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "You are using old LDAP API, newparent must be the empty string, can only modify RDN");
RETURN_FALSE;
}
/* could support old APIs but need check for ldap_modrdn2()/ldap_modrdn() */
@@ -1964,15 +2021,15 @@ PHP_FUNCTION(ldap_rename)
RETURN_FALSE;
}
/* }}} */
#endif
#ifdef HAVE_LDAP_START_TLS_S
#if LDAP_API_VERSION > 2000
/* {{{ proto bool ldap_start_tls(resource link)
Start TLS */
PHP_FUNCTION(ldap_start_tls)
{
pval **link;
ldap_linkdata *ld;
int rc;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &link) == FAILURE) {
WRONG_PARAM_COUNT;
@@ -1980,8 +2037,9 @@ PHP_FUNCTION(ldap_start_tls)
ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, link, -1, "ldap link", le_link);
if ((rc = ldap_start_tls_s(ld->link, NULL, NULL)) != LDAP_SUCCESS) {
php_error(E_WARNING,"%s(): Unable to start TLS: %s", get_active_function_name(TSRMLS_C), ldap_err2string(rc));
if (ldap_start_tls_s(ld->link, NULL, NULL) != LDAP_SUCCESS) {
php_error(E_WARNING,"LDAP: Unable to start TLS: %s",
ldap_err2string(_get_lderrno(ld->link)));
RETURN_FALSE;
} else {
RETURN_TRUE;
@@ -1989,7 +2047,6 @@ PHP_FUNCTION(ldap_start_tls)
}
/* }}} */
#endif
#endif /* ( LDAP_API_VERSION > 2000 ) || HAVE_NSLDAP */
#if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
@@ -2000,7 +2057,6 @@ int _ldap_rebind_proc(LDAP *ldap, const char *url, ber_tag_t req, ber_int_t msgi
zval **cb_args[2];
zval *cb_retval;
zval *cb_link = (zval *) params;
TSRMLS_FETCH();
ld = (ldap_linkdata *) zend_fetch_resource(&cb_link TSRMLS_CC, -1, "ldap link", NULL, 1, le_link);
@@ -2020,7 +2076,7 @@ int _ldap_rebind_proc(LDAP *ldap, const char *url, ber_tag_t req, ber_int_t msgi
retval = Z_LVAL_P(cb_retval);
zval_ptr_dtor(&cb_retval);
} else {
php_error(E_WARNING, "%s(): rebind_proc PHP callback failed", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "LDAP: rebind_proc php callback failed");
retval = LDAP_OTHER;
}
zval_dtor(cb_url);
@@ -2055,7 +2111,7 @@ PHP_FUNCTION(ldap_set_rebind_proc)
/* callable? */
if (!zend_is_callable(callback, 0, &callback_name)) {
php_error(E_WARNING, "%s(): Two arguments expected for '%s' to be a valid callback", get_active_function_name(TSRMLS_C), callback_name);
php_error(E_WARNING, "%s() expects argument 2, '%s', to be a valid callback", get_active_function_name(TSRMLS_C), callback_name);
efree(callback_name);
RETURN_FALSE;
}
@@ -2108,7 +2164,7 @@ static void php_ldap_do_translate(INTERNAL_FUNCTION_PARAMETERS, int way)
RETVAL_STRINGL(ldap_buf, ldap_len, 1);
free(ldap_buf);
} else {
php_error(E_ERROR, "%s(): Conversion from iso-8859-1 to t61 failed: %s", get_active_function_name(TSRMLS_C), ldap_err2string(result));
php_error(E_ERROR, "LDAP: Conversion from iso-8859-1 to t61 failed.");
RETVAL_FALSE;
}
+11 -13
View File
@@ -2,8 +2,14 @@ dnl
dnl $Id$
dnl
PHP_ARG_ENABLE(mbstr_enc_trans, whether to enable encoding translation,
[ --enable-mbstr-enc-trans Enable encoding translation], yes)
PHP_ARG_ENABLE(mbregex, whether to enable multibyte regex support,
[ --enable-mbregex Enable multibyte regex support], yes)
PHP_ARG_ENABLE(mbstring, whether to enable multibyte string support,
[ --disable-mbstring Disable multibyte string support], yes)
[ --disable-mbstring Disable multibyte string support], yes)
if test "$PHP_MBSTRING" != "no"; then
AC_DEFINE(HAVE_MBSTRING,1,[whether to have multibyte string support])
@@ -30,23 +36,15 @@ if test "$PHP_MBSTRING" != "no"; then
AC_DEFINE(HAVE_MBSTR_KR,1,[whether to have korean support])
AC_DEFINE(HAVE_MBSTR_RU,1,[whether to have russian support])
fi
PHP_NEW_EXTENSION(mbstring, mbfilter_ja.c mbfilter_cn.c mbfilter_tw.c mbfilter_kr.c mbfilter_ru.c mbfilter.c mbstring.c mbregex.c php_mbregex.c html_entities.c, $ext_shared)
PHP_NEW_EXTENSION(mbstring, mbfilter_ja.c mbfilter_cn.c mbfilter_tw.c mbfilter_kr.c mbfilter_ru.c mbfilter.c mbstring.c mbregex.c php_mbregex.c, $ext_shared)
else
PHP_MBSTR_ENC_TRANS=no
fi
PHP_ARG_ENABLE(mbregex, whether to enable multibyte regex support,
[ --disable-mbregex Disable multibyte regex support], yes)
if test "$MBREGEX" != "no" ; then
AC_DEFINE(HAVE_MBREGEX, 1, [whether to have multibyte regex support])
fi
PHP_ARG_ENABLE(mbstr_enc_trans, whether to enable encoding translation,
[ --enable-mbstr-enc-trans Enable input encoding translation], no)
if test "$PHP_MBSTR_ENC_TRANS" != "no" ; then
AC_DEFINE(MBSTR_ENC_TRANS, 1, [whether to have encoding translation])
fi
if test "$MBREGEX" != "no" ; then
AC_DEFINE(HAVE_MBREGEX, 1, [whether to have multibyte regex support])
fi
-291
View File
@@ -1,291 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 2001 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available at through the world-wide-web at |
| http://www.php.net/license/2_02.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Marcus Boerger <helly@php.net> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "php.h"
#include "php_globals.h"
#include <stdlib.h>
#include "mbfilter.h"
const mbfl_html_entity mbfl_html_entity_list[] = { /*
{"quot", 34}, DO NOT CONVERT THESE AUTOMATICALLY
{"amp", 38},
{"lt", 60},
{"gt", 62}, */
{"nbsp", 160},
{"iexcl", 161},
{"cent", 162},
{"pound", 163},
{"curren", 164},
{"yen", 165},
{"brvbar", 166},
{"sect", 167},
{"uml", 168},
{"copy", 169},
{"ordf", 170},
{"laquo", 171},
{"not", 172},
{"shy", 173},
{"reg", 174},
{"macr", 175},
{"deg", 176},
{"plusmn", 177},
{"sup2", 178},
{"sup3", 179},
{"acute", 180},
{"micro", 181},
{"para", 182},
{"middot", 183},
{"cedil", 184},
{"sup1", 185},
{"ordm", 186},
{"raquo", 187},
{"frac14", 188},
{"frac12", 189},
{"frac34", 190},
{"iquest", 191},
{"Agrave", 192},
{"Aacute", 193},
{"Acirc", 194},
{"Atilde", 195},
{"Auml", 196},
{"Aring", 197},
{"AElig", 198},
{"Ccedil", 199},
{"Egrave", 200},
{"Eacute", 201},
{"Ecirc", 202},
{"Euml", 203},
{"Igrave", 204},
{"Iacute", 205},
{"Icirc", 206},
{"Iuml", 207},
{"ETH", 208},
{"Ntilde", 209},
{"Ograve", 210},
{"Oacute", 211},
{"Ocirc", 212},
{"Otilde", 213},
{"Ouml", 214},
{"times", 215},
{"Oslash", 216},
{"Ugrave", 217},
{"Uacute", 218},
{"Ucirc", 219},
{"Uuml", 220},
{"Yacute", 221},
{"THORN", 222},
{"szlig", 223},
{"agrave", 224},
{"aacute", 225},
{"acirc", 226},
{"atilde", 227},
{"auml", 228},
{"aring", 229},
{"aelig", 230},
{"ccedil", 231},
{"egrave", 232},
{"eacute", 233},
{"ecirc", 234},
{"euml", 235},
{"igrave", 236},
{"iacute", 237},
{"icirc", 238},
{"iuml", 239},
{"eth", 240},
{"ntilde", 241},
{"ograve", 242},
{"oacute", 243},
{"ocirc", 244},
{"otilde", 245},
{"ouml", 246},
{"divide", 247},
{"oslash", 248},
{"ugrave", 249},
{"uacute", 250},
{"ucirc", 251},
{"uuml", 252},
{"yacute", 253},
{"thorn", 254},
{"yuml", 255},
{"OElig", 338},
{"oelig", 339},
{"Scaron", 352},
{"scaron", 353},
{"Yuml", 376},
{"fnof", 402},
{"circ", 710},
{"tilde", 732},
{"Alpha", 913},
{"Beta", 914},
{"Gamma", 915},
{"Delta", 916},
{"Epsilon", 917},
{"Zeta", 918},
{"Eta", 919},
{"Theta", 920},
{"Iota", 921},
{"Kappa", 922},
{"Lambda", 923},
{"Mu", 924},
{"Nu", 925},
{"Xi", 926},
{"Omicron", 927},
{"Pi", 928},
{"Rho", 929},
{"Sigma", 931},
{"Tau", 932},
{"Upsilon", 933},
{"Phi", 934},
{"Chi", 935},
{"Psi", 936},
{"Omega", 937},
{"beta", 946},
{"gamma", 947},
{"delta", 948},
{"epsilon", 949},
{"zeta", 950},
{"eta", 951},
{"theta", 952},
{"iota", 953},
{"kappa", 954},
{"lambda", 955},
{"mu", 956},
{"nu", 957},
{"xi", 958},
{"omicron", 959},
{"pi", 960},
{"rho", 961},
{"sigmaf", 962},
{"sigma", 963},
{"tau", 964},
{"upsilon", 965},
{"phi", 966},
{"chi", 967},
{"psi", 968},
{"omega", 969},
{"thetasym", 977},
{"upsih", 978},
{"piv", 982},
{"ensp", 8194},
{"emsp", 8195},
{"thinsp", 8201},
{"zwnj", 8204},
{"zwj", 8205},
{"lrm", 8206},
{"rlm", 8207},
{"ndash", 8211},
{"mdash", 8212},
{"lsquo", 8216},
{"rsquo", 8217},
{"sbquo", 8218},
{"ldquo", 8220},
{"rdquo", 8221},
{"bdquo", 8222},
{"dagger", 8224},
{"Dagger", 8225},
{"bull", 8226},
{"hellip", 8230},
{"permil", 8240},
{"prime", 8242},
{"Prime", 8243},
{"lsaquo", 8249},
{"rsaquo", 8250},
{"oline", 8254},
{"frasl", 8260},
{"euro", 8364},
{"weierp", 8472},
{"image", 8465},
{"real", 8476},
{"trade", 8482},
{"alefsym", 8501},
{"larr", 8592},
{"uarr", 8593},
{"rarr", 8594},
{"darr", 8595},
{"harr", 8596},
{"crarr", 8629},
{"lArr", 8656},
{"uArr", 8657},
{"rArr", 8658},
{"dArr", 8659},
{"hArr", 8660},
{"forall", 8704},
{"part", 8706},
{"exist", 8707},
{"empty", 8709},
{"nabla", 8711},
{"isin", 8712},
{"notin", 8713},
{"ni", 8715},
{"prod", 8719},
{"sum", 8721},
{"minus", 8722},
{"lowast", 8727},
{"radic", 8730},
{"prop", 8733},
{"infin", 8734},
{"ang", 8736},
{"and", 8743},
{"or", 8744},
{"cap", 8745},
{"cup", 8746},
{"int", 8747},
{"there4", 8756},
{"sim", 8764},
{"cong", 8773},
{"asymp", 8776},
{"ne", 8800},
{"equiv", 8801},
{"le", 8804},
{"ge", 8805},
{"sub", 8834},
{"sup", 8835},
{"nsub", 8836},
{"sube", 8838},
{"supe", 8839},
{"oplus", 8853},
{"otimes", 8855},
{"perp", 8869},
{"sdot", 8901},
{"lceil", 8968},
{"rceil", 8969},
{"lfloor", 8970},
{"rfloor", 8971},
{"lang", 9001},
{"rang", 9002},
{"loz", 9674},
{"spades", 9824},
{"clubs", 9827},
{"hearts", 9829},
{"diams", 9830},
{NULL, -1} /* mark end of table */
};
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
+240 -488
View File
File diff suppressed because it is too large. Load diff
+12 -24
View File
@@ -128,7 +128,6 @@ enum mbfl_no_encoding {
mbfl_no_encoding_byte4le,
mbfl_no_encoding_base64,
mbfl_no_encoding_uuencode,
mbfl_no_encoding_html_ent,
mbfl_no_encoding_qprint,
mbfl_no_encoding_7bit,
mbfl_no_encoding_8bit,
@@ -222,8 +221,7 @@ typedef struct _mbfl_encoding {
#define MBFL_ENCTYPE_WCS4LE 0x00000200
#define MBFL_ENCTYPE_MWC4BE 0x00000400
#define MBFL_ENCTYPE_MWC4LE 0x00000800
#define MBFL_ENCTYPE_SHFTCODE 0x00001000
#define MBFL_ENCTYPE_HTML_ENT 0x00002000
#define MBFL_ENCTYPE_SHFTCODE 0x00001000
/* wchar plane, special charactor */
#define MBFL_WCSPLANE_MASK 0xffff
@@ -279,8 +277,8 @@ void mbfl_string_clear(mbfl_string *string);
/*
* language resolver
*/
const mbfl_language * mbfl_name2language(const char *name);
const mbfl_language * mbfl_no2language(enum mbfl_no_language no_language);
mbfl_language * mbfl_name2language(const char *name);
mbfl_language * mbfl_no2language(enum mbfl_no_language no_language);
enum mbfl_no_language mbfl_name2no_language(const char *name);
const char * mbfl_no_language2name(enum mbfl_no_language no_language);
@@ -288,8 +286,8 @@ const char * mbfl_no_language2name(enum mbfl_no_language no_language);
/*
* encoding resolver
*/
const mbfl_encoding * mbfl_name2encoding(const char *name);
const mbfl_encoding * mbfl_no2encoding(enum mbfl_no_encoding no_encoding);
mbfl_encoding * mbfl_name2encoding(const char *name);
mbfl_encoding * mbfl_no2encoding(enum mbfl_no_encoding no_encoding);
enum mbfl_no_encoding mbfl_name2no_encoding(const char *name);
const char * mbfl_no_encoding2name(enum mbfl_no_encoding no_encoding);
const char * mbfl_no2preferred_mime_name(enum mbfl_no_encoding no_encoding);
@@ -350,8 +348,8 @@ struct _mbfl_convert_filter {
void *data;
int status;
int cache;
const mbfl_encoding *from;
const mbfl_encoding *to;
mbfl_encoding *from;
mbfl_encoding *to;
int illegal_mode;
int illegal_substchar;
};
@@ -392,7 +390,7 @@ struct _mbfl_identify_filter {
int status;
int flag;
int score;
const mbfl_encoding *encoding;
mbfl_encoding *encoding;
};
struct mbfl_identify_vtbl {
@@ -415,8 +413,8 @@ struct _mbfl_buffer_converter {
mbfl_convert_filter *filter1;
mbfl_convert_filter *filter2;
mbfl_memory_device device;
const mbfl_encoding *from;
const mbfl_encoding *to;
mbfl_encoding *from;
mbfl_encoding *to;
};
mbfl_buffer_converter * mbfl_buffer_converter_new(enum mbfl_no_encoding from, enum mbfl_no_encoding to, int buf_initsz TSRMLS_DC);
@@ -458,13 +456,13 @@ mbfl_convert_encoding(mbfl_string *string, mbfl_string *result, enum mbfl_no_enc
/*
* identify encoding
*/
const mbfl_encoding *
mbfl_encoding *
mbfl_identify_encoding(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz TSRMLS_DC);
const char *
mbfl_identify_encoding_name(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz TSRMLS_DC);
const enum mbfl_no_encoding
enum mbfl_no_encoding
mbfl_identify_encoding_no(mbfl_string *string, enum mbfl_no_encoding *elist, int eliztsz TSRMLS_DC);
/*
@@ -576,14 +574,4 @@ mbfl_html_numeric_entity(mbfl_string *string, mbfl_string *result, int *convmap,
mbfl_string *
mbfl_ja_jp_hantozen(mbfl_string *string, mbfl_string *result, int mode TSRMLS_DC);
/*
* HTML Entity table
*/
typedef struct _mbfl_html_entity {
char * name;
int code;
} mbfl_html_entity;
extern const mbfl_html_entity mbfl_html_entity_list[];
#endif /* MBFL_MBFILTER_H */
+7 -21
View File
@@ -297,19 +297,17 @@ int *retlen;
return retval;
}
#define rt re_syntax_table
static void
init_syntax_once()
{
register int c;
static int done = 0;
char *s = emalloc(10240), *sp;
int ch;
register int c;
static int done = 0;
if (done)
return;
memset(re_syntax_table, 0, sizeof(re_syntax_table));
memset(re_syntax_table, 0, sizeof re_syntax_table);
for (c=0; c<=0x7f; c++)
if (isalnum(c))
@@ -320,18 +318,6 @@ init_syntax_once()
if (isalnum(c))
re_syntax_table[c] = Sword2;
done = 1;
sp = s;
sprintf(sp, "static const char re_syntax_table[256] = {\n");
for(ch =0; ch < 256;) {
sp = s+strlen(s);
sprintf(sp, "\t% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,% 2d,\n", rt[ch+0], rt[ch+1], rt[ch+2], rt[ch+3], rt[ch+4], rt[ch+5], rt[ch+6], rt[ch+7], rt[ch+8], rt[ch+9], rt[ch+10], rt[ch+11], rt[ch+12], rt[ch+13], rt[ch+14], rt[ch+15]);
ch += 16;
}
sprintf(sp, "};");
php_error(E_NOTICE,"reverse_table:\n%s", s);
efree(s);
}
void
@@ -647,7 +633,7 @@ print_mbc(c)
/* Make sure we have at least N more bytes of space in buffer. */
#define GET_BUFFER_SPACE(n) \
do { \
while (b - bufp->buffer + (size_t)(n) >= (size_t)bufp->allocated) \
while (b - bufp->buffer + (n) >= bufp->allocated) \
EXTEND_BUFFER; \
} while (0)
@@ -2401,7 +2387,7 @@ re_compile_pattern(pattern, size, bufp)
GET_UNSIGNED_NUMBER(c1);
if (!ISDIGIT(c)) PATUNFETCH;
if (9 < c1 && c1 >= (unsigned int)regnum) {
if (9 < c1 && c1 >= regnum) {
/* need to get octal */
c = scan_oct(p0, 3, &numlen) & 0xff;
p = p0 + numlen;
@@ -3881,7 +3867,7 @@ re_match(bufp, string_arg, size, pos, regs)
register unsigned char *d2, *dend2;
/* Check if there's corresponding group */
if (regno >= (int)num_regs) goto fail;
if (regno >= num_regs) goto fail;
/* Check if corresponding group is still open */
if (IS_ACTIVE(reg_info[regno])) goto fail;
+77 -230
View File
@@ -95,7 +95,7 @@ static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
};
#endif
#if defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_CN) & !defined(HAVE_MBSTR_JA)
#if defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_JA)
static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
mbfl_no_encoding_ascii,
mbfl_no_encoding_utf8,
@@ -104,7 +104,7 @@ static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
};
#endif
#if defined(HAVE_MBSTR_KR) & !defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_CN) & !defined(HAVE_MBSTR_JA)
#if defined(HAVE_MBSTR_KR) & !defined(HAVE_MBSTR_JA)
static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
mbfl_no_encoding_ascii,
mbfl_no_encoding_utf8,
@@ -113,7 +113,7 @@ static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
};
#endif
#if defined(HAVE_MBSTR_RU) & !defined(HAVE_MBSTR_KR) & !defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_CN) & !defined(HAVE_MBSTR_JA)
#if defined(HAVE_MBSTR_RU) & !defined(HAVE_MBSTR_JA) & !defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_KR)
static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
mbfl_no_encoding_ascii,
mbfl_no_encoding_utf8,
@@ -123,28 +123,24 @@ static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
};
#endif
#if !defined(HAVE_MBSTR_RU) & !defined(HAVE_MBSTR_KR) & !defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_CN) & !defined(HAVE_MBSTR_JA)
static const enum mbfl_no_encoding php_mbstr_default_identify_list[] = {
mbfl_no_encoding_ascii,
mbfl_no_encoding_utf8
};
#endif
static const int php_mbstr_default_identify_list_size = sizeof(php_mbstr_default_identify_list)/sizeof(enum mbfl_no_encoding);
static const unsigned char third_and_rest_force_ref[] = { 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE_REST };
static const unsigned char second_args_force_ref[] = { 2, BYREF_NONE, BYREF_FORCE };
static unsigned char third_and_rest_force_ref[] = { 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE_REST };
static unsigned char second_args_force_ref[] = { 2, BYREF_NONE, BYREF_FORCE };
#if HAVE_MBREGEX
static const unsigned char third_argument_force_ref[] = { 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
static unsigned char third_argument_force_ref[] = { 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
#endif
#if defined(MBSTR_ENC_TRANS)
SAPI_POST_HANDLER_FUNC(php_mbstr_post_handler);
static sapi_post_entry mbstr_post_entries[] = {
{ DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data, php_mbstr_post_handler },
{ MULTIPART_CONTENT_TYPE, sizeof(MULTIPART_CONTENT_TYPE)-1, NULL, rfc1867_post_handler },
{ DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data, php_mbstr_post_handler },
{ MULTIPART_CONTENT_TYPE, sizeof(MULTIPART_CONTENT_TYPE)-1, NULL, rfc1867_post_handler },
{ NULL, 0, NULL, NULL }
};
#endif
static const struct mb_overload_def mb_ovld[] = {
static struct mb_overload_def mb_ovld[] = {
{MB_OVERLOAD_MAIL, "mail", "mb_send_mail", "mb_orig_mail"},
{MB_OVERLOAD_STRING, "strlen", "mb_strlen", "mb_orig_strlen"},
{MB_OVERLOAD_STRING, "strpos", "mb_strpos", "mb_orig_strrpos"},
@@ -166,7 +162,7 @@ struct def_mbctype_tbl {
int regex_encoding;
};
const struct def_mbctype_tbl mbctype_tbl[] = {
struct def_mbctype_tbl mbctype_tbl[] = {
{mbfl_no_encoding_ascii,MBCTYPE_ASCII},
{mbfl_no_encoding_euc_jp,MBCTYPE_EUC},
{mbfl_no_encoding_sjis,MBCTYPE_SJIS},
@@ -182,7 +178,7 @@ function_entry mbstring_functions[] = {
PHP_FE(mb_http_output, NULL)
PHP_FE(mb_detect_order, NULL)
PHP_FE(mb_substitute_character, NULL)
PHP_FE(mb_parse_str, (unsigned char *)second_args_force_ref)
PHP_FE(mb_parse_str, second_args_force_ref)
PHP_FE(mb_output_handler, NULL)
PHP_FE(mb_preferred_mime_name, NULL)
PHP_FE(mb_strlen, NULL)
@@ -197,7 +193,7 @@ function_entry mbstring_functions[] = {
PHP_FE(mb_convert_kana, NULL)
PHP_FE(mb_encode_mimeheader, NULL)
PHP_FE(mb_decode_mimeheader, NULL)
PHP_FE(mb_convert_variables, (unsigned char *)third_and_rest_force_ref)
PHP_FE(mb_convert_variables, third_and_rest_force_ref)
PHP_FE(mb_encode_numericentity, NULL)
PHP_FE(mb_decode_numericentity, NULL)
PHP_FE(mb_send_mail, NULL)
@@ -217,8 +213,8 @@ function_entry mbstring_functions[] = {
PHP_FALIAS(i18n_ja_jp_hantozen, mb_convert_kana, NULL)
#if HAVE_MBREGEX
PHP_FE(mb_regex_encoding, NULL)
PHP_FE(mb_ereg, (unsigned char *)third_argument_force_ref)
PHP_FE(mb_eregi, (unsigned char *)third_argument_force_ref)
PHP_FE(mb_ereg, third_argument_force_ref)
PHP_FE(mb_eregi, third_argument_force_ref)
PHP_FE(mb_ereg_replace, NULL)
PHP_FE(mb_eregi_replace, NULL)
PHP_FE(mb_split, NULL)
@@ -288,12 +284,7 @@ php_mbstring_parse_encoding_list(const char *value, int value_length, int **retu
return 0;
} else {
/* copy the value string for work */
if (value[0]=='"' && value[value_length-1]=='"' && value_length>2) {
tmpstr = (char *)estrndup(value+1, value_length-2);
value_length -= 2;
}
else
tmpstr = (char *)estrndup(value, value_length);
tmpstr = (char *)estrndup(value, value_length);
if (tmpstr == NULL) {
return 0;
}
@@ -464,60 +455,7 @@ php_mbregex_free_cache(mb_regex_t *pre)
#endif
/* php.ini directive handler */
static PHP_INI_MH(OnUpdate_mbstring_language)
{
enum mbfl_no_language no_language;
no_language = mbfl_name2no_language(new_value);
if (no_language != mbfl_no_language_invalid) {
switch (no_language) {
case mbfl_no_language_japanese:
MBSTRG(language) = mbfl_no_language_japanese;
MBSTRG(current_language) = mbfl_no_language_japanese;
MBSTRG(internal_encoding) = mbfl_no_encoding_euc_jp;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_jp;
break;
case mbfl_no_language_korean:
MBSTRG(language) = mbfl_no_language_korean;
MBSTRG(current_language) = mbfl_no_language_korean;
MBSTRG(internal_encoding) = mbfl_no_encoding_euc_kr;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_kr;
break;
case mbfl_no_language_simplified_chinese:
MBSTRG(language) = mbfl_no_language_simplified_chinese;
MBSTRG(current_language) = mbfl_no_language_simplified_chinese;
MBSTRG(internal_encoding) = mbfl_no_encoding_euc_cn;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_cn;
break;
case mbfl_no_language_traditional_chinese:
MBSTRG(language) = mbfl_no_language_traditional_chinese;
MBSTRG(current_language) = mbfl_no_language_traditional_chinese;
MBSTRG(internal_encoding) = mbfl_no_encoding_euc_tw;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_tw;
break;
case mbfl_no_language_russian:
MBSTRG(language) = mbfl_no_language_russian;
MBSTRG(current_language) = mbfl_no_language_russian;
MBSTRG(internal_encoding) = mbfl_no_encoding_koi8r;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_koi8r;
break;
case mbfl_no_language_english:
default:
MBSTRG(language) = mbfl_no_language_english;
MBSTRG(current_language) = mbfl_no_language_english;
MBSTRG(internal_encoding) = mbfl_no_encoding_8859_1;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_8859_1;
break;
}
} else {
return FAILURE;
}
return SUCCESS;
}
static PHP_INI_MH(OnUpdate_mbstring_detect_order)
{
int *list, size;
@@ -552,7 +490,6 @@ static PHP_INI_MH(OnUpdate_mbstring_http_input)
return SUCCESS;
}
static PHP_INI_MH(OnUpdate_mbstring_http_output)
{
enum mbfl_no_encoding no_encoding;
@@ -574,7 +511,7 @@ static PHP_INI_MH(OnUpdate_mbstring_internal_encoding)
{
enum mbfl_no_encoding no_encoding;
#if HAVE_MBREGEX
const struct def_mbctype_tbl *p = NULL;
struct def_mbctype_tbl *p = NULL;
#endif
no_encoding = mbfl_name2no_encoding(new_value);
@@ -638,7 +575,6 @@ static PHP_INI_MH(OnUpdate_mbstring_substitute_character)
/* php.ini directive registration */
PHP_INI_BEGIN()
PHP_INI_ENTRY("mbstring.language", NULL, PHP_INI_ALL, OnUpdate_mbstring_language)
PHP_INI_ENTRY("mbstring.detect_order", NULL, PHP_INI_ALL, OnUpdate_mbstring_detect_order)
PHP_INI_ENTRY("mbstring.http_input", NULL, PHP_INI_ALL, OnUpdate_mbstring_http_input)
PHP_INI_ENTRY("mbstring.http_output", NULL, PHP_INI_ALL, OnUpdate_mbstring_http_output)
@@ -648,9 +584,6 @@ PHP_INI_BEGIN()
#endif /* ZEND_MULTIBYTE */
PHP_INI_ENTRY("mbstring.substitute_character", NULL, PHP_INI_ALL, OnUpdate_mbstring_substitute_character)
STD_PHP_INI_ENTRY("mbstring.func_overload", "0", PHP_INI_SYSTEM, OnUpdateInt, func_overload, zend_mbstring_globals, mbstring_globals)
#if !defined(COMPILE_DL_MBSTRING)
STD_PHP_INI_BOOLEAN("mbstring.encoding_translation", "0", PHP_INI_ALL, OnUpdateBool, encoding_translation, zend_mbstring_globals, mbstring_globals)
#endif /* !defined(COMPILE_DL_MBSTRING) */
PHP_INI_END()
@@ -658,25 +591,20 @@ PHP_INI_END()
static void
php_mbstring_init_globals(zend_mbstring_globals *pglobals TSRMLS_DC)
{
MBSTRG(language) = mbfl_no_language_english;
MBSTRG(current_language) = mbfl_no_language_english;
MBSTRG(internal_encoding) = mbfl_no_encoding_8859_1;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_8859_1;
#if defined(HAVE_MBSTR_CN) & !defined(HAVE_MBSTR_JA)
MBSTRG(language) = mbfl_no_language_simplified_chinese;
MBSTRG(current_language) = mbfl_no_language_simplified_chinese;
MBSTRG(language) = mbfl_no_language_chinese;
MBSTRG(current_language) = mbfl_no_language_chinese;
MBSTRG(internal_encoding) = mbfl_no_encoding_euc_cn;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_cn;
#endif
#if defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_JA)
MBSTRG(language) = mbfl_no_language_traditional_chinese;
MBSTRG(current_language) = mbfl_no_language_traditional_chinese;
MBSTRG(language) = mbfl_no_language_chinese;
MBSTRG(current_language) = mbfl_no_language_chinese;
MBSTRG(internal_encoding) = mbfl_no_encoding_euc_tw;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_tw;
#endif
#if defined(HAVE_MBSTR_KR) & !defined(HAVE_MBSTR_JA)
MBSTRG(language) = mbfl_no_language_korean;
MBSTRG(language) = mbfl_no_language_chinese;
MBSTRG(current_language) = mbfl_no_language_korean;
MBSTRG(internal_encoding) = mbfl_no_encoding_euc_kr;
MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_kr;
@@ -709,7 +637,6 @@ php_mbstring_init_globals(zend_mbstring_globals *pglobals TSRMLS_DC)
MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
MBSTRG(current_filter_illegal_substchar) = 0x3f; /* '?' */
MBSTRG(func_overload) = 0;
MBSTRG(encoding_translation) = 0;
pglobals->outconv = NULL;
#if HAVE_MBREGEX
MBSTRG(default_mbctype) = MBCTYPE_EUC;
@@ -733,12 +660,10 @@ PHP_MINIT_FUNCTION(mbstring)
REGISTER_INI_ENTRIES();
if(MBSTRG(encoding_translation)) {
sapi_unregister_post_entry(mbstr_post_entries);
sapi_register_post_entries(mbstr_post_entries);
sapi_register_treat_data(mbstr_treat_data);
}
#if defined(MBSTR_ENC_TRANS)
sapi_unregister_post_entry(mbstr_post_entries);
sapi_register_post_entries(mbstr_post_entries);
#endif
REGISTER_LONG_CONSTANT("MB_OVERLOAD_MAIL", MB_OVERLOAD_MAIL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MB_OVERLOAD_STRING", MB_OVERLOAD_STRING, CONST_CS | CONST_PERSISTENT);
@@ -764,10 +689,6 @@ PHP_MSHUTDOWN_FUNCTION(mbstring)
free(MBSTRG(detect_order_list));
}
if(MBSTRG(encoding_translation)) {
sapi_register_treat_data(php_default_treat_data);
}
#if HAVE_MBREGEX
zend_hash_destroy(&MBSTRG(ht_rc));
#endif
@@ -780,7 +701,7 @@ PHP_RINIT_FUNCTION(mbstring)
{
int n, *list=NULL, *entry;
zend_function *func, *orig;
const struct mb_overload_def *p;
struct mb_overload_def *p;
MBSTRG(current_language) = MBSTRG(language);
MBSTRG(current_internal_encoding) = MBSTRG(internal_encoding);
@@ -818,12 +739,12 @@ PHP_RINIT_FUNCTION(mbstring)
if (zend_hash_find(EG(function_table), p->orig_func,
strlen(p->orig_func)+1, (void **)&orig) != SUCCESS) {
php_error(E_ERROR, "%s() mbstring couldn't find function %s.", get_active_function_name(TSRMLS_C), p->orig_func);
php_error(E_ERROR, "mbstring couldn't find function %s.", p->orig_func);
}
zend_hash_add(EG(function_table), p->save_func, strlen(p->save_func)+1, orig, sizeof(zend_function), NULL);
if (zend_hash_update(EG(function_table), p->orig_func, strlen(p->orig_func)+1,
func, sizeof(zend_function), NULL) == FAILURE){
php_error(E_ERROR, "%s() mbstring couldn't replace function %s.", get_active_function_name(TSRMLS_C), p->orig_func);
php_error(E_ERROR, "mbstring couldn't replace function %s.", p->orig_func);
}
}
p++;
@@ -836,7 +757,7 @@ PHP_RINIT_FUNCTION(mbstring)
PHP_RSHUTDOWN_FUNCTION(mbstring)
{
const struct mb_overload_def *p;
struct mb_overload_def *p;
zend_function *orig;
if (MBSTRG(current_detect_order_list) != NULL) {
@@ -911,9 +832,9 @@ PHP_MINFO_FUNCTION(mbstring)
#if defined(HAVE_MBSTR_KR)
php_info_print_table_row(2, "korean support", "enabled");
#endif
if(MBSTRG(encoding_translation)) {
php_info_print_table_row(2, "http input encoding translation", "enabled");
}
#if defined(MBSTR_ENC_TRANS)
php_info_print_table_row(2, "http input encoding translation", "enabled");
#endif
#if defined(HAVE_MBREGEX)
php_info_print_table_row(2, "multibyte (japanese) regex support", "enabled");
#endif
@@ -1000,7 +921,7 @@ PHP_FUNCTION(mb_http_input)
{
pval **arg1;
int result=0, retname, n, *entry;
char *name, *list, *temp;
char *name;
retname = 1;
if (ZEND_NUM_ARGS() == 0) {
@@ -1041,32 +962,6 @@ PHP_FUNCTION(mb_http_input)
}
retname = 0;
break;
case 'L':
case 'l':
entry = MBSTRG(http_input_list);
n = MBSTRG(http_input_list_size);
list = NULL;
while (n > 0) {
name = (char *)mbfl_no_encoding2name(*entry);
if (name) {
if (list) {
temp = list;
spprintf(&list, 0, "%s,%s", temp, name);
efree(temp);
if (!list)
break;
} else {
list = estrdup(name);
}
}
entry++;
n--;
}
if (!list)
RETURN_FALSE;
RETVAL_STRING(list, 0);
retname = 0;
break;
default:
result = MBSTRG(http_input_identify);
break;
@@ -1265,10 +1160,11 @@ PHP_FUNCTION(mb_preferred_mime_name)
}
/* }}} */
#if defined(MBSTR_ENC_TRANS)
static void
php_mbstr_encoding_handler(zval *arg, char *res, char *separator TSRMLS_DC)
{
char *var, *val, *s1, *s2;
char *var, *val;
char *strtok_buf = NULL, **val_list;
zval *array_ptr = (zval *) arg;
int n, num, val_len, *len_list, *elist, elistsz;
@@ -1280,23 +1176,19 @@ php_mbstr_encoding_handler(zval *arg, char *res, char *separator TSRMLS_DC)
mbfl_string_init_set(&string, MBSTRG(current_language), MBSTRG(current_internal_encoding));
mbfl_string_init_set(&resvar, MBSTRG(current_language), MBSTRG(current_internal_encoding));
mbfl_string_init_set(&resval, MBSTRG(current_language), MBSTRG(current_internal_encoding));
if (!res || *res == '\0') {
return;
/* count the variables contained in the query */
num = 0;
var = res;
n = strlen(res);
while(n > 0) {
if (*var == '=') {
num++;
}
var++;
n--;
}
/* count the variables(separators) contained in the "res".
* separator may contain multiple separator chars.
* separaror chars are set in php.ini (arg_separator.input)
*/
num = 1;
for (s1=res; *s1 != '\0'; s1++)
for (s2=separator; *s2 != '\0'; s2++)
if (*s1 == *s2)
num++;
num *= 2; /* need space for variable name and value */
num *= 2;
val_list = (char **)ecalloc(num, sizeof(char *));
len_list = (int *)ecalloc(num, sizeof(int));
@@ -1304,24 +1196,28 @@ php_mbstr_encoding_handler(zval *arg, char *res, char *separator TSRMLS_DC)
n = 0;
strtok_buf = NULL;
var = php_strtok_r(res, separator, &strtok_buf);
while (var) {
while (var && n < num) {
val = strchr(var, '=');
val_list[n] = var;
len_list[n] = php_url_decode(var, strlen(var));
n++;
if (val) { /* have a value */
*val++ = '\0';
val_list[n] = var;
len_list[n] = php_url_decode(var, strlen(var));
n++;
val_list[n] = val;
len_list[n] = php_url_decode(val, strlen(val));
} else {
val_list[n] = "";
val_list[n] = var;
len_list[n] = php_url_decode(var, strlen(var));
n++;
val_list[n] = NULL;
len_list[n] = 0;
}
n++;
var = php_strtok_r(NULL, separator, &strtok_buf);
}
num = n; /* make sure to process initilized vars only */
}
num = n;
/* initialize converter */
to_encoding = MBSTRG(current_internal_encoding);
elist = MBSTRG(http_input_list);
@@ -1407,6 +1303,7 @@ php_mbstr_encoding_handler(zval *arg, char *res, char *separator TSRMLS_DC)
}
#if defined(MBSTR_ENC_TRANS)
SAPI_POST_HANDLER_FUNC(php_mbstr_post_handler)
{
MBSTRG(http_input_identify_post) = mbfl_no_encoding_invalid;
@@ -1417,39 +1314,10 @@ SAPI_POST_HANDLER_FUNC(php_mbstr_post_handler)
MBSTRG(http_input_identify_post) = MBSTRG(http_input_identify);
}
}
#define IS_SJIS1(c) ((((c)>=0x81 && (c)<=0x9f) || ((c)>=0xe0 && (c)<=0xf5)) ? 1 : 0)
#define IS_SJIS2(c) ((((c)>=0x40 && (c)<=0x7e) || ((c)>=0x80 && (c)<=0xfc)) ? 1 : 0)
char *mbstr_strrchr(const char *s, char c TSRMLS_DC){
unsigned char *p = (unsigned char *)s, *last = NULL;
while(*p++) {
if (*p == c) {
last = p;
}
if (*p == '\0'){
break;
}
if (MBSTRG(current_language) == mbfl_no_language_japanese
&& IS_SJIS1(*p) && IS_SJIS2(*(p+1))) {
p++;
}
}
return last;
}
int mbstr_is_mb_leadbyte(const char *s TSRMLS_DC){
unsigned char *p = (unsigned char *)s;
if (MBSTRG(current_language) == mbfl_no_language_japanese
&& IS_SJIS1(*p) && IS_SJIS2(*(p+1))){
return 1;
}
return 0;
}
#endif
/* http input processing */
SAPI_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data)
void mbstr_treat_data(int arg, char *str, zval* destArray TSRMLS_DC)
{
char *res = NULL, *separator=NULL;
const char *c_var;
@@ -1563,6 +1431,7 @@ SAPI_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data)
efree(res);
}
}
#endif
/* {{{ proto bool mb_parse_str(string encoded_string [, array result])
Parses GET/POST/COOKIE data and sets global variables */
@@ -1761,12 +1630,10 @@ PHP_FUNCTION(mb_output_handler)
size_t arg_string_len;
long arg_status;
mbfl_string string, result;
const char *charset;
const char *mimetype, *charset;
char *p;
enum mbfl_no_encoding encoding;
int last_feed, len;
unsigned char send_text_mimetype = 0;
char *s, *mimetype = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl", &arg_string, &arg_string_len, &arg_status) == FAILURE) {
WRONG_PARAM_COUNT;
@@ -1784,22 +1651,9 @@ PHP_FUNCTION(mb_output_handler)
if (encoding == mbfl_no_encoding_pass) {
RETURN_STRINGL(arg_string, arg_string_len, 1);
}
/* analyze mime type */
if (SG(sapi_headers).mimetype &&
strncmp(SG(sapi_headers).mimetype, "text/", 5) == 0) {
if ((s = strchr(SG(sapi_headers).mimetype,';')) == NULL){
mimetype = estrdup(SG(sapi_headers).mimetype);
} else {
mimetype = estrndup(SG(sapi_headers).mimetype,s-SG(sapi_headers).mimetype);
}
send_text_mimetype = 1;
} else if (SG(sapi_headers).send_default_content_type) {
mimetype = SG(default_mimetype) ? SG(default_mimetype) : SAPI_DEFAULT_MIMETYPE;
}
/* if content-type is not yet set, set it and activate the converter */
if (SG(sapi_headers).send_default_content_type || send_text_mimetype) {
if (SG(sapi_headers).send_default_content_type ) {
mimetype = SG(default_mimetype) ? SG(default_mimetype) : SAPI_DEFAULT_MIMETYPE;
charset = mbfl_no2preferred_mime_name(encoding);
if (charset) {
len = (sizeof ("Content-Type:")-1) + strlen(mimetype) + (sizeof (";charset=")-1) + strlen(charset) + 1;
@@ -1813,9 +1667,6 @@ PHP_FUNCTION(mb_output_handler)
}
/* activate the converter */
MBSTRG(outconv) = mbfl_buffer_converter_new(MBSTRG(current_internal_encoding), encoding, 0 TSRMLS_CC);
if (send_text_mimetype){
efree(mimetype);
}
}
}
@@ -2941,8 +2792,8 @@ PHP_FUNCTION(mb_convert_variables)
}
}
} else if (Z_TYPE_PP(var) == IS_STRING) {
string.val = Z_STRVAL_PP(var);
string.len = Z_STRLEN_PP(var);
string.val = Z_STRVAL_PP(args[n]);
string.len = Z_STRLEN_PP(args[n]);
if (mbfl_encoding_detector_feed(identd, &string TSRMLS_CC)) {
goto detect_end; /* complete detecting */
}
@@ -3371,10 +3222,6 @@ PHP_FUNCTION(mb_get_info)
}
/* }}} */
PHPAPI int mbstr_encoding_translation(TSRMLS_D)
{
return MBSTRG(encoding_translation);
}
#ifdef ZEND_MULTIBYTE
PHPAPI int php_mbstring_set_zend_encoding(TSRMLS_D)
@@ -3420,13 +3267,13 @@ PHPAPI int php_mbstring_set_zend_encoding(TSRMLS_D)
encoding_converter = NULL;
multibyte_oddlen = php_mbstring_oddlen;
if(MBSTRG(encoding_translation)) {
/* notify internal encoding to Zend Engine */
name = (char*)mbfl_no_encoding2name(MBSTRG(current_internal_encoding));
zend_multibyte_set_internal_encoding(name, strlen(name) TSRMLS_CC);
#if defined(MBSTR_ENC_TRANS)
/* notify internal encoding to Zend Engine */
name = (char*)mbfl_no_encoding2name(MBSTRG(current_internal_encoding));
zend_multibyte_set_internal_encoding(name, strlen(name) TSRMLS_CC);
encoding_converter = php_mbstring_encoding_converter;
}
encoding_converter = php_mbstring_encoding_converter;
#endif /* defined(MBSTR_ENC_TRANS) */
zend_multibyte_set_functions(encoding_detector, encoding_converter,
multibyte_oddlen TSRMLS_CC);
+1 -14
View File
@@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MBSTRING_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /D "NDEBUG" /D ZEND_DEBUG=0 /D ZTS=1 /D "COMPILE_DL_MBSTRING" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /D HAVE_MBSTRING=1 /D "MBSTR_ENC_TRANS" /FR /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /D "NDEBUG" /D ZEND_DEBUG=0 /D ZTS=1 /D "COMPILE_DL_MBSTRING" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /D HAVE_MBSTRING=1 /D "MBSTR_ENC_TRANS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "NDEBUG"
@@ -108,10 +108,6 @@ SOURCE=.\mbfilter_kr.c
# End Source File
# Begin Source File
SOURCE=.\mbfilter_ru.c
# End Source File
# Begin Source File
SOURCE=.\mbfilter_tw.c
# End Source File
# Begin Source File
@@ -126,10 +122,6 @@ SOURCE=.\mbstring.c
SOURCE=.\php_mbregex.c
# End Source File
# Begin Source File
SOURCE=.\html_entities.c
# End Source File
# End Group
# Begin Group "Header Files"
@@ -156,10 +148,6 @@ SOURCE=.\mbfilter_kr.h
# End Source File
# Begin Source File
SOURCE=.\mbfilter_ru.h
# End Source File
# Begin Source File
SOURCE=.\mbfilter_tw.h
# End Source File
# Begin Source File
@@ -187,6 +175,5 @@ SOURCE=.\unicode_table_kr.h
SOURCE=.\unicode_table_tw.h
# End Source File
# End Group
# End Target
# End Project
-9
View File
@@ -56,7 +56,6 @@
#if HAVE_MBSTRING
#include "mbfilter.h"
#include "SAPI.h"
#define PHP_MBSTRING_API 20020405
@@ -125,10 +124,6 @@ PHP_FUNCTION(mb_ereg_search_setpos);
int php_mbregex_name2mbctype(const char *pname);
#endif
char *mbstr_strrchr(const char *s, char c TSRMLS_DC);
int mbstr_is_mb_leadbyte(const char *s TSRMLS_DC);
PHPAPI int mbstr_encoding_translation(TSRMLS_D);
ZEND_BEGIN_MODULE_GLOBALS(mbstring)
int language;
int current_language;
@@ -156,7 +151,6 @@ ZEND_BEGIN_MODULE_GLOBALS(mbstring)
int current_filter_illegal_mode;
int current_filter_illegal_substchar;
long func_overload;
int encoding_translation;
mbfl_buffer_converter *outconv;
#if HAVE_MBREGEX
int default_mbctype;
@@ -197,9 +191,6 @@ int php_mbstring_encoding_converter(char **to, int *to_length, char *from,
int php_mbstring_oddlen(char *string, int length, const char *encoding TSRMLS_DC);
#endif /* ZEND_MULTIBYTE */
SAPI_POST_HANDLER_FUNC(php_mbstr_post_handler);
SAPI_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data);
#else /* HAVE_MBSTRING */
#define mbstring_module_ptr NULL
-33
View File
@@ -1,33 +0,0 @@
--TEST--
HTML input/output
--SKIPIF--
<?php
ini_set('include_path','.');
include('skipif.inc');
?>
--INI--
arg_separator.input="x"
error_reporting=0
mbstring.http_input=HTML-ENTITIES
mbstring.internal_encoding=UTF8
mbstring.http_output=HTML-ENTITIES
mbstring.encoding_translation=On
--FILE--
<?php
// enable output encoding through output handler
ob_start("mb_output_handler");
// &#64... are must be decoded on input these are not reencoded on output.
// If you see &#64;&#65;&#66; on output this means input encoding fails.
// If you do not see &auml;... on output this means output encoding fails.
// Using UTF-8 internally allows to encode/decode ALL characters.
// &128... will stay as they are since their character codes are above 127
// and they do not have a named entity representaion.
?>
<?php echo mb_http_input('l').'>'.mb_internal_encoding().'>'.mb_http_output();?>
<?php mb_parse_str("test=&&;&&#64;&#65;&#66;&#128;&#129;&#130;&auml;&ouml;&uuml;&euro;&lang;&rang;");
echo "test='$test'";
?>
--EXPECT--
HTML-ENTITIES>UTF-8>HTML-ENTITIES
test='&&;&@AB&#128;&#129;&#130;&auml;&ouml;&uuml;&euro;&lang;&rang;'
+54 -52
View File
@@ -147,7 +147,7 @@ ZEND_GET_MODULE(mcrypt)
#define MCRYPT_CHECK_TD_CPY \
if(td < 0) { \
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), MCRYPT_FAILED); \
php_error(E_WARNING, MCRYPT_FAILED); \
RETURN_FALSE; \
} \
ndata = ecalloc(nr, bsize); \
@@ -156,7 +156,7 @@ ZEND_GET_MODULE(mcrypt)
#define MCRYPT_CHECK_IV \
convert_to_string_ex(iv); \
if(Z_STRLEN_PP(iv) != bsize) { \
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), MCRYPT_IV_WRONG_SIZE); \
php_error(E_WARNING, MCRYPT_IV_WRONG_SIZE); \
RETURN_FALSE; \
}
@@ -167,7 +167,7 @@ ZEND_GET_MODULE(mcrypt)
mdecrypt_##x(td, ndata, nsize); \
end_mcrypt_##x(td)
#define MCRYPT_IV_WRONG_SIZE "%s(): The IV parameter must be as long as the blocksize"
#define MCRYPT_IV_WRONG_SIZE "The IV parameter must be as long as the blocksize"
#if HAVE_LIBMCRYPT24
#define MCRYPT_ENCRYPT 0
@@ -219,9 +219,9 @@ ZEND_GET_MODULE(mcrypt)
#endif
#if HAVE_LIBMCRYPT22
#define MCRYPT_FAILED "%s(): Initialization failed"
#define MCRYPT_FAILED "mcrypt initialization failed"
#else
#define MCRYPT_OPEN_MODULE_FAILED "%s(): Module initialization failed"
#define MCRYPT_OPEN_MODULE_FAILED "mcrypt module initialization failed"
#endif
#if HAVE_LIBMCRYPT22
@@ -391,7 +391,7 @@ PHP_MINFO_FUNCTION(mcrypt)
php_info_print_table_row(2, "version", "2.2.x");
#endif
#if HAVE_LIBMCRYPT24
php_info_print_table_row(2, "version", ">= 2.4.x");
php_info_print_table_row(2, "version", "2.4.x");
php_info_print_table_row(2, "Supported ciphers", tmp1.c);
php_info_print_table_row(2, "Supported modes", tmp2.c);
smart_str_free (&tmp1);
@@ -414,25 +414,26 @@ typedef enum {
Opens the module of the algorithm and the mode to be used */
PHP_FUNCTION(mcrypt_module_open)
{
char *cipher, *cipher_dir;
char *mode, *mode_dir;
int cipher_len, cipher_dir_len;
int mode_len, mode_dir_len;
zval **cipher, **cipher_directory, **mode, **mode_directory;
MCRYPT td;
if (zend_parse_parameters (ZEND_NUM_ARGS() TSRMLS_CC, "ssss",
&cipher, &cipher_len, &cipher_dir, &cipher_dir_len,
&mode, &mode_len, &mode_dir, &mode_dir_len)) {
return;
}
int argc;
argc = ZEND_NUM_ARGS();
MCRYPT_CHECK_PARAM_COUNT (4,4)
td = mcrypt_module_open (cipher,
cipher_dir_len > 0 ? cipher_dir : MCG(algorithms_dir),
mode,
mode_dir_len > 0 ? mode_dir : MCG(modes_dir));
zend_get_parameters_ex(4, &cipher, &cipher_directory, &mode, &mode_directory);
convert_to_string_ex(cipher);
convert_to_string_ex(cipher_directory);
convert_to_string_ex(mode);
convert_to_string_ex(mode_directory);
td = mcrypt_module_open (Z_STRVAL_PP(cipher),
Z_STRLEN_PP(cipher_directory) > 0 ? Z_STRVAL_PP(cipher_directory) : MCG(algorithms_dir),
Z_STRVAL_PP(mode),
Z_STRLEN_PP(mode_directory) > 0 ? Z_STRVAL_PP(mode_directory) : MCG(modes_dir));
if (td == MCRYPT_FAILED) {
php_error (E_WARNING, "%s(): Could not open encryption module", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "could not open encryption module");
RETURN_FALSE;
} else {
ZEND_REGISTER_RESOURCE (return_value, td, le_mcrypt);
@@ -466,7 +467,7 @@ PHP_FUNCTION(mcrypt_generic_init)
iv_size = mcrypt_enc_get_iv_size (td);
if (Z_STRLEN_PP(key) == 0) {
php_error (E_WARNING, "%s(): Key size is 0", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "key size is 0");
}
key_s = emalloc (Z_STRLEN_PP(key));
@@ -476,9 +477,9 @@ PHP_FUNCTION(mcrypt_generic_init)
memset (iv_s, 0, iv_size + 1);
if (Z_STRLEN_PP(key) > max_key_size) {
sprintf (dummy, "Key size too large; supplied length: %d, max: %d",
sprintf (dummy, "key size too large; supplied length: %d, max: %d",
Z_STRLEN_PP(key), max_key_size);
php_error (E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), dummy);
php_error (E_WARNING, dummy);
key_size = max_key_size;
} else {
key_size = Z_STRLEN_PP(key);
@@ -486,9 +487,9 @@ PHP_FUNCTION(mcrypt_generic_init)
memcpy (key_s, Z_STRVAL_PP(key), Z_STRLEN_PP(key));
if (Z_STRLEN_PP(iv) != iv_size) {
sprintf (dummy, "Iv size incorrect; supplied length: %d, needed: %d",
sprintf (dummy, "iv size incorrect; supplied length: %d, needed: %d",
Z_STRLEN_PP(iv), iv_size);
php_error (E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), dummy);
php_error (E_WARNING, dummy);
}
memcpy (iv_s, Z_STRVAL_PP(iv), iv_size);
@@ -500,14 +501,14 @@ PHP_FUNCTION(mcrypt_generic_init)
zend_list_delete (Z_LVAL_PP(mcryptind));
switch (result) {
case -3:
php_error (E_WARNING, "%s(): Key length incorrect", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "mcrypt_generic_init: Key length incorrect");
break;
case -4:
php_error (E_WARNING, "%s(): Memory allocation error", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "mcrypt_generic_init: Memory allocation error");
break;
case -1:
default:
php_error (E_WARNING, "%s(): Unknown error", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "mcrypt_generic_init: Unknown error");
break;
}
}
@@ -615,7 +616,7 @@ PHP_FUNCTION(mcrypt_enc_get_supported_key_sizes)
key_sizes = mcrypt_enc_get_supported_key_sizes (td, &count);
if (array_init(return_value) == FAILURE) {
php_error(E_ERROR, "%s(): Unable to initialize array", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Unable to initialize array");
return;
}
if (count != 0) {
@@ -666,12 +667,12 @@ PHP_FUNCTION(mcrypt_generic_end)
MCRYPT_GET_TD_ARG
#if HAVE_MCRYPT_GENERIC_DEINIT
php_error(E_NOTICE, "%s(): This function is deprecated, please use mcrypt_generic_deinit()", get_active_function_name(TSRMLS_C));
php_error(E_NOTICE, "mcrypt_generic_end is deprecated, please use mcrypt_generic_deinit");
if (mcrypt_generic_deinit (td) < 0) {
#else
if (mcrypt_generic_end (td) < 0) {
#endif
php_error (E_WARNING, "%s(): Could not terminate encryption specifier", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "could not terminate encryption specifier");
RETURN_FALSE
}
RETURN_TRUE
@@ -691,7 +692,7 @@ PHP_FUNCTION(mcrypt_generic_deinit)
MCRYPT_GET_TD_ARG
if (mcrypt_generic_deinit (td) < 0) {
php_error (E_WARNING, "%s(): Could not terminate encryption specifier", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "could not terminate encryption specifier");
RETURN_FALSE
}
RETURN_TRUE
@@ -836,7 +837,8 @@ PHP_FUNCTION(mcrypt_module_self_test)
if (mcrypt_module_self_test (module, dir) == 0) {
RETURN_TRUE;
} else {
}
else {
RETURN_FALSE;
}
}
@@ -914,7 +916,7 @@ PHP_FUNCTION(mcrypt_module_get_algo_key_size)
This function decrypts the crypttext */
PHP_FUNCTION(mcrypt_module_get_supported_key_sizes)
{
int i, count;
int argc, i, count;
int *key_sizes;
MCRYPT_GET_MODE_DIR_ARGS(algorithms_dir)
@@ -922,7 +924,7 @@ PHP_FUNCTION(mcrypt_module_get_supported_key_sizes)
key_sizes = mcrypt_module_get_algo_supported_key_sizes (module, dir, &count);
if (array_init(return_value) == FAILURE) {
php_error(E_ERROR, "%s(): Unable to initialize array", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Unable to initialize array");
return;
}
if (count != 0) {
@@ -965,11 +967,11 @@ PHP_FUNCTION(mcrypt_list_algorithms)
modules = mcrypt_list_algorithms (lib_dir_s, &count);
if (array_init(return_value) == FAILURE) {
php_error(E_ERROR, "%s(): Unable to initialize array", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Unable to initialize array");
return;
}
if (count == 0) {
php_error (E_WARNING, "%s(): No algorithms found in module dir", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "No algorithms found in module dir");
}
for (i = 0; i < count; i++) {
add_index_string(return_value, i, modules[i], 1);
@@ -1009,11 +1011,11 @@ PHP_FUNCTION(mcrypt_list_modes)
modules = mcrypt_list_modes (lib_dir_s, &count);
if (array_init(return_value) == FAILURE) {
php_error(E_ERROR, "%s(): Unable to initialize array", get_active_function_name(TSRMLS_C));
php_error(E_ERROR, "Unable to initialize array");
return;
}
if (count == 0) {
php_error (E_WARNING, "%s(): No modes found in module dir", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "No modes found in module dir");
}
for (i = 0; i < count; i++) {
add_index_string(return_value, i, modules[i], 1);
@@ -1056,7 +1058,7 @@ PHP_FUNCTION(mcrypt_get_key_size)
}
else
{
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED, get_active_function_name(TSRMLS_C));
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED);
RETVAL_LONG(0);
}
}
@@ -1096,7 +1098,7 @@ PHP_FUNCTION(mcrypt_get_block_size)
}
else
{
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED, get_active_function_name(TSRMLS_C));
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED);
RETVAL_LONG(0);
}
}
@@ -1136,7 +1138,7 @@ PHP_FUNCTION(mcrypt_get_iv_size)
}
else
{
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED, get_active_function_name(TSRMLS_C));
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED);
RETURN_FALSE;
}
}
@@ -1190,7 +1192,7 @@ PHP_FUNCTION(mcrypt_get_cipher_name)
}
else
{
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED, get_active_function_name(TSRMLS_C));
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED);
RETURN_FALSE;
}
}
@@ -1217,13 +1219,13 @@ static void php_mcrypt_do_crypt (char* cipher, zval **key, zval **data, char *mo
mode,
module_dir_string);
if (td == MCRYPT_FAILED) {
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED, get_active_function_name(TSRMLS_C));
php_error (E_WARNING, MCRYPT_OPEN_MODULE_FAILED);
RETURN_FALSE;
}
/* Checking for key-length */
max_key_length = mcrypt_enc_get_key_size (td);
if (Z_STRLEN_PP(key) > max_key_length) {
php_error (E_WARNING, "%s(): Size of key is too large for this algorithm", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "size of key is too large for this algorithm");
}
key_length_sizes = mcrypt_enc_get_supported_key_sizes (td, &count);
if (count == 0 && key_length_sizes == NULL) { /* all lengths 1 - k_l_s = OK */
@@ -1258,7 +1260,7 @@ static void php_mcrypt_do_crypt (char* cipher, zval **key, zval **data, char *mo
iv_size = mcrypt_enc_get_iv_size (td);
if (argc == 5) {
if (iv_size != Z_STRLEN_PP(iv)) {
php_error (E_WARNING, MCRYPT_IV_WRONG_SIZE, get_active_function_name(TSRMLS_C));
php_error (E_WARNING, MCRYPT_IV_WRONG_SIZE);
}
else {
@@ -1269,7 +1271,7 @@ static void php_mcrypt_do_crypt (char* cipher, zval **key, zval **data, char *mo
else if (argc == 4)
{
if (iv_size != 0) {
php_error (E_WARNING, "%s(): Attempt to use an empty IV, which is NOT recommend", get_active_function_name(TSRMLS_C));
php_error (E_WARNING, "attempt to use an empty IV, which is NOT recommend");
iv_s = emalloc (iv_size + 1);
memset (iv_s, 0, iv_size + 1);
}
@@ -1291,7 +1293,7 @@ static void php_mcrypt_do_crypt (char* cipher, zval **key, zval **data, char *mo
}
if (mcrypt_generic_init (td, key_s, use_key_length, iv_s) < 0) {
php_error (E_ERROR, "%s(): Mcrypt initialisation failed", get_active_function_name(TSRMLS_C));
php_error (E_ERROR, "generic_init failed");
}
if (dencrypt == MCRYPT_ENCRYPT)
mcrypt_generic (td, data_s, data_size);
@@ -1437,7 +1439,7 @@ PHP_FUNCTION(mcrypt_create_iv)
}
if (size <= 0) {
php_error(E_WARNING, "%s(): Can not create an IV with size 0 or smaller", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "can not create an IV with size 0 or smaller");
RETURN_FALSE;
}
@@ -1451,7 +1453,7 @@ PHP_FUNCTION(mcrypt_create_iv)
O_RDONLY);
if (fd < 0) {
efree(iv);
php_error(E_WARNING, "%s(): Cannot open source device", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "cannot open source device");
RETURN_FALSE;
}
while (read_bytes < size) {
@@ -1463,7 +1465,7 @@ PHP_FUNCTION(mcrypt_create_iv)
n = read_bytes;
close(fd);
if (n < size) {
php_error(E_WARNING, "%s(): Could not gather sufficient random data", get_active_function_name(TSRMLS_C));
php_error(E_WARNING, "could not gather sufficient random data");
RETURN_FALSE;
}
} else {
+12 -390
View 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 Deallocation */
static int mcve_init; /* For Safe Memory Dealocation */
/* }}} */
/* {{{ extension definition structures */
@@ -48,17 +48,7 @@ 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)
@@ -154,95 +144,8 @@ 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);
@@ -299,6 +202,12 @@ 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();
}
@@ -352,7 +261,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);
@@ -364,28 +273,6 @@ 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)
@@ -456,6 +343,7 @@ 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;
@@ -473,6 +361,9 @@ 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
}
/* }}} */
@@ -500,99 +391,6 @@ 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)
@@ -613,30 +411,6 @@ 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)
@@ -657,158 +431,6 @@ 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)
+2 -11
View File
@@ -1,6 +1,7 @@
/*
* basic mcve php module
*
* $Id$
*/
#ifndef _PHP_MCVE_H
@@ -17,7 +18,7 @@ extern zend_module_entry php_mcve_module_entry;
//#endif
#define PHP_MCVE_VERSION "3.0"
#define PHP_MCVE_VERSION "1.0"
#define MCVE_CONST (CONST_CS | CONST_PERSISTENT)
@@ -32,17 +33,7 @@ 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);
+4 -16
View File
@@ -41,24 +41,24 @@ function_entry mhash_functions[] = {
{NULL, NULL, NULL}
};
static PHP_MINIT_FUNCTION(mhash);
zend_module_entry mhash_module_entry = {
STANDARD_MODULE_HEADER,
"mhash",
mhash_functions,
PHP_MINIT(mhash), NULL,
NULL, NULL,
PHP_MINFO(mhash),
NO_VERSION_YET,
NULL,
NO_VERSION_YET,
STANDARD_MODULE_PROPERTIES,
};
#ifdef COMPILE_DL_MHASH
ZEND_GET_MODULE(mhash)
#endif
#define MHASH_FAILED_MSG "mhash initialization failed"
#define MHASH_KEYGEN_FAILED_MSG "mhash key generation failed"
static PHP_MINIT_FUNCTION(mhash)
{
int i;
@@ -79,18 +79,6 @@ static PHP_MINIT_FUNCTION(mhash)
return SUCCESS;
}
PHP_MINFO_FUNCTION(mhash)
{
char version[32];
sprintf(version,"%d", MHASH_API_VERSION);
php_info_print_table_start();
php_info_print_table_row(2, "MHASH support", "Enabled");
php_info_print_table_row(2, "MHASH API Version", version);
php_info_print_table_end();
}
/* {{{ proto int mhash_count(void)
Gets the number of available hashes */
PHP_FUNCTION(mhash_count)
-2
View File
@@ -12,8 +12,6 @@
extern zend_module_entry mhash_module_entry;
#define mhash_module_ptr &mhash_module_entry
static PHP_MINIT_FUNCTION(mhash);
PHP_MINFO_FUNCTION(mhash);
PHP_FUNCTION(mhash_get_block_size);
PHP_FUNCTION(mhash_get_hash_name);
PHP_FUNCTION(mhash_count);
-1
View File
@@ -1,3 +1,2 @@
- general cleanup
- support for content-encoding / compressed files
- nuke all TSRMLS_FETCH() calls where possible
+6 -6
View File
@@ -182,10 +182,10 @@ static int mcheck(union VALUETYPE *, struct magic *);
static void mprint(union VALUETYPE *, struct magic *);
static int mconvert(union VALUETYPE *, struct magic *);
static int magic_rsl_get(char **, char **);
static int magic_process(char * TSRMLS_DC);
static int magic_process(char *);
static long from_oct(int, char *);
static int fsmagic(char *fn TSRMLS_DC);
static int fsmagic(char *fn);
#if HAVE_ZLIB
@@ -305,7 +305,7 @@ PHP_FUNCTION(mime_content_type)
MIME_MAGIC_G(req_dat) = magic_set_config();
if(MIME_MAGIC_OK != magic_process(filename TSRMLS_CC)) {
if(MIME_MAGIC_OK != magic_process(filename)) {
RETVAL_FALSE;
} else if(MIME_MAGIC_OK != magic_rsl_get(&content_type, &content_encoding)) {
RETVAL_FALSE;
@@ -943,7 +943,7 @@ static char *rsl_strdup(int start_frag, int start_pos, int len)
* (formerly called "process" in file command, prefix added for clarity) Opens
* the file and reads a fixed-size buffer to begin processing the contents.
*/
static int magic_process(char *filename TSRMLS_DC)
static int magic_process(char *filename)
{
php_stream *stream;
unsigned char buf[HOWMANY + 1]; /* one extra for terminating '\0' */
@@ -953,7 +953,7 @@ static int magic_process(char *filename TSRMLS_DC)
/*
* first try judging the file based on its filesystem status
*/
switch ((result = fsmagic(filename TSRMLS_CC))) {
switch ((result = fsmagic(filename))) {
case MIME_MAGIC_DONE:
magic_rsl_putchar('\n');
return MIME_MAGIC_OK;
@@ -1032,7 +1032,7 @@ static void tryit(unsigned char *buf, int nb, int checkzmagic)
* return MIME_MAGIC_OK to indicate it's a regular file still needing handling
* other returns indicate a failure of some sort
*/
static int fsmagic(char *filename TSRMLS_DC)
static int fsmagic(char *filename)
{
php_stream_statbuf stat_ssb;
+6 -6
View File
@@ -1249,8 +1249,8 @@ static SWFMorph getMorph(zval *id TSRMLS_DC)
}
/* }}} */
/* {{{ proto object swfmorph_getShape1(void)
Return's this SWFMorph's start shape object */
/* {{{ proto SWFShape swfmorph_getShape1(void)
Return's this SWFMorph's start shape */
PHP_FUNCTION(swfmorph_getShape1)
{
SWFMorph morph = getMorph(getThis() TSRMLS_CC);
@@ -1263,8 +1263,8 @@ PHP_FUNCTION(swfmorph_getShape1)
}
/* }}} */
/* {{{ proto object swfmorph_getShape2(void)
Return's this SWFMorph's start shape object */
/* {{{ proto SWFShape swfmorph_getShape2(void)
Return's this SWFMorph's start shape */
PHP_FUNCTION(swfmorph_getShape2)
{
SWFMorph morph = getMorph(getThis() TSRMLS_CC);
@@ -2133,8 +2133,8 @@ static SWFMovieClip getSprite(zval *id TSRMLS_DC)
}
/* }}} */
/* {{{ proto object swfsprite_add(SWFCharacter)
Adds the character to the sprite, returns a displayitem object */
/* {{{ proto SWFDisplayItem swfsprite_add(SWFCharacter)
Adds the character to the sprite, returns a displayitem */
PHP_FUNCTION(swfsprite_add)
{
zval **zchar;
+7 -1
View File
@@ -3,9 +3,15 @@ $Id$
mnoGoSearch extension module for PHP4.
For details please refer to http://www.mnogosearch.org/
For details please refer to http://search.mnogo.ru
If used with mysql you should not use bundled mysql library
in the php distribution. You should use native mysql
library. To do this you should compile php with specefying mysql-dir
(for example --with-mysql=/usr, not --with-mysql).
TODO
----
Implement indexing functions of the library.
For example retrieving, parsing, checking of the URL and so on...
+14 -73
View File
@@ -5,9 +5,9 @@
$Id$
*/
/* mnoGoSearch-php-lite v.1.4
/* mnoGoSearch-php-lite v.1.2
* for mnoGoSearch ( formely known as UdmSearch ) free web search engine
* (C) 2001-2002 by Sergey Kartashoff <gluke@mail.ru>,
* (C) 2001 by Sergey Kartashoff <gluke@mail.ru>,
* mnoGoSearch Developers Team <devel@mnogosearch.org>
*/
@@ -28,12 +28,8 @@ $MAX_PS=100;
/* variables section */
if (Udm_Api_Version() >= 30204) {
$dbaddr='mysql://mnogo:mnogo@/mnogo/?dbmode=single';
} else {
$dbaddr='mysql://mnogo:mnogo@/mnogo/';
$dbmode='single';
}
$dbaddr='mysql://udm:udm@/udm/';
$dbmode='single';
$localcharset='koi8-r';
$browsercharset='utf-8';
@@ -41,21 +37,13 @@ $phrase=$cache=$crosswords='no';
$ispelluseprefixes=$trackquery='no';
$spell_host=$vardir=$datadir='';
$ispellmode='text';
$affix_file=array();
$spell_file=array();
$stopwordtable_arr=array();
$stopwordfile_arr=array();
$synonym_arr=array();
$searchd_arr=array();
// $affix_file['en']='/opt/udm/ispell/en.aff';
$affix_file['en']='/opt/udm/ispell/en.aff';
// $affix_file['ru']='/opt/udm/ispell/ru.aff';
// $spell_file['en']='/opt/udm/ispell/en.dict';
$spell_file['en']='/opt/udm/ispell/en.dict';
// $spell_file['ru']='/opt/udm/ispell/ru.dict';
$stopwordtable_arr[]='stopword';
$stopwordtable_arr[]='stopword';
// $stopwordfile_arr[]='stopwords.txt';
// $synonym_arr[]='/opt/udm/synonym/english.syn';
$synonym_arr[]='/opt/udm/synonym/english.syn';
$searchd_arr[]='localhost';
$minwordlength=1;
@@ -65,27 +53,6 @@ $storedocurl="/cgi-bin/storedoc.cgi";
/* initialisation section */
if(isset($HTTP_GET_VARS)){
while(list($var, $val)=each($HTTP_GET_VARS)){
$$var=$val;
}
}
if(isset($HTTP_POST_VARS)){
while(list($var, $val)=each($HTTP_POST_VARS)){
$$var=$val;
}
}
if(isset($HTTP_COOKIE_VARS)){
while(list($var, $val)=each($HTTP_COOKIE_VARS)){
$$var=$val;
}
}
if(isset($HTTP_SERVER_VARS)){
while(list($var, $val)=each($HTTP_SERVER_VARS)){
$$var=$val;
}
}
$self=$PHP_SELF;
if ($ps=="") $ps=20;
@@ -105,8 +72,7 @@ $de=urldecode($de);
if ($db=="") $db='01/01/1970';
if ($de=="") $de='31/12/2020';
// define this to enable stored support
// $storedaddr="localhost";
$storedaddr="localhost";
$storedocurl='/cgi-bin/storedoc.cgi';
if (isset($q)) {
@@ -513,11 +479,7 @@ function make_nav($query_orig){
$have_spell_flag=0;
if (Udm_Api_Version() >= 30204) {
$udm_agent=Udm_Alloc_Agent($dbaddr);
} else {
$udm_agent=Udm_Alloc_Agent($dbaddr,$dbmode);
}
$udm_agent=Udm_Alloc_Agent($dbaddr,$dbmode);
Udm_Set_Agent_Param($udm_agent,UDM_PARAM_PAGE_SIZE,$ps);
Udm_Set_Agent_Param($udm_agent,UDM_PARAM_PAGE_NUM,$np);
@@ -651,11 +613,6 @@ function make_nav($query_orig){
Udm_Set_Agent_Param($udm_agent,UDM_PARAM_REMOTE_ADDR,$REMOTE_ADDR);
}
if (Udm_Api_Version() >= 30204) {
if ($have_query_flag)Udm_Set_Agent_Param($udm_agent,UDM_PARAM_QUERY,$query_orig);
if ($storedaddr != '') Udm_Set_Agent_Param($udm_agent,UDM_PARAM_STORED,$storedaddr);
}
if ($m=='any') {
Udm_Set_Agent_Param($udm_agent,UDM_PARAM_SEARCH_MODE,UDM_MODE_ANY);
} elseif ($m=='all') {
@@ -967,16 +924,11 @@ if(($errno=Udm_Errno($udm_agent))>0){
print("Displaying documents $first_doc-$last_doc of total <B>$found</B> found.\n");
$stored_link=-1;
if ((Udm_Api_Version() == 30203) && ($storedaddr != '')) {
if ((Udm_Api_Version() >= 30203) && ($storedaddr != '')) {
$stored_link=Udm_Open_Stored($udm_agent,$storedaddr);
}
for($i=0;$i<$rows;$i++){
$excerpt_flag=0;
if (Udm_Api_Version() >= 30204) {
$excerpt_flag=Udm_Make_Excerpt($udm_agent, $res, $i);
}
$ndoc=Udm_Get_Res_Field($res,$i,UDM_FIELD_ORDER);
$rating=Udm_Get_Res_Field($res,$i,UDM_FIELD_RATING);
$url=Udm_Get_Res_Field($res,$i,UDM_FIELD_URL);
@@ -1012,7 +964,7 @@ if(($errno=Udm_Errno($udm_agent))>0){
print ("<A HREF=\"$url\" TARGET=\"_blank\">$url</A>\n");
print ("($contype) $lastmod, $docsize bytes</UL></DL>\n");
if (Udm_Api_Version() == 30203) {
if (Udm_Api_Version() >= 30203) {
if ((($stored_link>0) && (Udm_Check_Stored($udm_agent,$stored_link,Udm_CRC32($udm_agent,$url)))) ||
($stored_link==-1)) {
$storedstr="$storedocurl?rec_id=".Udm_CRC32($udm_agent,$url).
@@ -1024,21 +976,10 @@ if(($errno=Udm_Errno($udm_agent))>0){
"&q=".urlencode($query_orig);
print ("<DD><a href=\"$storedstr\">Cached copy</a>\n");
}
} elseif (Udm_Api_Version() >= 30204) {
if ($excerpt_flag) {
$storedstr="$storedocurl?rec_id=".Udm_CRC32($udm_agent,$save_url).
"&DM=".urlencode($lastmod).
"&DS=$docsize".
"&L=$doclang".
"&CS=$doccharset".
"&DU=".urlencode($save_url).
"&q=".urlencode($query_orig);
print_template('stored');
}
}
}
}
if ((Udm_Api_Version() == 30203) &&
if ((Udm_Api_Version() >= 30203) &&
($stored_link>0)) {
Udm_Close_Stored($udm_agent, $stored_link);
}
+27 -105
View File
@@ -77,8 +77,6 @@
#define UDM_PARAM_SEARCHD 22
#define UDM_PARAM_QSTRING 23
#define UDM_PARAM_REMOTE_ADDR 24
#define UDM_PARAM_QUERY 25
#define UDM_PARAM_STORED 26
/* udm_add_search_limit constants */
#define UDM_LIMIT_URL 1
@@ -150,8 +148,7 @@ function_entry mnogosearch_functions[] = {
PHP_FE(udm_crc32, NULL)
#endif
#if UDM_VERSION_ID >= 30204
PHP_FE(udm_parse_query_string, NULL)
PHP_FE(udm_make_excerpt, NULL)
PHP_FE(udm_parse_query_string,NULL)
#endif
#endif
@@ -294,11 +291,9 @@ DLEXPORT PHP_MINIT_FUNCTION(mnogosearch)
REGISTER_LONG_CONSTANT("UDM_PARAM_SYNONYM", UDM_PARAM_SYNONYM,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_PARAM_SEARCHD", UDM_PARAM_SEARCHD,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_PARAM_STORED", UDM_PARAM_STORED,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_PARAM_QSTRING", UDM_PARAM_QSTRING,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_PARAM_REMOTE_ADDR", UDM_PARAM_REMOTE_ADDR,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_PARAM_QUERY", UDM_PARAM_QUERY,CONST_CS | CONST_PERSISTENT);
/* udm_add_search_limit constants */
REGISTER_LONG_CONSTANT("UDM_LIMIT_CAT", UDM_LIMIT_CAT,CONST_CS | CONST_PERSISTENT);
@@ -359,11 +354,13 @@ DLEXPORT PHP_MINIT_FUNCTION(mnogosearch)
REGISTER_LONG_CONSTANT("UDM_ISPELL_TYPE_DB", UDM_ISPELL_TYPE_DB,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_ISPELL_TYPE_SERVER",UDM_ISPELL_TYPE_SERVER,CONST_CS | CONST_PERSISTENT);
#if UDM_VERSION_ID < 30200
/* word match mode params */
REGISTER_LONG_CONSTANT("UDM_MATCH_WORD", UDM_MATCH_WORD,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_MATCH_BEGIN", UDM_MATCH_BEGIN,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_MATCH_SUBSTR", UDM_MATCH_SUBSTR,CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("UDM_MATCH_END", UDM_MATCH_END,CONST_CS | CONST_PERSISTENT);
#endif
return SUCCESS;
}
@@ -422,10 +419,6 @@ DLEXPORT PHP_FUNCTION(udm_alloc_agent)
#if UDM_VERSION_ID >= 30204
Env=UdmEnvInit(NULL);
UdmVarListReplaceStr(&Env->Vars,"SyslogFacility","local7");
UdmSetLogLevel(Env,0);
UdmOpenLog("mnoGoSearch-php",Env,0);
if(!memcmp(dbaddr,"searchd:",8)){
UDM_URL Url;
UdmURLParse(&Url,dbaddr);
@@ -435,7 +428,7 @@ DLEXPORT PHP_FUNCTION(udm_alloc_agent)
if(UDM_OK!=UdmDBSetAddr(Env->db,dbaddr,UDM_OPEN_MODE_READ)){
sprintf(Env->errstr,"Invalid DBAddr: '%s'",dbaddr);
Env->errcode=1;
php_error(E_WARNING,"%s(): Invalid DBAddr", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Alloc_Agent: Invalid DBAddr");
RETURN_FALSE;
}
Agent=UdmAgentInit(NULL,Env,0);
@@ -472,10 +465,6 @@ DLEXPORT PHP_FUNCTION(udm_alloc_agent)
#if UDM_VERSION_ID >= 30204
Env=UdmEnvInit(NULL);
UdmVarListReplaceStr(&Env->Vars,"SyslogFacility","local7");
UdmSetLogLevel(Env,0);
UdmOpenLog("mnoGoSearch-php",Env,0);
if(!memcmp(dbaddr,"searchd:",8)){
UDM_URL Url;
UdmURLParse(&Url,dbaddr);
@@ -485,7 +474,7 @@ DLEXPORT PHP_FUNCTION(udm_alloc_agent)
if(UDM_OK!=UdmDBSetAddr(Env->db,dbaddr,UDM_OPEN_MODE_READ)){
sprintf(Env->errstr,"Invalid DBAddr: '%s'",dbaddr);
Env->errcode=1;
php_error(E_WARNING,"%s(): Invalid DBAddr", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Alloc_Agent: Invalid DBAddr");
RETURN_FALSE;
}
Agent=UdmAgentInit(NULL,Env,0);
@@ -587,7 +576,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
case UDM_MODE_PHRASE:
#if UDM_VERSION_ID >= 30200
php_error(E_WARNING,"%s(): Unknown search mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown search mode");
RETURN_FALSE;
#else
Agent->search_mode=UDM_MODE_PHRASE;
@@ -600,7 +589,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
#else
Agent->search_mode=UDM_MODE_ALL;
#endif
php_error(E_WARNING,"%s(): Unknown search mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown search mode");
RETURN_FALSE;
break;
}
@@ -646,7 +635,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
#else
Agent->word_match=UDM_MATCH_WORD;
#endif
php_error(E_WARNING,"%s(): Unknown word match mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown word match mode");
RETURN_FALSE;
break;
}
@@ -681,7 +670,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
#else
UdmReplaceStrVar(Agent->Conf->vars,"Cache","no",UDM_VARSRC_GLOBAL);
#endif
php_error(E_WARNING,"%s(): Unknown cache mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown cache mode");
RETURN_FALSE;
break;
}
@@ -719,7 +708,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
#else
UdmReplaceStrVar(Agent->Conf->vars,"TrackQuery","no",UDM_VARSRC_GLOBAL);
#endif
php_error(E_WARNING,"%s(): Unknown track mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown track mode");
RETURN_FALSE;
break;
}
@@ -738,7 +727,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
break;
default:
php_error(E_WARNING,"%s(): Unknown phrase mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown phrase mode");
RETURN_FALSE;
break;
}
@@ -776,7 +765,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
#else
UdmAddIntVar(Agent->Conf->vars, "IspellUsePrefixes", 1, UDM_VARSRC_GLOBAL);
#endif
php_error(E_WARNING,"%s(): Unknown ispell prefixes mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown ispell prefixes mode");
RETURN_FALSE;
break;
}
@@ -807,7 +796,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
UdmVarListReplaceStr(&Agent->Conf->Vars,"BrowserCharset",val);
{
const char * charset=UdmVarListFindStr(&Agent->Conf->Vars,"BrowserCharset","iso-8859-1");
Agent->Conf->bcs=UdmGetCharSet(charset);
Agent->Conf->lcs=UdmGetCharSet(charset);
}
#else
Agent->Conf->browser_charset=strdup(val);
@@ -833,7 +822,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
case UDM_PARAM_SYNONYM:
if (UdmSynonymListLoad(Agent->Conf,val)) {
php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C),Agent->Conf->errstr);
php_error(E_WARNING,Agent->Conf->errstr);
RETURN_FALSE;
#if UDM_VERSION_ID >= 30204
} else UdmSynonymListSort(&(Agent->Conf->Synonyms));
@@ -862,7 +851,6 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
#endif
break;
case UDM_PARAM_REMOTE_ADDR:
#if UDM_VERSION_ID >= 30204
UdmVarListReplaceStr(&Agent->Conf->Vars,"IP",val);
@@ -885,7 +873,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
#else
if (UdmFileLoadStopList(Agent->Conf,val)) {
#endif
php_error(E_WARNING, "%s(): %s", Agent->Conf->errstr, get_active_function_name(TSRMLS_C));
php_error(E_WARNING,Agent->Conf->errstr);
RETURN_FALSE;
}
break;
@@ -952,7 +940,7 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
break;
default:
php_error(E_WARNING,"%s(): Unknown crosswords mode", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown crosswords mode");
RETURN_FALSE;
break;
}
@@ -971,22 +959,9 @@ DLEXPORT PHP_FUNCTION(udm_set_agent_param)
snprintf(Agent->Conf->vardir,sizeof(Agent->Conf->vardir)-1,"%s%s",val,UDMSLASHSTR);
#endif
break;
#if UDM_VERSION_ID >= 30204
case UDM_PARAM_QUERY:
UdmVarListReplaceStr(&Agent->Conf->Vars,"q",val);
break;
case UDM_PARAM_STORED:
UdmVarListReplaceStr(&Agent->Conf->Vars,"StoredAddr",val);
break;
#endif
#endif
default:
php_error(E_WARNING,"%s(): Unknown agent session parameter", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Set_Agent_Param: Unknown agent session parameter");
RETURN_FALSE;
break;
}
@@ -1080,12 +1055,12 @@ DLEXPORT PHP_FUNCTION(udm_load_ispell_data)
#endif
if (UdmImportAffixes(Agent->Conf,val1,val2,NULL,0)) {
php_error(E_WARNING,"%s(): Cannot load affix file %s", get_active_function_name(TSRMLS_C),val2);
php_error(E_WARNING,"Udm_Load_Ispell_Data: Cannot load affix file %s",val2);
RETURN_FALSE;
}
#else
if (UdmImportAffixes(Agent->Conf,val1,charset,val2)) {
php_error(E_WARNING,"%s(): Cannot load affix file %s", get_active_function_name(TSRMLS_C),val2);
php_error(E_WARNING,"Udm_Load_Ispell_Data: Cannot load affix file %s",val2);
RETURN_FALSE;
}
@@ -1101,12 +1076,12 @@ DLEXPORT PHP_FUNCTION(udm_load_ispell_data)
#endif
if (UdmImportDictionary(Agent->Conf,val1,val2,1,"")) {
php_error(E_WARNING,"%s(): Cannot load spell file %s", get_active_function_name(TSRMLS_C),val2);
php_error(E_WARNING,"Udm_Load_Ispell_Data: Cannot load spell file %s",val2);
RETURN_FALSE;
}
#else
if (UdmImportDictionary(Agent->Conf,val1,charset,val2,0,"")) {
php_error(E_WARNING,"%s(): Cannot load spell file %s", get_active_function_name(TSRMLS_C),val2);
php_error(E_WARNING,"Udm_Load_Ispell_Data: Cannot load spell file %s",val2);
RETURN_FALSE;
}
#endif
@@ -1114,7 +1089,7 @@ DLEXPORT PHP_FUNCTION(udm_load_ispell_data)
default:
php_error(E_WARNING,"%s(): Unknown ispell type parameter", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Load_Ispell_Data: Unknown ispell type parameter");
RETURN_FALSE;
break;
}
@@ -1238,7 +1213,7 @@ DLEXPORT PHP_FUNCTION(udm_add_search_limit)
} else if (val[0] == '<') {
Z_TYPE(stl_info)=-1;
} else {
php_error(E_WARNING,"%s(): Incorrect date limit format", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Add_Search_Limit: Incorrect date limit format");
RETURN_FALSE;
}
@@ -1248,7 +1223,7 @@ DLEXPORT PHP_FUNCTION(udm_add_search_limit)
#endif
break;
default:
php_error(E_WARNING,"%s(): Unknown search limit parameter", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Add_Search_Limit: Unknown search limit parameter");
RETURN_FALSE;
break;
}
@@ -1510,59 +1485,6 @@ DLEXPORT PHP_FUNCTION(udm_parse_query_string)
RETURN_TRUE;
}
/* }}} */
/* {{{ proto int udm_make_excerpt(int agent, int res, int row)
Perform search */
DLEXPORT PHP_FUNCTION(udm_make_excerpt)
{
pval ** yyagent, **yyres, **yyrow_num;
UDM_RESULT * Res;
UDM_AGENT * Agent;
int id=-1, row;
switch(ZEND_NUM_ARGS()){
case 3: {
if (zend_get_parameters_ex(3, &yyagent, &yyres, &yyrow_num)==FAILURE) {
RETURN_FALSE;
}
convert_to_string_ex(yyrow_num);
row=atoi(Z_STRVAL_PP(yyrow_num));
}
break;
default:
WRONG_PARAM_COUNT;
break;
}
ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, id, "mnoGoSearch-Agent", le_link);
ZEND_FETCH_RESOURCE(Res, UDM_RESULT *, yyres, -1, "mnoGoSearch-Result", le_res);
if(row<Res->num_rows){
const char *al;
char *Excerpt;
al = UdmVarListFindStr(&(Res->Doc[row].Sections), "URL", "");
UdmVarListReplaceInt(&(Res->Doc[row].Sections), "STORED_ID", UdmCRC32(al, strlen(al)));
Excerpt = UdmExcerptDoc(Agent, Res, &(Res->Doc[row]), 256);
if (Excerpt != NULL) {
char *HlExcerpt = UdmHlConvert(&Res->WWList, Excerpt, Agent->Conf->lcs, Agent->Conf->bcs);
UdmVarListReplaceInt(&(Res->Doc[row].Sections),"ST",1);
UdmVarListReplaceStr(&(Res->Doc[row].Sections),"Body",HlExcerpt);
UDM_FREE(HlExcerpt);
UDM_FREE(Excerpt);
} else {
UdmVarListReplaceInt(&(Res->Doc[row].Sections),"ST",0);
RETURN_FALSE;
}
}else{
php_error(E_WARNING,"%s(): row number too large", get_active_function_name(TSRMLS_C));
RETURN_FALSE;
}
RETURN_TRUE;
}
/* }}} */
#endif
/* {{{ proto int udm_find(int agent, string query)
@@ -1750,12 +1672,12 @@ DLEXPORT PHP_FUNCTION(udm_get_res_field)
#endif
default:
php_error(E_WARNING,"%s(): Unknown mnoGoSearch field name", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Get_Res_Field: Unknown mnoGoSearch field name");
RETURN_FALSE;
break;
}
}else{
php_error(E_WARNING,"%s(): row number too large", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Get_Res_Field: row number too large");
RETURN_FALSE;
}
}
@@ -1872,7 +1794,7 @@ DLEXPORT PHP_FUNCTION(udm_get_res_param)
break;
default:
php_error(E_WARNING,"%s(): Unknown mnoGoSearch param name", get_active_function_name(TSRMLS_C));
php_error(E_WARNING,"Udm_Get_Res_Param: Unknown mnoGoSearch param name");
RETURN_FALSE;
break;
}
Loaded 100 of 336 files, more files were not shown because too many files have changed in this diff. Show more