Добрый день.
Написал алгоритм для определения главного сервера (M) из имени хоста (H).
например
H = sample.narod.ru, M = narod.ru
или
H = sample1.sample2.narod.ru, M = narod.ru
или sample1.sample2.sample2.narod.net.tu, M = narod.net.ru
в общем думаю вы меня поняли.
Просьба подсказать как можно упростить алгоритм, т.к. участок кода важный,
и по возможности указать на ошибки.
Сразу говорю варианты типа narod.com.com некритичны
Код:
tmp — тут "sample.narod.ru"
s — сюда запишется "narod.ru"
std::vector<std::string> name_val;
boost::split(name_val,tmp,boost::is_any_of("."));
// Ищем с конца
for( int i = name_val.size() - 1; i != -1 ; i-- ){
// Если не домен
if( !domains->isDomain( name_val[i] ) ){
while( i != name_val.size() ){
s.append(name_val[i]);
if( i + 1 != name_val.size() ){
s.append(".");
}
i++;
}
ret = true;
break;
}
}