mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
Merge branch '5.5' into 10.0
This commit is contained in:
commit
271fed4106
116 changed files with 2625 additions and 533 deletions
|
|
@ -38,20 +38,39 @@ class Url_http: public Url {
|
|||
protected:
|
||||
const LEX_STRING host, port, path;
|
||||
bool ssl;
|
||||
LEX_STRING proxy_host, proxy_port;
|
||||
|
||||
int use_proxy()
|
||||
{
|
||||
return proxy_host.length;
|
||||
}
|
||||
|
||||
Url_http(LEX_STRING &url_arg, LEX_STRING &host_arg,
|
||||
LEX_STRING &port_arg, LEX_STRING &path_arg, bool ssl_arg) :
|
||||
Url(url_arg), host(host_arg), port(port_arg), path(path_arg), ssl(ssl_arg)
|
||||
{}
|
||||
{
|
||||
proxy_host.length= 0;
|
||||
}
|
||||
~Url_http()
|
||||
{
|
||||
my_free(host.str);
|
||||
my_free(port.str);
|
||||
my_free(path.str);
|
||||
set_proxy(0,0);
|
||||
}
|
||||
|
||||
public:
|
||||
int send(const char* data, size_t data_length);
|
||||
int set_proxy(const char *proxy, size_t proxy_len)
|
||||
{
|
||||
if (use_proxy())
|
||||
{
|
||||
my_free(proxy_host.str);
|
||||
my_free(proxy_port.str);
|
||||
}
|
||||
|
||||
return parse_proxy_server(proxy, proxy_len, &proxy_host, &proxy_port);
|
||||
}
|
||||
|
||||
friend Url* http_create(const char *url, size_t url_length);
|
||||
};
|
||||
|
|
@ -150,7 +169,9 @@ int Url_http::send(const char* data, size_t data_length)
|
|||
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);
|
||||
int res= use_proxy() ?
|
||||
getaddrinfo(proxy_host.str, proxy_port.str, &filter, &addrs) :
|
||||
getaddrinfo(host.str, port.str, &filter, &addrs);
|
||||
|
||||
if (res)
|
||||
{
|
||||
|
|
@ -228,16 +249,20 @@ int Url_http::send(const char* data, size_t data_length)
|
|||
};
|
||||
|
||||
len= my_snprintf(buf, sizeof(buf),
|
||||
"POST %s HTTP/1.0\r\n"
|
||||
"User-Agent: MariaDB User Feedback Plugin\r\n"
|
||||
"Host: %s:%s\r\n"
|
||||
"Accept: */*\r\n"
|
||||
"Content-Length: %u\r\n"
|
||||
"Content-Type: multipart/form-data; boundary=%s\r\n"
|
||||
"\r\n",
|
||||
path.str, host.str, port.str,
|
||||
(uint)(2*boundary.length + header.length + data_length + 4),
|
||||
boundary.str + 2);
|
||||
use_proxy() ? "POST http://%s:%s/" : "POST ",
|
||||
host.str, port.str);
|
||||
|
||||
len+= my_snprintf(buf+len, sizeof(buf)-len,
|
||||
"%s HTTP/1.0\r\n"
|
||||
"User-Agent: MariaDB User Feedback Plugin\r\n"
|
||||
"Host: %s:%s\r\n"
|
||||
"Accept: */*\r\n"
|
||||
"Content-Length: %u\r\n"
|
||||
"Content-Type: multipart/form-data; boundary=%s\r\n"
|
||||
"\r\n",
|
||||
path.str, host.str, port.str,
|
||||
(uint)(2*boundary.length + header.length + data_length + 4),
|
||||
boundary.str + 2);
|
||||
|
||||
vio_timeout(vio, FOR_READING, send_timeout);
|
||||
vio_timeout(vio, FOR_WRITING, send_timeout);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue