Files
ray/src/utils.h
T
2016-06-10 14:12:15 -07:00

25 lines
732 B
C++

#ifndef RAY_UTILS_H
#define RAY_UTILS_H
inline std::string::iterator split_ip_address(std::string& ip_address) {
if (ip_address[0] == '[') { // IPv6
auto split_end = std::find(ip_address.begin() + 1, ip_address.end(), ']');
if(split_end != ip_address.end()) {
split_end++;
}
if(split_end != ip_address.end() && *split_end == ':') {
return split_end;
}
RAY_LOG(RAY_FATAL, "ip address should contain a port number");
} else { // IPv4
auto split_point = std::find(ip_address.rbegin(), ip_address.rend(), ':').base();
if (split_point == ip_address.begin()) {
RAY_LOG(RAY_FATAL, "ip address should contain a port number");
} else {
return split_point;
}
}
}
#endif