diff options
author | Sergei Golubchik <sergii@pisem.net> | 2011-11-13 13:28:35 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2011-11-13 13:28:35 +0100 |
commit | ac20f84e7e1f624262d057f3f5c61963da840de8 (patch) | |
tree | c2bf206acb51a070dfbd3aa6f0476d3d2f62d910 | |
parent | f9675754577f439a5975b74dfe5f4c6cc4b09712 (diff) | |
download | mariadb-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
-rw-r--r-- | mysql-test/t/feedback_plugin_send.test | 1 | ||||
-rw-r--r-- | plugin/feedback/url_http.cc | 10 |
2 files changed, 8 insertions, 3 deletions
diff --git a/mysql-test/t/feedback_plugin_send.test b/mysql-test/t/feedback_plugin_send.test index b49c0d0e252..14765ee9543 100644 --- a/mysql-test/t/feedback_plugin_send.test +++ b/mysql-test/t/feedback_plugin_send.test @@ -1,5 +1,4 @@ source t/feedback_plugin_load.test; -source include/big_test.inc; if (!$MTR_FEEDBACK_PLUGIN) { skip MTR_FEEDBACK_PLUGIN is not set; 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; |