Andrey Hristov
2331e28509
cosmetics. typedef-ed types should be in capital case
2010-01-11 20:10:10 +00:00
Andrey Hristov
9939429f4e
remove extern defintion of a variable that is no more
...
used outside of the file where it is declared.
Also really export with PHPAPI the protocol init/deinit functions
2010-01-11 19:13:43 +00:00
Andrey Hristov
1a108f1bae
remove extern defintion of a variable that is no more
...
used outside of the file where it is declared.
Also really export with PHPAPI the protocol init/deinit functions
2010-01-11 19:13:43 +00:00
Andrey Hristov
d20fdd603b
improve the stats subsystem. Reduce the number of macro definitions
...
in half by smartly introducing 2 new macros. Make MYSQLND::stats a pointer
from being aggregated and add triggers.
2010-01-08 17:35:20 +00:00
Andrey Hristov
a98a67940a
improve the stats subsystem. Reduce the number of macro definitions
...
in half by smartly introducing 2 new macros. Make MYSQLND::stats a pointer
from being aggregated and add triggers.
2010-01-08 17:35:20 +00:00
Andrey Hristov
3264e51983
add restart_psession and end_psession hooks
2010-01-08 13:47:03 +00:00
Andrey Hristov
fcef58951b
add restart_psession and end_psession hooks
2010-01-08 13:47:03 +00:00
Andrey Hristov
81b0630f5a
Change of way the packet objects are created/initialised
...
If the protocol gets changed, ever, we can decide at runtime
easily which protocol to use by instantiating the right protocol
object. But this is restricted to the structure of the packets, not
the flow.
2010-01-07 19:44:59 +00:00
Andrey Hristov
73b23fca37
Change of way the packet objects are created/initialised
...
If the protocol gets changed, ever, we can decide at runtime
easily which protocol to use by instantiating the right protocol
object. But this is restricted to the structure of the packets, not
the flow.
2010-01-07 19:44:59 +00:00
Andrey Hristov
a3e5d1852a
Move this function to MYSQLND_NET as it works on the
...
php stream
2009-12-21 16:52:10 +00:00
Andrey Hristov
41ac91aecf
Move this function to MYSQLND_NET as it works on the
...
php stream
2009-12-21 16:52:10 +00:00
Andrey Hristov
3e3d0e0d88
magic numbers to macros
2009-12-21 16:17:31 +00:00
Andrey Hristov
ce349e3540
magic numbers to macros
2009-12-21 16:17:31 +00:00
Andrey Hristov
f8dcfbc74f
refactoring : move more network related functions to
...
mysqlnd_net.c . Now communication is split on two levels:
- logical (functions send and receive)
- physical (functions network_read and network_write)
2009-12-17 13:29:46 +00:00
Andrey Hristov
028bd4ba02
refactoring : move more network related functions to
...
mysqlnd_net.c . Now communication is split on two levels:
- logical (functions send and receive)
- physical (functions network_read and network_write)
2009-12-17 13:29:46 +00:00
Andrey Hristov
60697e1876
During refactoring of the function mysqlnd_stream_write_w_header() it was
...
found that there is a bug in the way the data is sent, although a very rare
one which will only affect very large queries which have length 16777214. The
communication will hang. A way to test it is to execute the following:
./php -r '$c=mysqli_connect("127.0.0.1","root","root","test");
$q="insert into test.tblob values(\"".str_repeat("a",256*256*256-1-34)."\")";
$c->query($q);'
2009-12-17 12:30:58 +00:00
Andrey Hristov
22528b14a4
During refactoring of the function mysqlnd_stream_write_w_header() it was
...
found that there is a bug in the way the data is sent, although a very rare
one which will only affect very large queries which have length 16777214. The
communication will hang. A way to test it is to execute the following:
./php -r '$c=mysqli_connect("127.0.0.1","root","root","test");
$q="insert into test.tblob values(\"".str_repeat("a",256*256*256-1-34)."\")";
$c->query($q);'
2009-12-17 12:30:58 +00:00
Andrey Hristov
a1ef2d9fb3
Remove unneeded dereferences
...
(oops, committed the trunk changes from a wrong directory, which splitted
this commit).
2009-12-16 14:06:09 +00:00
Andrey Hristov
6adc50b460
Remove unneeded dereferences
2009-12-16 14:05:35 +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
c101f7f542
Move code out of mysqlnd_conn::connect to mysqlnd_net::connect.
...
Thus mysqlnd_conn::connect() does less of what it should not do - think
about the transport level.
2009-12-15 17:33:06 +00:00
Andrey Hristov
1fc65ed8bb
Move code out of mysqlnd_conn::connect to mysqlnd_net::connect.
...
Thus mysqlnd_conn::connect() does less of what it should not do - think
about the transport level.
2009-12-15 17:33:06 +00:00
Andrey Hristov
0371ef1070
refactor: move code that belongs to MYSQLND_NET out of MYSQLND
2009-12-15 13:13:51 +00:00
Andrey Hristov
e6e40722d9
refactor: move code that belongs to MYSQLND_NET out of MYSQLND
2009-12-15 13:13:51 +00:00
Pierre Joye
1ab58199a9
- fix build, come on, it is not that hard to test before commit, is it?
2009-12-11 16:35:42 +00:00
Pierre Joye
af206a90ae
- fix build, come on, it is not that hard to test before commit, is it?
2009-12-11 16:35:42 +00:00
Andrey Hristov
13c8bba00a
Make MYSQLND_NET dynamically allocated structure with allocator
...
and deallocator. More member functions will come.
2009-12-11 11:58:57 +00:00
Andrey Hristov
b1d4cea57e
Make MYSQLND_NET dynamically allocated structure with allocator
...
and deallocator. More member functions will come.
2009-12-11 11:58:57 +00:00
Andrey Hristov
6f598e62ff
Remove the zval caching from mysqlnd. It was disabled versions ago
...
due to problems on windows, which were not debugged. Better have
code that is disabled not in the core.
2009-12-09 20:21:05 +00:00
Andrey Hristov
fd44827701
Remove the zval caching from mysqlnd. It was disabled versions ago
...
due to problems on windows, which were not debugged. Better have
code that is disabled not in the core.
2009-12-09 20:21:05 +00:00
Pierre Joye
80e5ef6fa5
- void is NaN, you can't do math ops on void. Declarations go first. Fix TS build
2009-11-30 10:56:01 +00:00
Pierre Joye
2a3ec70d10
- void is NaN, you can't do math ops on void. Declarations go first. Fix TS build
2009-11-30 10:56:01 +00:00
Andrey Hristov
0c6fa49fff
fix debug windows build as well as remove a compilation warning
...
(a header not included)
2009-11-26 11:10:47 +00:00
Andrey Hristov
1cf1cb3015
fix debug windows build as well as remove a compilation warning
...
(a header not included)
2009-11-26 11:10:47 +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
Ulf Wendel
355a88f676
Fixing problems when calling connect (again and again) on a valid connection handle. Most of the patch comes from Andrey.
2009-10-15 15:49:40 +00:00
Ulf Wendel
ab4670ee53
Fixing problems when calling connect (again and again) on a valid connection handle. Most of the patch comes from Andrey.
2009-10-15 15:49:40 +00:00
Andrey Hristov
2743c7a6df
Fix ZTS build
2009-09-30 23:34:56 +00:00
Andrey Hristov
2f81bcd44b
Fix ZTS build
2009-09-30 23:34:56 +00:00
Andrey Hristov
4ac04d8936
Afix not included by the fix committed by Ulf.
...
pemalloc and then efree - too bad!
Sorry for committing in two passes, my big tree is already patched
with compressed.
2009-09-17 15:13:36 +00:00
Andrey Hristov
c2e66884e1
MFH, a fix not included by the fix committed by Ulf.
...
pemalloc and then efree - too bad!
Sorry for committing in two passes, my big tree is already patched
with compressed.
2009-09-17 15:13:14 +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
Ulf Wendel
5f260e14b2
Next attempt to fix http://bugs.php.net/bug.php?id=48745 . Patch by Andrey.
2009-09-09 17:03:03 +00:00
Ulf Wendel
5254c6f372
Next attempt to fix http://bugs.php.net/bug.php?id=48745 . Patch by Andrey.
2009-09-09 17:03:03 +00:00
Andrey Hristov
e8412fb61c
Fix for bug#48745
...
mysqlnd: mysql_num_fields returns wrong column count for mysql_list_fields
2009-08-28 09:30:16 +00:00
Johannes Schlüter
7f6fa981b3
MFB52: Fix include path
2009-07-01 14:13:07 +00:00
Johannes Schlüter
81761e636d
Fix path
2009-06-28 21:52:51 +00:00