SockAddr *resolve(const string &host, const string &serv, Family family)
{
- const char *chost = (host.empty() ? 0 : host.c_str());
- const char *cserv = (serv.empty() ? 0 : serv.c_str());
+ const char *chost = (host.empty() ? nullptr : host.c_str());
+ const char *cserv = (serv.empty() ? nullptr : serv.c_str());
int flags = 0;
if(host=="*")
{
flags = AI_PASSIVE;
- chost = 0;
+ chost = nullptr;
}
- addrinfo hints = { flags, family_to_sys(family), 0, 0, 0, 0, 0, 0 };
+ addrinfo hints = { flags, family_to_sys(family), 0, 0, 0, nullptr, nullptr, nullptr };
addrinfo *res;
int err = getaddrinfo(chost, cserv, &hints, &res);
}
-Resolver::Resolver():
- event_disp(0),
- next_tag(1)
+Resolver::Resolver()
{
thread.get_notify_pipe().signal_data_available.connect(sigc::mem_fun(this, &Resolver::task_done));
}
if(signal_resolve_failed.empty())
{
RefPtr<runtime_error> err = task->error;
- task->error = 0;
+ task->error = nullptr;
thread.pop_complete_task();
throw *err;
}
}
-Resolver::Task::Task():
- tag(0),
- family(UNSPEC),
- addr(0),
- error(0)
-{ }
-
-
Resolver::WorkerThread::WorkerThread():
Thread("Resolver"),
- sem(1),
- done(false)
+ sem(1)
{
launch();
}
if(!queue.empty() && queue.front().is_complete())
return &queue.front();
else
- return 0;
+ return nullptr;
}
void Resolver::WorkerThread::pop_complete_task()
sem.wait();
wait = false;
- Task *task = 0;
+ Task *task = nullptr;
{
MutexLock lock(queue_mutex);
for(auto i=queue.begin(); (!task && i!=queue.end()); ++i)