summaryrefslogtreecommitdiff
path: root/plugin/feedback
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-11-13 13:28:35 +0100
committerSergei Golubchik <sergii@pisem.net>2011-11-13 13:28:35 +0100
commitac20f84e7e1f624262d057f3f5c61963da840de8 (patch)
treec2bf206acb51a070dfbd3aa6f0476d3d2f62d910 /plugin/feedback
parentf9675754577f439a5975b74dfe5f4c6cc4b09712 (diff)
downloadmariadb-git-ac20f84e7e1f624262d057f3f5c61963da840de8.tar.gz
don't make feedback_plugin_send.test as 'big'
don't assume that the http reply packet will arrive in all in one piece
Diffstat (limited to 'plugin/feedback')
-rw-r--r--plugin/feedback/url_http.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/plugin/feedback/url_http.cc b/plugin/feedback/url_http.cc
index e1f60d60de7..71b67a52807 100644
--- a/plugin/feedback/url_http.cc
+++ b/plugin/feedback/url_http.cc
@@ -155,7 +155,7 @@ int Url_http::send(const char* data, size_t data_length)
{
my_socket fd= INVALID_SOCKET;
char buf[1024];
- uint len;
+ uint len= 0;
addrinfo *addrs, *addr, filter= {0, AF_UNSPEC, SOCK_STREAM, 6, 0, 0, 0, 0};
int res= getaddrinfo(host.str, port.str, &filter, &addrs);
@@ -258,7 +258,13 @@ int Url_http::send(const char* data, size_t data_length)
Extract the first string between <h1>...</h1> tags
and put it as a server reply into the error log.
*/
- len= vio_read(vio, (uchar*)buf, sizeof(buf)-1);
+ for (;;)
+ {
+ size_t i= vio_read(vio, (uchar*)buf + len, sizeof(buf) - len - 1);
+ if ((int)i <= 0)
+ break;
+ len+= i;
+ }
if (len && len < sizeof(buf))
{
char *from;