if(family==AF_INET) {
sin4->sin4.sin_port = htons(port);
- if (::bind(ret, (struct sockaddr *)&*sin4, sizeof(*sin4)) >= 0)
+ if (::bind(ret, (struct sockaddr *)&*sin4, sin4->getSocklen()) >= 0)
break;
}
else {
sin6->sin6.sin6_port = htons(port);
- if (::bind(ret, (struct sockaddr *)&*sin6, sizeof(*sin6)) >= 0)
+ if (::bind(ret, (struct sockaddr *)&*sin6, sin6->getSocklen()) >= 0)
break;
}
}
}
static void houseKeeping(void *)
+try
{
static time_t last_stat, last_rootupdate, last_prune;
struct timeval now;
L<<Logger::Error<<"Failed to update . records, RCODE="<<res<<endl;
}
}
-
+catch(AhuException& ae)
+{
+ L<<Logger::Error<<"Fatal error: "<<ae.reason<<endl;
+ throw;
+}
#if 0