throw std::range_error("no such thing as an empty label to append");
if(length > 63)
throw std::range_error("label too long to append");
- if(d_storage.size() + length > 254) // reserve two bytes, one for length and one for the root label
+ if(d_storage.size() + length > 254) // reserve one byte for the label length
throw std::range_error("name too long to append");
if(d_storage.empty()) {
throw std::range_error("no such thing as an empty label to prepend");
if(label.size() > 63)
throw std::range_error("label too long to prepend");
- if(d_storage.size() + label.size() > 254) // reserve two bytes, one for length and one for the root label
+ if(d_storage.size() + label.size() > 254) // reserve one byte for the label length
throw std::range_error("name too long to prepend");
if(d_storage.empty())
}
DNSName& operator+=(const DNSName& rhs)
{
- if(d_storage.size() + rhs.d_storage.size() > 256) // reserve one byte for the root label
+ if(d_storage.size() + rhs.d_storage.size() > 256) // one extra byte for the second root label
throw std::range_error("name too long");
if(rhs.empty())
return *this;