Commit graph

318 commits

Author SHA1 Message Date
Andrey Hristov
12a4dcf5dc Fix valgrind error (sending of initialized bytes over the network).
When the compression was successful the compressed data + uninitialized data
at the end was sent to the server, because the length of the compressed payload
wasn't correctly calculated (actually the length of the uncompressed payload as assumed).
However, the uncompress() function has internally the length of the real payload and skips
the binary trash at the end - thus no data damage occurs!
2011-08-31 18:18:23 +00:00
Andrey Hristov
604fa1537a Fix valgrind error (sending of initialized bytes over the network).
When the compression was successful the compressed data + uninitialized data
at the end was sent to the server, because the length of the compressed payload
wasn't correctly calculated (actually the length of the uncompressed payload as assumed).
However, the uncompress() function has internally the length of the real payload and skips
the binary trash at the end - thus no data damage occurs!
2011-08-31 18:18:23 +00:00
Andrey Hristov
56d6f23196 relax constraint 2011-08-10 14:12:24 +00:00
Andrey Hristov
e289cf7267 relax constraint 2011-08-10 14:12:24 +00:00
Andrey Hristov
d627115800 relax constraint 2011-08-10 14:12:24 +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
3afdf62df0 throw out legacy code, that never was used for something
useful. Was added for QC but QC is now a plugin, not part of
the core.
2011-03-21 13:58:11 +00:00
Andrey Hristov
2d2d1c7335 new function/methods - mysqlnd_stmt_flush. Removing
code duplication
2011-03-18 13:35:33 +00:00
Andrey Hristov
4a38256394 compiler warnings fixed 2011-03-16 11:51:56 +00:00
Andrey Hristov
a5348bed31 use ifdef all-around in the revert 2011-02-25 13:11:49 +00:00
Andrey Hristov
d4a1f5ac06 revert to previous behavior 2011-02-25 12:52:21 +00:00
Andrey Hristov
59c5875f83 move from macros to functions, which can be overwritten, if needed 2011-02-25 12:25:36 +00:00
Andrey Hristov
113cd9dc0f move from macros to functions, which can be overwritten, if needed 2011-02-25 12:25:36 +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
5ca5c2bf43 Change things to allow passing of the password length
to mysqlnd. This is needed as a password might include
a \0 and thus we need to be binary safe.
2011-01-14 13:00:42 +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
548661d96d rename parameter, should not conflict with global symbol -
the socket function
2010-10-05 16:27:49 +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
c4e145b0bc fixing more types 2010-10-05 10:30:00 +00:00
Andrey Hristov
75ed0bbb3e fixing more types 2010-10-05 10:30:00 +00:00
Andrey Hristov
22d73027d0 add another hook, maybe the last one, for MYSQLND_STMT, which
was missed before
2010-09-28 14:36:18 +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
292785ed61 fix build on windows, seems this macro is not defined 2010-09-01 16:54:20 +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
8220c2e4ce 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
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
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
f8c2680509 Lay foundations for named pipe support in mysqlnd 2010-08-09 17:01:57 +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
David Soria Parra
9d02d50df2 make ssl_set return value in mysqlnd compatible with libmysqli return value 2010-08-06 19:47:03 +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
89bd3af6b9 Two functions, which should be methods so one can catch
their output, for example
2010-06-24 19:52:13 +00:00
Andrey Hristov
6b730a04ae missed this one in the last commit, the real type 2010-06-18 12:00:57 +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
047d6f2855 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
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
b7385f02fd Fix deallocation which can crash if the object is half-baken.
Happens during OOM.
2010-05-27 08:51:46 +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
bcdc3b30f7 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
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
c881ee30ea Allow overloading of mysqlnd_result_meta_init().
Add free space for future hooks.
2010-05-14 15:11:56 +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
b86ebe46cb - 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