28 #include <config-network.h>
31 #include <sys/types.h>
32 #include <sys/socket.h>
39 #include <QCoreApplication>
46 #ifndef HAVE_GETNAMEINFO
52 using namespace KNetwork;
53 using namespace KNetwork::Internal;
61 : m_addr(addr), m_flags(flags), m_parent(0L)
64 virtual ~ReverseThread()
67 virtual bool preprocess()
70 virtual bool postprocess();
83 class KReverseResolverEvent:
public QEvent
86 static const int myType = QEvent::User + 63;
91 KReverseResolverEvent(
const QString& _node,
const QString& _service,
93 : QEvent((
Type)myType), node(_node),
94 service(_service), success(_success)
99 class KNetwork::KReverseResolverPrivate
107 ReverseThread* worker;
111 : addr(_addr), worker(0L), success(false)
117 :
QObject(parent), d(new KReverseResolverPrivate(addr))
125 d->worker->m_parent = 0L;
131 return d->worker != 0L;
164 d->worker =
new ReverseThread(d->addr, d->flags);
165 d->worker->m_parent =
this;
172 KResolverManager::manager()->dispatch(req);
178 if (e->type() != KReverseResolverEvent::myType)
179 return QObject::event(e);
181 KReverseResolverEvent *re =
static_cast<KReverseResolverEvent*
>(e);
183 d->service = re->service;
184 d->success = re->success;
199 ReverseThread th(addr, flags);
215 bool ReverseThread::run()
239 h,
sizeof(h) - 1, s,
sizeof(s) - 1, niflags);
245 service = QLatin1String(s);
250 node.clear(); service.clear();
257 bool ReverseThread::postprocess()
261 QCoreApplication::postEvent(m_parent,
262 new KReverseResolverEvent(node, service, success));
266 #include "k3reverseresolver.moc"