X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnet%2Fresolve.h;h=ae0411bd807c5e37292e0fd76f75e1fd34f9d94d;hb=ede42d5bb352841e2e425972e12b8ef31ddf2123;hp=b006aff9986b7c5cf51ea5638fdcca6b53693e27;hpb=f97f21c17f24e1d426e5b5863676071a5809b185;p=libs%2Fnet.git diff --git a/source/net/resolve.h b/source/net/resolve.h index b006aff..ae0411b 100644 --- a/source/net/resolve.h +++ b/source/net/resolve.h @@ -2,6 +2,7 @@ #define MSP_NET_RESOLVE_H_ #include +#include #include #include #include @@ -36,14 +37,12 @@ class Resolver private: struct Task { - unsigned tag; + unsigned tag = 0; std::string host; std::string serv; - Family family; - SockAddr *addr; - std::runtime_error *error; - - Task(); + Family family = UNSPEC; + std::unique_ptr addr; + std::unique_ptr error; bool is_complete() const { return addr || error; } }; @@ -55,13 +54,13 @@ private: Mutex queue_mutex; Semaphore sem; IO::Pipe notify_pipe; - bool done; + bool done = false; public: WorkerThread(); ~WorkerThread(); - void add_task(const Task &); + void add_task(Task &&); Task *get_complete_task(); void pop_complete_task(); @@ -76,9 +75,9 @@ public: sigc::signal signal_resolve_failed; private: - IO::EventDispatcher *event_disp; + IO::EventDispatcher *event_disp = nullptr; WorkerThread thread; - unsigned next_tag; + unsigned next_tag = 1; public: Resolver();