(delim_pos=ip.find('-')) != string::npos)
{
if (delim_pos+1 >= ip.size())
- throw runtime_error("invalid IP given");
+ throw runtime_error("invalid IP given: "+ip);
if (ip.at(delim_pos) == '/')
t=NETWORK;
if (t==IP)
{
if(!inet_aton(ip.c_str(),&ia_ip1))
- throw runtime_error("invalid IP given");
+ throw runtime_error("invalid IP given: "+ip);
this->ip=ia_ip1.s_addr;
this->mask=0xFFFFFFFF;
{
// TODO: Better IP checks: "16" != "0.0.0.16"
if(!inet_aton(ip.c_str(),&ia_ip1))
- throw runtime_error("invalid IP given");
+ throw runtime_error("invalid IP given: "+ip);
// Check if mask is in cidr notation
if (mask_or_end.find(".") == string::npos) {
in >> calc_mask;
if(calc_mask > 32)
- throw runtime_error("invalid cidr mask given");
+ throw runtime_error("invalid cidr mask given: "+mask_or_end);
ia_ip2.s_addr = calc_netmask_from_cidr(calc_mask);
} else
if (!inet_aton(mask_or_end.c_str(),&ia_ip2))
- throw runtime_error("invalid IP given");
+ throw runtime_error("invalid IP given: "+mask_or_end);
this->ip=ia_ip1.s_addr;
this->mask=ia_ip2.s_addr;
else if (t==RANGE)
{
if(!inet_aton(ip.c_str(),&ia_ip1) || !inet_aton(mask_or_end.c_str(),&ia_ip2))
- throw runtime_error("invalid IP given");
+ throw runtime_error("invalid IP given: "+ip);
this->ip=ia_ip1.s_addr;
this->end=ia_ip2.s_addr;
throw dns_exception(hstrerror(h_errno));
if (dnsdata->h_addr_list == NULL || *(dnsdata->h_addr_list) == NULL)
- throw dns_exception("no corresponding ip found");
+ throw dns_exception("no corresponding ip found for: "+iporname);
return inet_ntoa(*(struct in_addr*)(*dnsdata->h_addr_list));
}