Xinchen Hui
c2f8e90504
Merge branch 'PHP-5.3' into PHP-5.4
2013-01-06 10:20:00 +08:00
Xinchen Hui
bc11e6fdbb
bump year
2013-01-06 10:19:09 +08:00
Felipe Pena
e4ca0ed09f
- Year++
2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281
- Year++
2012-01-01 13:15:04 +00:00
Andrey Hristov
842b7d6840
use the method in all builds. Thus it can be used for detection
...
of state transitioning in every case
2011-11-22 16:38:06 +00:00
Andrey Hristov
692e7f2bd9
use the method in all builds. Thus it can be used for detection
...
of state transitioning in every case
2011-11-22 16:38:06 +00:00
Andrey Hristov
92ec40d8e4
Now really split the method tables and have different
...
methods for the handle and the data object.
Add auxiliary functions to work with the new methods.
Add possibility to clone a connection object - shadow copy.
2011-10-31 14:33:56 +00:00
Andrey Hristov
8fb6bdd5b8
Split struct MYSQLND in struct MYSQLND and struct MYSQLD_CONN_DATA.
...
A step in the direction of keeping internal data private
2011-10-31 11:46:24 +00:00
Andrey Hristov
f926a3c07d
Move from directly referencing an aggregated structure to using a
...
pointer to a structure. The structure is still aggregated but we add
a level of indirection for possible plugins to overwrite the storage
2011-10-25 23:01:49 +00:00
Andrey Hristov
4321da0388
move plugin specific stuff to one file. create object factory
...
for similar objects
2011-10-24 12:34:44 +00:00
Andrey Hristov
652490d43a
shift code around to two new files - mysqlnd_driver.c
...
and mysqlnd_ext_plugin.c (mysqlnd extension plugin)
2011-10-21 15:28:58 +00:00
Andrey Hristov
c9e7716cfd
Add mysqli_error_list() that returns an array with errors. Typically only
...
one and just one for libmysql. mysqlnd can return generate more than one error
during its work and with mysqli_error() only the last error is being reported.
In the array returned by mysqli_error_list() / $mysqli->error_list, all errors will be found.
The list is reset when the next command is executed
2011-08-04 09:51:26 +00:00
Andrey Hristov
e2ac61225f
fix macros
2011-05-31 10:35:07 +00:00
Andrey Hristov
0de3cd84a5
fix macros
2011-05-31 10:35:07 +00:00
Andrey Hristov
4439bde560
small cleanups
2011-01-24 13:58:18 +00:00
Andrey Hristov
ce4e6f4db5
Handle MySQL 5.5 authentication features.
...
Authentication protocol can be changed, a new raw
packet is introduced, which includes only the "encrypted"
data for the auth plugin, sent after change protocol (0xFE)
is sent to the client.
2011-01-24 12:34:47 +00:00
Andrey Hristov
16c6ce94d2
Update on the mysqlnd auth plugins, changed the plugin
...
structure and where they load themselves.
0xFE packets (method switch) needs to be done, additional
wire-level packet to be created to be parsed and the packet
doesn't fit the PACKET_OK structure anymore.
2011-01-14 20:04:17 +00:00
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
Felipe Pena
927bf09c29
- Year++
2011-01-01 02:19:59 +00:00
Felipe Pena
0203cc3d44
- Year++
2011-01-01 02:17:06 +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
c10af225c4
- 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
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
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
92ef63a07b
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
a3168a398c
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
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
Felipe Pena
a175419f84
- Fix copyrights
2010-04-20 13:50:34 +00:00
Felipe Pena
6d951e2ded
- Fix copyrights
2010-04-20 13:50:34 +00:00
Andrey Hristov
6aa682f564
CS + WS changes
2010-04-15 12:55:04 +00:00
Andrey Hristov
a9880e78c6
CS + WS changes
2010-04-15 12:55:04 +00:00
Andrey Hristov
aa8f43fad9
Recommit with an Windows build fix:
...
Fix inconsistencies
- memory allocated with spprintf, or likes, outside of mysqlnd's
allocator functions should not be freed by the mysqlnd's allocator
(a wrapper around emalloc/malloc).
- memory allocated by the mysqlnd's allocator should only be freed
by it.
- add a mode to track memory usage (malloc/free)
2010-04-06 13:28:23 +00:00
Pierre Joye
96e2651fa2
- revert revision 297277, break the builds (declaration must go 1st, size of void * and other known situations). Also Johannes, can you check that commit pls? Thought we were in bugs fixing only for 5.3
2010-04-01 20:21:50 +00:00
Andrey Hristov
d339672e45
Fix inconsistencies
...
- memory allocated with spprintf, or likes, outside of mysqlnd's
allocator functions should not be freed by the mysqlnd's allocator
(a wrapper around emalloc/malloc).
- memory allocated by the mysqlnd's allocator should only be freed
by it.
- add a mode to track memory usage (malloc/free)
2010-04-01 13:26:41 +00:00
Andrey Hristov
f534df710e
Fix inconsistencies
...
- memory allocated with spprintf, or likes, outside of mysqlnd's
allocator functions should not be freed by the mysqlnd's allocator
(a wrapper around emalloc/malloc).
- memory allocated by the mysqlnd's allocator should only be freed
by it.
- add a mode to track memory usage (malloc/free)
2010-04-01 13:26:41 +00:00
Andrey Hristov
4bbdce5ca7
export more functionality for phpize builds
2010-01-13 18:00:41 +00:00
Andrey Hristov
204f52f7e0
export more functionality for phpize builds
2010-01-13 18:00:41 +00:00
Andrey Hristov
b3546d1b5e
move MYSQLND_NET code to a separate file.
...
mysqlnd_wireprotocol is about the protocol not the transport
layer
2009-12-16 12:59:38 +00:00
Andrey Hristov
9f21c91a08
move MYSQLND_NET code to a separate file.
...
mysqlnd_wireprotocol is about the protocol not the transport
layer
2009-12-16 12:59:38 +00:00
Andrey Hristov
5143fe41e2
Compressed protocol support + extensibility for mysqlnd
2009-11-20 08:12:14 +00:00
Andrey Hristov
7674c942c7
Compressed protocol support + extensibility for mysqlnd
2009-11-20 08:12:14 +00:00
Andrey Hristov
1aad525c6e
Move definition
2009-10-22 15:17:03 +00:00
Andrey Hristov
b39c5e2332
Move definition
2009-10-22 15:17:03 +00:00
Ulf Wendel
1b5f0f63b4
Fix (by Andrey) and test for bug #49442 . Don't use efree() for memory allocated with malloc()... If a connection gets created by mysqli_init(), mysqlnd makes it 'persistent'. 'Persistent' means that mysqlnd uses malloc(). mysqlnd does use malloc() instead of ealloc() because it is unknown if the connection will become a true persistent connection in the sense of ext/mysqli. It is unknown if the user wants a persistent connection or not until the user calls mysqli_real_connect(). To avoid tricky conversions mysqlnd uses malloc(), which sets a private persistent flag in the mysqlnd structures. A precondition for the crash to happen was that the private persistent flag is set. The flag is also set when creating a real persistent connection (in the sense of ext/mysqli) and so the bug can happen with mysql_init()/mysqli_real_connect() and mysql_connect('p:<host>', ...). Therefore we test both cases. Note the (tricky?) difference between the implementation detail'mysqlnd private persistent flag = use malloc()' and persistent connections from a user perspective. Although mysqlnd will always set its private persistent flag and use malloc() for connections created with mysqli_init() it is still up to the user to decide in mysqli_real_connect() if the connection shall become a (true) persistent connection or not.
2009-09-16 17:03:44 +00:00
Ulf Wendel
e6cf6693e6
Fix (by Andrey) and test for bug #49442 . Don't use efree() for memory allocated with malloc()... If a connection gets created by mysqli_init(), mysqlnd makes it 'persistent'. 'Persistent' means that mysqlnd uses malloc(). mysqlnd does use malloc() instead of ealloc() because it is unknown if the connection will become a true persistent connection in the sense of ext/mysqli. It is unknown if the user wants a persistent connection or not until the user calls mysqli_real_connect(). To avoid tricky conversions mysqlnd uses malloc(), which sets a private persistent flag in the mysqlnd structures. A precondition for the crash to happen was that the private persistent flag is set. The flag is also set when creating a real persistent connection (in the sense of ext/mysqli) and so the bug can happen with mysql_init()/mysqli_real_connect() and mysql_connect('p:<host>', ...). Therefore we test both cases. Note the (tricky?) difference between the implementation detail'mysqlnd private persistent flag = use malloc()' and persistent connections from a user perspective. Although mysqlnd will always set its private persistent flag and use malloc() for connections created with mysqli_init() it is still up to the user to decide in mysqli_real_connect() if the connection shall become a (true) persistent connection or not.
2009-09-16 17:03:44 +00:00
Johannes Schlüter
ebef020ecc
- MFH: Improve mysqlnd's internal method registration
2009-02-16 17:26:43 +00:00
Johannes Schlüter
6a6e94c0d9
- Improve mysqlnd's internal method registration
2009-02-16 17:25:37 +00:00
Sebastian Bergmann
08659c2dcd
MFH: Bump copyright year, 3 of 3.
2008-12-31 11:15:49 +00:00
Sebastian Bergmann
7f4dc8702a
Bump copyright year, 3 of 3.
2008-12-31 11:12:40 +00:00
Andrey Hristov
9186528994
MFH:
...
Get rid of many defines (which simplifies the code a lot),
as well as uint->unsigned int
2008-11-06 10:37:47 +00:00