Andrey Hristov
429e07bba2
grok the MySQL 5.5 extended handshake.
...
Move the authentication routines, the native ones, to
separate file and encapsulate them in a plugin.
Depending on the server version and what the server
requests (or doesn't in old versions) load the authentication
plugin to handle it.
Currently only the 4.1+ authentication is supported. More to come
2011-01-12 21:40:05 +00:00
Andrey Hristov
ddbbcdce49
Use common code to handle initial authentication and
...
COM_CHANGE_USER
2011-01-11 13:02:57 +00:00
Andrey Hristov
00eaff1528
plug a leak
2011-01-10 15:28:52 +00:00
Andrey Hristov
61d49db1f3
new flag
2011-01-10 15:14:56 +00:00
Andrey Hristov
5549e066f2
Proper fix for
...
Bug #53503 mysqli::query returns false after successful LOAD DATA query
which fixes als #56349 , same behavior but in ext/mysql. Both due to a bug
in mysqlnd. Never was a problem with libmysql.
Also fixed the 53503's test case as it always reported PASS, even when there
should have been a failure.
2011-01-07 14:22:30 +00:00
Felipe Pena
0203cc3d44
- Year++
2011-01-01 02:17:06 +00:00
Andrey Hristov
d8774af125
C89 fix
2010-12-28 16:41:39 +00:00
Andrey Hristov
cfac5f5b67
extending the API interface - plugins can register
...
themselves with a structure and can be searched.
Every plugin can have statistics and they are shown
under the statistics of mysqlnd in MINFO.
2010-12-28 15:16:21 +00:00
Andrey Hristov
b51abfb35f
fix a small bug about affected_rows in the text protocol
2010-12-16 12:56:19 +00:00
Andrey Hristov
47bb667a64
Fix sprintf modifier to be right, wrong data reported in the log
2010-12-16 12:18:54 +00:00
Andrey Hristov
69894eaf80
count preciser in case of error
2010-12-15 14:14:58 +00:00
Pierre Joye
a7ffa09e18
- add PHP_INSTALL_HEADERS to all parts (core&exts) exposing headers, generate the install-headers cmd
2010-12-11 22:18:10 +00:00
Andrey Hristov
27ecaa7901
Skip additional result sets sent by MySQL 5.5 servers
...
which break the Protocol API
(see http://bugs.mysql.com/bug.php?id=58700 )
2010-12-06 13:59:14 +00:00
Andrey Hristov
e183ea0495
don't crash if the API is used incorrectly
2010-12-06 13:50:51 +00:00
Andrey Hristov
ee15ed307e
new server constant as of 5.5
2010-12-02 13:59:56 +00:00
Pierre Joye
87fd3737b4
-fix build
2010-11-15 23:53:13 +00:00
Andrey Hristov
bcb4c8427e
two new stats
2010-11-05 20:07:34 +00:00
Andrey Hristov
769a3cf0c3
- More features for the profiling, create aggregates and dump them
...
on file close.
- Also add a trace modifier to switch on and off the profiling.
- With additional compiler switch the profiling can be completely omitted,
of course it makes sense only when --enable-debug. Because otherwise
there is no tracing, thus no profiling.
- Added a fix for Windows for handling trace files on different devices
(special handing of ':' )
2010-10-29 15:02:39 +00:00
Andrey Hristov
da633ed52e
gettimeofday for windows
2010-10-28 14:14:06 +00:00
Andrey Hristov
9920be1a81
show tracing
2010-10-28 14:07:36 +00:00
Andrey Hristov
099a505f89
fix windows debug build
...
better zlib detection
2010-10-28 13:46:54 +00:00
Andrey Hristov
e70b2fcda4
rename and remove usage of inttypes.h, not needed
2010-10-25 13:44:11 +00:00
Andrey Hristov
fe719c5e42
profiling in trace mode
2010-10-22 15:46:26 +00:00
Andrey Hristov
a25ce8c606
last piece to enable trace logging on windows
2010-10-22 14:34:33 +00:00
Andrey Hristov
76783dfeb5
enable debug logging on windows, in debug builds, of course
2010-10-22 14:12:45 +00:00
Andrey Hristov
74ec58a045
new collations
2010-10-08 09:15:31 +00:00
Andrey Hristov
0e519d247e
fix some uninitialized variables. also fix shadowing of global symbols
2010-10-07 13:49:00 +00:00
Andrey Hristov
1f9cf93cac
Fix for Bug #52686 mysql_stmt_attr_[gs]et arg. points to incorrect type
2010-10-06 11:11:02 +00:00
Andrey Hristov
63d6892b56
more variable hiding fixes
2010-10-06 07:09:37 +00:00
Andrey Hristov
b373ccd6fc
fix shadowing of parameters
2010-10-06 06:08:55 +00:00
Andrey Hristov
223832c501
rename parameter name - should not shadow the global symbol alloca
2010-10-05 17:20:00 +00:00
Andrey Hristov
c7a09c682d
two more compiler warnings fixed - size does matter
2010-10-05 17:10:47 +00:00
Andrey Hristov
396402fc97
Rename a method so it doesn't clash with a global symbol - a function
...
Fix compiler waring by extening the type of a variable
2010-10-05 17:03:50 +00:00
Andrey Hristov
de69927b8e
Fix compiler warnings - on 32bit size_t is smaller than uint64_t, although
...
we will never hit this the compiler should be happy.
2010-10-05 16:54:14 +00:00
Andrey Hristov
60bfedb1e6
rename parameter, should not conflict with global symbol -
...
the socket function
2010-10-05 16:27:49 +00:00
Andrey Hristov
07c08c1c93
remove trailing commas in enums
2010-10-05 14:56:49 +00:00
Andrey Hristov
a9da84800e
add some safe casts
2010-10-05 11:08:21 +00:00
Andrey Hristov
75ed0bbb3e
fixing more types
2010-10-05 10:30:00 +00:00
Andrey Hristov
a3f2895e67
fix types
2010-10-05 08:56:21 +00:00
Ulf Wendel
b3dfb56949
Fix warnings
...
ext\mysqlnd\mysqlnd_result_meta.c(57) : warning C4090: 'initializing' : different 'const' qualifiers
ext\mysqlnd\mysqlnd_result_meta.c(64) : warning C4090: 'initializing' : different 'const' qualifiers
ext\mysqli\mysqli_report.c(50) : warning C4013: 'php_mysqli_throw_sql_exception' undefined; assuming extern returning int
2010-10-05 08:29:54 +00:00
Andrey Hristov
d4b1c1ec78
fix recent TSRM build break, with --enable-debug
2010-10-05 08:17:33 +00:00
Kalle Sommer Nielsen
304bc60e98
We do not need this TSRMLS_FETCH() call as we do not use any TSRM stuff in here, so we can get
...
a minor boost here in ZTS mode.
2010-10-04 21:04:25 +00:00
Andrey Hristov
026da7d4a0
fix two more warnings
2010-10-04 14:52:14 +00:00
Andrey Hristov
0a5c631488
add some safe casts - lower the number of warnings by 2
2010-10-04 14:12:31 +00:00
Andrey Hristov
bf3b607f7a
Fix const-ness
2010-10-04 13:54:30 +00:00
Andrey Hristov
d7b26d2987
Even better patch
2010-10-04 12:59:29 +00:00
Andrey Hristov
5f06ac5caf
don't define twice the macro on some platforms
2010-10-04 12:41:12 +00:00
Ulf Wendel
500cd35c21
Fixing compiler warning.
2010-10-04 10:58:05 +00:00
Ulf Wendel
5d6f3fb908
Fixing "ext/mysqlnd/mysqlnd.h", line 287: warning: syntax error: empty declaration"
2010-10-04 10:51:44 +00:00
Andrey Hristov
d55566c7b8
Fix a problem that leads to leaks in plugins that
...
use stmt local data - no free is called for statements
that are over-prepared
2010-09-29 13:18:07 +00:00
Andrey Hristov
1762d63406
add another hook, maybe the last one, for MYSQLND_STMT, which
...
was missed before
2010-09-28 14:36:18 +00:00
Andrey Hristov
c301c358ae
Fix the value, it was bumped
2010-09-27 11:23:01 +00:00
Andrey Hristov
859a1404bf
WS fixes
2010-09-23 16:03:22 +00:00
Kalle Sommer Nielsen
1ac15b2f8e
Added TSRMLS macros into php_get_current_user()
2010-09-23 04:13:36 +00:00
Andrey Hristov
4c26112c88
Fix for
...
Request #48082 mysql_connect does not work with named pipes
2010-09-22 15:14:04 +00:00
Andrey Hristov
7346d8d590
small macro fix
2010-09-22 14:54:43 +00:00
Andrey Hristov
0b74eb2e96
fix for bug 52891 - optimize a bit
2010-09-22 14:26:43 +00:00
Andrey Hristov
fbaed5476c
Fix for
...
Bug #52891 Wrong data inserted with mysqli/mysqlnd when using bind_param,value>LONG_MAX
2010-09-22 11:38:49 +00:00
Pierre Joye
ed58636f00
- use TSRMLS_D/C with php_stream_context_alloc
2010-09-16 09:33:42 +00:00
Andrey Hristov
f60bd23914
remove unneeded proxy function _mysqlnd_restart_psessoin
2010-09-15 12:23:45 +00:00
Andrey Hristov
d5f1517cd6
Remove unneeded proxy function _mysqlnd_end_psession
2010-09-15 12:11:33 +00:00
Andrey Hristov
383d7d005a
fix build on windows, seems this macro is not defined
2010-09-01 16:54:20 +00:00
Andrey Hristov
b2bcf3ae48
OPT_COMPRESS support for mysqlnd_conn::set_client_option
...
To be used by mysqli_options
2010-09-01 14:47:36 +00:00
Andrey Hristov
2ab9513ff4
Fix for MySQL Bug #49406
...
Binding params doesn't work when selecting a date inside a CASE-WHEN
(http://bugs.mysql.com/bug.php?id=49406 )
The MySQL server sends MYSQL_TYPE_NEWDATE values as clear text, even
when PS are used and thus the binary protocol are used. Changing the
handler for the type.
2010-08-30 18:10:23 +00:00
Andrey Hristov
9c0439e4bc
Fix for Bug #52613 crash in mysqlnd
2010-08-17 18:08:25 +00:00
Andrey Hristov
277c7d4dea
Added utf16 and utf32 support, as in MySQL 5.5, in mysqlnd.
...
Fixed tests, so they don't try to use SET NAMES utf16|utf32,
as character_set_client can't be set to those (the lexer can't
read ucs2, utf16 and utf32).
Added support for 4-byte utf8, as found in MySQL 5.5
2010-08-16 17:44:50 +00:00
Andrey Hristov
c803b0024a
Make this function static, as it is used only in this file.
...
Add additional comment about how it works.
2010-08-12 14:17:31 +00:00
Andrey Hristov
9da177f8d5
Allocate memory in a burst mode, and later use it. Increases
...
locality of the data.
Also use MYSQLND_INC_CONN_STATISTIC in one place, instead of
two, thus removing code duplication from macro expansion - less
code to fit in the instruction cache.
2010-08-12 13:23:16 +00:00
Andrey Hristov
c974313aed
Switch from using PHP_MAJOR_VERSION to separate define for
...
unicode. Unicode is no more, but these are "bookmarks" where
to change mysqlnd, if Unicode becomes trendy again.
2010-08-12 12:02:02 +00:00
Andrey Hristov
d27983e781
ws + cs
2010-08-12 11:38:08 +00:00
Andrey Hristov
da42d146ab
Fix Request #52302 mysqli_fetch_all does not work with MYSQLI_USE_RESULT
2010-08-09 17:29:30 +00:00
Andrey Hristov
ebaee8a4d0
Lay foundations for named pipe support in mysqlnd
2010-08-09 17:01:57 +00:00
David Soria Parra
d9afaad77f
make ssl_set return value in mysqlnd compatible with libmysqli return value
2010-08-06 19:47:03 +00:00
Andrey Hristov
7043949c89
Fix for Bug #51583 Bus error due to wrong alignment in mysqlnd
2010-07-15 16:57:14 +00:00
Andrey Hristov
12f8599b86
Give an error when USE_RESULT is used with fetch_all
2010-07-13 13:02:00 +00:00
Dmitry Stogov
df8bf2a2de
Fixed checks for PHP_DEBUG macro
2010-07-08 07:38:59 +00:00
Andrey Hristov
ee4818a12a
Two functions, which should be methods so one can catch
...
their output, for example
2010-06-24 19:52:13 +00:00
Andrey Hristov
baf72b7336
Fix sprintf modifiers all around the place. In most cases
...
%u should be used. Where size_t is used then MYSQLND_SZ_T_SPEC should be
the modifier
2010-06-21 15:32:26 +00:00
Andrey Hristov
523960892c
fix valgrind warnings on 64bit, thread_is is strictly 32bit
2010-06-21 14:49:45 +00:00
Andrey Hristov
c7f10efabc
Fix for bug #52115 mysqli_result::fetch_all returns null, not an empty array
2010-06-18 17:25:41 +00:00
Andrey Hristov
986e30048d
missed this one in the last commit, the real type
2010-06-18 12:00:57 +00:00
Andrey Hristov
d3d7447803
fix type mismatch, this is fresh misunderstanding
2010-06-18 11:56:25 +00:00
Pierre Joye
aac1ef3815
- fix build
2010-06-17 17:09:48 +00:00
Andrey Hristov
59205a6655
split mysqlnd_connect() in two parts, one doing the authorization
2010-06-17 11:37:49 +00:00
Andrey Hristov
55f879015d
no more needed because of the charset fix in the previous changeset
2010-06-16 19:01:13 +00:00
Andrey Hristov
65b1895759
Fixed bug #52082 (character_set_client & character_set_connection reset after
...
mysqli_change_user())
libmysql >= 5.1.23 will PASS, older library versions will fail
2010-06-14 17:16:20 +00:00
Andrey Hristov
3b2000f042
export mysqlnd_globals_id, per Johannes
2010-06-10 12:24:03 +00:00
Andrey Hristov
408d786aa2
void functions return nothing
2010-06-10 09:37:58 +00:00
Andrey Hristov
c7831cbe27
defensive programming, check before using a resource
2010-06-01 14:16:27 +00:00
Andrey Hristov
e6b4e01ce0
Perform later initialization
2010-06-01 09:47:46 +00:00
Andrey Hristov
3fe085d10b
More check for valid MYSQLND_STMT before using it
2010-05-31 18:26:19 +00:00
Andrey Hristov
40e6685063
Don't reference row_packet before checking if dereferencing is possible
2010-05-31 18:18:37 +00:00
Andrey Hristov
c195dc21a2
Check if data is correct and initialize in a safe manner
2010-05-31 18:10:25 +00:00
Andrey Hristov
d02e785d68
Handle problems in the row_decoder, return type used to be void,
...
now it can return on problems.
2010-05-31 17:57:03 +00:00
Andrey Hristov
6ed619a351
Bail if allocation fails
2010-05-31 17:09:13 +00:00
Andrey Hristov
bdb2d71dc7
try to workaround problems with non-c99 on HPUX
2010-05-31 16:51:03 +00:00
Ulf Wendel
73a32c52d2
Updating test to reflect the latest and more verbose mysqlnd error messages, updating mysqlnd error message as well.
2010-05-31 13:56:42 +00:00
Andrey Hristov
3251e54f0f
Don't use NULL pointer, always check before use
2010-05-27 12:39:12 +00:00
Andrey Hristov
ae9ac28ec2
Fix possible crashes, in case of OOM, due to half-baken
...
objects.
2010-05-27 12:05:02 +00:00
Andrey Hristov
95d4f2ac66
Fix crashes in the allocator in case of OOM.
2010-05-27 12:00:48 +00:00
Andrey Hristov
4de0da5a56
Fix deallocation which can crash if the object is half-baken.
...
Happens during OOM.
2010-05-27 08:51:46 +00:00
Andrey Hristov
0e8b380941
Don't use conn->net without checking if it is NULL, because
...
it can be NULL in OOM conditions. This would cause a crash.
2010-05-26 13:47:43 +00:00
Andrey Hristov
433cb868d6
Handle the situation when MYSQLND_PROTOCOL's methods return NULL.
...
mysqlnd should not crash but gracefully return with an error.
2010-05-25 23:18:13 +00:00
Andrey Hristov
708b31a510
Gracefully handle OOM in mysqlnd_stmt_init. Release the handle
...
and return NULL.
2010-05-25 22:42:25 +00:00
Andrey Hristov
6d434e70a4
Init should return status value because initialization can fail.
...
In this case mysqlnd_init() should return NULL to the end-user.
2010-05-25 22:40:47 +00:00
Andrey Hristov
b3c553fa99
Use the specialized macro for this case
2010-05-25 22:38:11 +00:00
Andrey Hristov
b434301f7b
Use only memory that has been allocated
2010-05-25 22:36:33 +00:00
Andrey Hristov
decdfeeeb2
Access memory which was really allocated
2010-05-25 22:34:47 +00:00
Andrey Hristov
844b435655
Fix shared build
2010-05-25 21:54:21 +00:00
Andrey Hristov
954e7db644
Handle OOM in the code that generates PS Execute requests
...
to the server. Fixes crashes in case of OOM.
2010-05-25 19:19:29 +00:00
Andrey Hristov
52e31252fc
Fix metadata duplicatin which wasn't crash-safe in case of OOM.
2010-05-25 18:14:37 +00:00
Andrey Hristov
a25482105e
Check set->data for validity before using it.
...
Prevents crashes after OOM.
2010-05-21 13:37:18 +00:00
Andrey Hristov
476391c02e
When OOM hits the wire, don't crash.
2010-05-21 13:06:52 +00:00
Andrey Hristov
3ea05600e9
result_meta local storage
2010-05-14 16:42:17 +00:00
Andrey Hristov
8a093b3811
Allow overloading of mysqlnd_result_meta_init().
...
Add free space for future hooks.
2010-05-14 15:11:56 +00:00
Andrey Hristov
faf4659295
Export MYSQLND_PROTOCOL methods
2010-05-14 13:32:27 +00:00
Andrey Hristov
8691786ebd
- Give possibility to overload mysqlnd_result_init().
...
- Always use conn->m->stmt_init instead of mysqlnd_stmt_init()
2010-05-14 13:18:39 +00:00
Andrey Hristov
dd85f9c2f2
OOM fixes
2010-05-14 13:04:33 +00:00
Andrey Hristov
07619b7190
- initialize some variables
...
- initialize the methods in a shorter way, use the compiler.
= on structures copies them. Allows also exportability of
the methods.
2010-05-13 15:29:08 +00:00
Andrey Hristov
fccec600eb
Export the methods of MYSQLND_NET
2010-05-13 14:15:23 +00:00
Andrey Hristov
4c1487577c
Export the result_metadata methods to external modules.
2010-05-13 11:16:11 +00:00
Andrey Hristov
d53337bbe7
OOM stability fixes
2010-05-04 14:02:42 +00:00
Andrey Hristov
447c693b2d
Add possibility to control the allocator in when PHP is compiled
...
with debug
2010-05-04 13:49:43 +00:00
Andrey Hristov
5ca71c00f5
Handle OOM in mysqlnd_res::store_result_fetch_data
2010-05-03 19:32:07 +00:00
Andrey Hristov
9c276eee6c
Handle OOM in mysqlnd_fetch_row_buffered_c()
2010-05-03 19:09:45 +00:00
Andrey Hristov
2b00096004
Handle OOM in mysqlnd_fetch_row_unbuffered_c()
2010-05-03 19:02:48 +00:00
Andrey Hristov
2b18a3ff93
Handle OOM stemming from mysqlnd_result_init in the same
...
function and up the stack.
2010-05-03 18:50:47 +00:00
Andrey Hristov
7de2607c12
Handle gracefully OOM in mysqlnd_mempool_create and up the stack
2010-05-03 17:07:18 +00:00
Andrey Hristov
c32bae720c
Handle OOM in block_alloc_get_chunk, and also in the caller
...
in mysqlnd_wireprotocol.c
2010-05-03 16:20:46 +00:00
Andrey Hristov
ec0fe858c6
Remove unused parameter
2010-05-03 16:09:05 +00:00
Andrey Hristov
57059d4e31
One more case to handle in case of OOM, in block_alloc_resize_chunk
2010-05-03 14:26:08 +00:00
Andrey Hristov
8e8348a4b0
Handle OOM when resizing blocks during data fetch
2010-05-03 14:16:04 +00:00
Andrey Hristov
2da3f5ba90
Fix compiler warnings - unused functions
2010-05-03 13:51:30 +00:00
Andrey Hristov
333581fcb4
Better handing of OOM in mysqlnd::set_client_option
2010-05-03 13:45:58 +00:00
Andrey Hristov
3010485d44
Handle OOM cases, in case of persistent connections this is real
...
and the Zend MM won't help.
2010-04-29 15:49:51 +00:00
Andrey Hristov
aec94a464b
Fix valgrind warning, usage of nirvana memory
2010-04-29 15:17:44 +00:00
Andrey Hristov
ac172db01f
Fix possible crashes in case of OOM, as well as a leak.
2010-04-29 13:13:41 +00:00
Andrey Hristov
6c1a2831f6
Fix crash if OOM and USE_ZEND_ALLOC=0
2010-04-29 11:49:08 +00:00
Andrey Hristov
6d88d1a75e
Fixed few buffer overflows reported by Stefan Esser.
2010-04-28 15:35:52 +00:00
Andrey Hristov
16d5d5966e
const-ify fields
2010-04-28 12:29:13 +00:00
Andrey Hristov
8546225b6e
Fixed very rare memory leak in mysqlnd, when binding thousands of columns
2010-04-27 12:32:34 +00:00
Andrey Hristov
194444b293
Of course, 64*4 is 256, not 1024
2010-04-27 11:02:51 +00:00
Andrey Hristov
4b658e3ded
Move the macro to mysqlnd_enum_n_def.h, because it can be reused
...
in other places. Also, premultiply the values by 4 and add some
reserve for future releases of the server.
2010-04-27 10:53:27 +00:00
Andrey Hristov
207a72ca0e
Fixed buffer overflow in mysqlnd_change_user
2010-04-27 08:26:24 +00:00
Andrey Hristov
6f6909e582
Fixed possible buffer overflow in mysqlnd_conn__list_fields.
2010-04-27 08:02:08 +00:00
Kalle Sommer Nielsen
dd8e59da8f
Removed safe_mode
...
* Removed ini options, safe_mode*
* Removed --enable-safe-mode --with-exec-dir configure options on Unix
* Updated extensions, SAPI's and core
* php_get_current_user() is now declared in main.c, thrus no need to include safe_mode.h anymore
2010-04-26 23:53:30 +00:00
Andrey Hristov
3dbf6acd7b
Change the way the allocator is called - through an abstraction
...
to give the possibility of pluggability. Thanks to the macros
already used the changes are not pervasive.
2010-04-22 16:28:50 +00:00
Andrey Hristov
e5dcac245c
Fix problem spotted by Felipe.
2010-04-22 16:22:56 +00:00
Andrey Hristov
7c5259cca3
adding what last commit was missing
2010-04-22 15:14:45 +00:00
Andrey Hristov
1ed3da294b
Remove dead code and add possibility to fine tune the size of
...
a mempool (used for result sets).
2010-04-22 15:07:40 +00:00