bool JT_Register::take(const QDomElement &x) { if(!iqVerify(x, to, id())) return false; Jid from(x.attribute("from")); if(x.attribute("type") == "result") { if(d->type == 3) { d->form.clear(); d->form.setJid(from); QDomElement q = queryTag(x); for(QDomNode n = q.firstChild(); !n.isNull(); n = n.nextSibling()) { QDomElement i = n.toElement(); if(i.isNull()) continue; if(i.tagName() == "instructions") d->form.setInstructions(tagContent(i)); else if(i.tagName() == "key") d->form.setKey(tagContent(i)); else if(i.tagName() == "x" && i.attribute("xmlns") == "jabber:x:data") { d->xdata.fromXml(i); d->hasXData = true; } else if(i.tagName() == "data" && i.attribute("xmlns") == "urn:xmpp:bob") { client()->bobManager()->append(BoBData(i)); // xep-0231 } else { FormField f; if(f.setType(i.tagName())) { f.setValue(tagContent(i)); d->form += f; } } } } setSuccess(); } else setError(x); return true; }