+void Client::address_resolved(unsigned tag, const Net::SockAddr &addr)
+{
+ if(tag!=resolve_tag)
+ return;
+ resolve_tag = 0;
+
+ sock = new Net::StreamSocket(addr.get_family());
+ sock->set_block(false);
+
+ sock->signal_data_available.connect(sigc::mem_fun(this, &Client::data_available));
+ sock->signal_connect_finished.connect(sigc::mem_fun(this, &Client::connect_finished));
+ if(event_disp)
+ event_disp->add(*sock);
+
+ sock->connect(addr);
+}
+
+void Client::resolve_failed(unsigned tag, const exception &err)
+{
+ if(tag!=resolve_tag)
+ return;
+ resolve_tag = 0;
+
+ delete request;
+ request = 0;
+
+ if(signal_socket_error.empty())
+ throw err;
+ signal_socket_error.emit(err);
+}
+