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
845d8fa10c
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
374018803a
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
139813877c
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
11f198b203
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
33701b76ae
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
Andrey Hristov
0b46d6b5a5
Get rid of many defines (which simplifies the code a lot),
...
as well as uint->unsigned int
2008-11-06 10:36:30 +00:00
Andrey Hristov
77c1e145e1
MFB:
...
64bit fixes:
- fixes to sprintf modifiers, cleaning warnings
- use _t types, like uint64_t instead of uint64, thus skipping series of
typedefs.
2008-10-31 20:32:17 +00:00