+ ina.s_addr = htonl(addr);
+ name = inet_ntoa(ina);
+ short_name = name;
+}
+
+void Host::set_name(const string &n)
+{
+ name = n;
+
+ if(local)
+ {
+ unsigned dot = name.find('.');
+ short_name = name.substr(0, dot);
+ }
+ else
+ {
+ unsigned dot = name.size();
+ for(unsigned i=0; (dot>0 && dot!=string::npos); ++i)
+ {
+ unsigned prev = name.rfind('.', dot-1);
+ if(prev+15<name.size() && i>1)
+ break;
+ dot = prev;
+ }
+
+ if(dot==string::npos)
+ short_name = name;
+ else
+ short_name = "..."+name.substr(dot+1);
+ }
+}
+
+void Host::set_local(bool l)
+{
+ local = l;