Sammy Kaye Powers
dac6c639bb
Update copyright headers to 2017
2017-01-04 11:23:42 -06:00
Nikita Popov
43ed89ea31
Fix data_size decrement
...
We don't want to decrement the pointer...
2017-01-02 23:47:30 +01:00
Nikita Popov
737eb060db
Merge branch 'PHP-7.0' into PHP-7.1
2017-01-02 23:39:35 +01:00
vanviegen
abba56f605
Fix for sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE
...
Fixes bug #73800
news entry for PR #2249
2017-01-02 14:56:41 +00:00
vanviegen
732f67ee6f
Fix for sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE
...
Fixes bug #73800
news entry for PR #2250
2017-01-02 14:54:45 +00:00
Andrey Hristov
9eca4dca73
Optimized memory handling of BIT fields. Less memory copies and less
...
memory usage.
2016-12-12 21:59:29 +02:00
Andrey Hristov
2819a28ac3
Merge branch 'PHP-7.0' into PHP-7.1
2016-12-12 21:12:44 +02:00
Andrey Hristov
e15c418c4c
Fix off by 1 problem.
...
The problem was manifestated only with BIT columns and only when more than
one row was fetched. The problem was coming from the fact that in pre-7.0
times mysqlnd was using a no-copy optimization. This optimization kept the
strings (and also the BIT mask equivalents as strings) in the packet and the
zval referred to them. 7.0+ zvals cannot use no-copy and always copy. Because
of this the allocated memory for the packet was reduced by 1 by the person who
ported the driver, but the starting address of the bit area wasn't reduced.
Because of this the bit_area started at wrong address and the length decoded
wrong.
2016-12-12 21:11:02 +02:00
Stanislav Malyshev
caea2c876b
Fix bug #72293 - Heap overflow in mysqlnd related to BIT fields
2016-09-12 21:07:44 -07:00
Stanislav Malyshev
c984661d39
Fix bug #72293 - Heap overflow in mysqlnd related to BIT fields
2016-09-12 20:28:50 -07:00
Dmitry Stogov
adc95c5114
Fixed compilation warnings
2016-06-23 12:47:06 +03:00
Kalle Sommer Nielsen
9a83a679ef
Fix build
2016-03-17 03:45:04 +01:00
Andrey Hristov
3a33ee63e8
Merge branch 'PHP-7.0'
2016-03-16 10:47:27 +01:00
Andrey Hristov
f2ab731a8c
Fix emails in headers. @mysql.com addresses are no more since many years.
2016-03-16 10:24:52 +01:00
Nikita Popov
2d1559f827
Move free_chunk and resize_chunk into memory pool
...
Drops 24 bytes from each chunk. For the example in bug #71468 it
reduces memory usage by 30%.
2016-02-22 19:40:32 +01:00
Lior Kaplan
3d5438bf7b
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Update header to PHP Version 7
Happy new year (Update copyright to 2016)
Happy new year (Update copyright to 2016)
2016-01-01 20:04:31 +02:00
Lior Kaplan
ed35de784f
Merge branch 'PHP-5.6' into PHP-7.0
...
* PHP-5.6:
Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan
49493a2dcf
Happy new year (Update copyright to 2016)
2016-01-01 19:21:47 +02:00
Andrey Hristov
a6b79f08b3
More const and moved the declaration of php_mysqlnd_scramble() to mysqlnd_auth.h
2015-11-17 14:59:59 +01:00
Andrey Hristov
4fed8a28d0
mysqlnd refactoring :
...
- move the command buffer out of the networking code to the protocol frame
codec.
2015-11-16 15:37:11 +01:00
Andrey Hristov
c24d452f60
MNDR:
...
- less dereferencing in mysqlnd_ps . Dereference stmt->conn only once and
use a stack variable. Also make the source cleaner.
2015-11-12 16:19:16 +01:00
Andrey Hristov
94ce013bff
MNDR:
...
- remove unused macros
2015-11-12 16:19:16 +01:00
Andrey Hristov
2e3fc57c5c
MNDR:
...
- move things out of mysqlnd_priv.h
2015-11-12 16:19:16 +01:00
Andrey Hristov
e8ace2d4db
MNDR:
...
- remove inclusion of uneeded headers
2015-11-12 16:19:16 +01:00
Andrey Hristov
4248240648
MNDR:
...
- move the command factory to own file - mysqlnd_commands.c
2015-11-12 16:19:16 +01:00
Andrey Hristov
2cea04165c
MNDR:
...
- move all data members from MYSQLND_PFC to MYSQLND_PFC_DATA
2015-11-12 16:19:16 +01:00
Andrey Hristov
a530ecff97
MNDR:
...
- better name for MYSQLND_PPEC - MYSQLND_PFC (protocol frame codec)
2015-11-12 16:19:16 +01:00
Andrey Hristov
654d1a7caf
MNDR:
...
- rename MYSQLND_NET to MYSQLND_PPEC (protocol packet envelope codec).
PPEC does only the encoding and decoding to the protocol frame.
2015-11-12 16:19:16 +01:00
Andrey Hristov
80d59a3a36
MNDR:
...
- intermediate step to move MYSQLND_NET from mysqlnd_vio.c to mysqlnd_wireprotocol.c
In following commits MYSQLND_NET's methods and data will be moved to MYSQLND_PROTOCOL
2015-11-12 16:19:16 +01:00
Andrey Hristov
e9f3139f43
MNDR:
...
- split MYSQLND_NET into MYSQLND_NET and MYSQLND_VIO
MYSQLND_NET is above MYSQLND_VIO. _NET takes care of protocol packet
counting (even with compressed), while VIO is just about the network
(or in case of windows, non-network, but PIPE) transport.
2015-11-12 16:19:16 +01:00
Andrey Hristov
a990573752
MNDR:
...
- some small renaming of methods
2015-11-12 16:19:16 +01:00
Andrey Hristov
0d3329fc93
MNDR:
...
- send_command and send_command_handle_response_* moved to a structure
2015-11-12 16:19:16 +01:00
Andrey Hristov
b8b1d45c3c
MNDR:
...
- move connection establishment code to own command - COM_HANDSHAKE
2015-11-12 16:19:16 +01:00
Andrey Hristov
baab519ae5
MNDR:
...
- decouple the commands from the connection. CONN ist passed now only in 1 case
2015-11-12 16:19:16 +01:00
Andrey Hristov
5abee1948e
MNDR:
...
- remove dead code
2015-11-12 16:19:16 +01:00
Andrey Hristov
71e703761f
MNDR:
...
- clean up some things
2015-11-12 16:19:16 +01:00
Andrey Hristov
e30e884e53
MNDR:
...
- move COM_INIT_DE result handling to the command
2015-11-12 16:19:16 +01:00
Andrey Hristov
fefc3045a3
MNDR:
...
- remove COM_FIELD_LIST
2015-11-12 16:19:16 +01:00
Andrey Hristov
75a1fcc724
MNDR:
...
- move handling of commands to the command itself
2015-11-12 16:19:16 +01:00
Andrey Hristov
7e6f9a84cb
MNDR:
...
- split handle_response() into handle_OK and handle_EOF
2015-11-12 16:19:16 +01:00
Andrey Hristov
aa4966d4e3
MNDR:
...
- now send_command_handle_response() also doesn't depend directly on
MYSQLND_CONN_DATA
2015-11-12 16:19:16 +01:00
Andrey Hristov
f7a445856d
MNDR:
...
- pass connection closer and its context
- remove unused parameter
2015-11-12 16:19:16 +01:00
Andrey Hristov
280c834c49
MNDR:
...
- rename the macro for updating the connection state
2015-11-12 16:19:16 +01:00
Andrey Hristov
4bb784cd0d
MNDR:
...
- make MYSQLND_ERROR_INFO a class
2015-11-12 16:19:16 +01:00
Andrey Hristov
5609eabc6f
MDNR:
...
- make MYSQLND_UPSERT_STATUS more like an object that a simple structure
Still use macros to make updates simple
2015-11-12 16:19:16 +01:00
Andrey Hristov
092afe7212
MNDR:
...
- abstract SSL enabling into COM_ENABLE_SSL
2015-11-12 16:19:16 +01:00
Andrey Hristov
10d4fb8a94
MDNR:
...
- Refactor the command factory. Let the factory be exchangeable.
2015-11-12 16:19:16 +01:00
Andrey Hristov
7d7ff67b82
MDNR:
...
- send_command() is no more, thus we need commands for all COM_STMT_*
+ CHANGE_USER
2015-11-12 16:19:16 +01:00
Andrey Hristov
cfd868651a
MDNR:
...
- removed init() method from mysqlnd_conn_data and moved the initialization
to the object factory->get_connection(). Now it is unified as with the prepared
statement which doesn't have any init() method
- the protocol decoder factory now takes connection as parameter at creation and
thus there is no need to pass the connection as parameter when calling the read
or the write method of a packet.
- saved the protocol payload decoder factory as pointer in every packet (read/write)
so the connection doesn't need to be passed on every call of read/write (dependency
has been already injected at creation). This will alow to move protocol specific
code from MYSQLND_NET (send_ex()) to make MYSQLND_NET leaner and free from protocol
stuff.
2015-11-12 16:19:16 +01:00
Andrey Hristov
75dc67c6ae
MNDR:
...
- move macro to a function
2015-11-12 16:19:16 +01:00