[fix](ipv6)Support IPV6 (#22219)
fe:Remove restrictions from IPv4 be: thrift server Specify binding address be: Restore changed code of “be/src/olap/task/engine_clone_task.cpp”
This commit is contained in:
@ -302,11 +302,11 @@ Status EngineCloneTask::_make_and_download_snapshots(DataDir& data_dir,
|
||||
// concat tablet_id and schema hash here.
|
||||
std::stringstream ss;
|
||||
if (snapshot_path->back() == '/') {
|
||||
ss << "http://" << src.host << ":" << src.http_port << HTTP_REQUEST_PREFIX
|
||||
ss << "http://" << get_host_port(src.host, src.http_port) << HTTP_REQUEST_PREFIX
|
||||
<< HTTP_REQUEST_TOKEN_PARAM << token << HTTP_REQUEST_FILE_PARAM << *snapshot_path
|
||||
<< _clone_req.tablet_id << "/" << _clone_req.schema_hash << "/";
|
||||
} else {
|
||||
ss << "http://" << src.host << ":" << src.http_port << HTTP_REQUEST_PREFIX
|
||||
ss << "http://" << get_host_port(src.host, src.http_port) << HTTP_REQUEST_PREFIX
|
||||
<< HTTP_REQUEST_TOKEN_PARAM << token << HTTP_REQUEST_FILE_PARAM << *snapshot_path
|
||||
<< "/" << _clone_req.tablet_id << "/" << _clone_req.schema_hash << "/";
|
||||
}
|
||||
|
||||
@ -111,6 +111,13 @@ const char* BackendOptions::get_service_bind_address() {
|
||||
return _service_bind_address;
|
||||
}
|
||||
|
||||
const char* BackendOptions::get_service_bind_address_without_bracket() {
|
||||
if (_bind_ipv6) {
|
||||
return "::0";
|
||||
}
|
||||
return _service_bind_address;
|
||||
}
|
||||
|
||||
bool BackendOptions::analyze_priority_cidrs() {
|
||||
if (config::priority_networks == "") {
|
||||
return true;
|
||||
|
||||
@ -36,6 +36,7 @@ public:
|
||||
static void set_localhost(const std::string& host);
|
||||
static bool is_bind_ipv6();
|
||||
static const char* get_service_bind_address();
|
||||
static const char* get_service_bind_address_without_bracket();
|
||||
|
||||
private:
|
||||
static bool analyze_priority_cidrs();
|
||||
|
||||
@ -38,6 +38,7 @@
|
||||
#include <sstream>
|
||||
#include <thread>
|
||||
|
||||
#include "service/backend_options.h"
|
||||
#include "util/doris_metrics.h"
|
||||
|
||||
namespace apache {
|
||||
@ -332,7 +333,8 @@ Status ThriftServer::start() {
|
||||
break;
|
||||
|
||||
case THREAD_POOL:
|
||||
fe_server_transport.reset(new apache::thrift::transport::TServerSocket(_port));
|
||||
fe_server_transport.reset(new apache::thrift::transport::TServerSocket(
|
||||
BackendOptions::get_service_bind_address_without_bracket(), _port));
|
||||
|
||||
if (transport_factory.get() == nullptr) {
|
||||
transport_factory.reset(new apache::thrift::transport::TBufferedTransportFactory());
|
||||
@ -343,7 +345,8 @@ Status ThriftServer::start() {
|
||||
break;
|
||||
|
||||
case THREADED:
|
||||
server_socket = new apache::thrift::transport::TServerSocket(_port);
|
||||
server_socket = new apache::thrift::transport::TServerSocket(
|
||||
BackendOptions::get_service_bind_address_without_bracket(), _port);
|
||||
// server_socket->setAcceptTimeout(500);
|
||||
fe_server_transport.reset(server_socket);
|
||||
|
||||
|
||||
@ -27,7 +27,6 @@ import com.google.common.net.InetAddresses;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.net.Inet4Address;
|
||||
import java.net.Inet6Address;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
@ -67,19 +66,17 @@ public class FrontendOptions {
|
||||
boolean hasMatchedIp = false;
|
||||
for (InetAddress addr : hosts) {
|
||||
LOG.debug("check ip address: {}", addr);
|
||||
if (addr instanceof Inet4Address) {
|
||||
if (addr.isLoopbackAddress()) {
|
||||
loopBack = addr;
|
||||
} else if (!priorityCidrs.isEmpty()) {
|
||||
if (isInPriorNetwork(addr.getHostAddress())) {
|
||||
localAddr = addr;
|
||||
hasMatchedIp = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (addr.isLoopbackAddress()) {
|
||||
loopBack = addr;
|
||||
} else if (!priorityCidrs.isEmpty()) {
|
||||
if (isInPriorNetwork(addr.getHostAddress())) {
|
||||
localAddr = addr;
|
||||
hasMatchedIp = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
localAddr = addr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
//if all ips not match the priority_networks then print the warning log
|
||||
|
||||
Reference in New Issue
Block a user