Commit graph

346 commits

Author SHA1 Message Date
andrey
571b46bff6 Add SHA256 authentication support - password hashing to mysqlnd
Automatic switchover to SSL with plain-text password is not part of this
2012-09-25 14:04:36 +02:00
andrey
0d1bc3e8e5 more refactoring stuff. Reduced code duplication in the authentication
code
2012-05-31 15:46:26 +03:00
andrey
5a2578a333 small refactoring - factour out code from connection establishment.
Add a define for the default authentication protocol - get away from
the hardcoded magic value
2012-05-30 15:24:17 +03:00
andrey
c75cbd62dd these methods should return a stream. This makes it easier to intercept
the return value
2012-05-07 15:32:00 +02:00
andrey
ec159081a0 reorganize things a bit...just shifting code 2012-05-07 13:31:42 +02:00
andrey
174bf906f8 refactor MYSQLND_NET, split it two parts for easy resharing 2012-04-30 17:01:56 +02:00
Felipe Pena
e4ca0ed09f - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
8775a37559 - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Andrey Hristov
de50e98a07 Add a middleman which can intercept the calls and can reroute them 2011-11-02 17:06:30 +00:00
Andrey Hristov
a330739594 Add a middleman which can intercept the calls and can reroute them 2011-11-02 17:06:30 +00:00
Andrey Hristov
ba1f65faa1 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
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
6a9feb730f 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
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
3295415cce Add hooks for __call like functionality and also allow to
handle calls that spread over two internal functions. Let's call it
a local TX.
2011-10-25 19:04:36 +00:00
Andrey Hristov
13bc754db7 Add hooks for __call like functionality and also allow to
handle calls that spread over two internal functions. Let's call it
a local TX.
2011-10-25 19:04:36 +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
10e4419231 api_ext to reverse_api 2011-10-19 15:04:12 +00:00
Andrey Hristov
efb68d9399 api_ext to reverse_api 2011-10-19 15:04:12 +00:00
Andrey Hristov
a498bc62b8 MYSQLND_NET refactored not to use any direct reference to MYSQLND (the connection)
QC will need an ifdef-layer to compile with this
2011-10-10 20:49:28 +00:00
Andrey Hristov
b5f5770399 MYSQLND_NET refactored not to use any direct reference to MYSQLND (the connection)
QC will need an ifdef-layer to compile with this
2011-10-10 20:49:28 +00:00
Andrey Hristov
fa8a1c387a 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
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