14 #include "nonsaslauth.h"
25 NonSaslAuth::Query::Query(
const std::string& user )
26 : StanzaExtension(
ExtNonSaslAuth ), m_user( user ), m_digest( true )
30 NonSaslAuth::Query::Query(
const Tag* tag )
39 NonSaslAuth::Query* NonSaslAuth::Query::newInstance(
const std::string& user,
40 const std::string& sid,
41 const std::string& pwd,
42 const std::string& resource )
const
44 Query* q =
new Query( user );
45 if( m_digest && !sid.empty() )
55 q->m_resource = resource;
56 q->m_digest = m_digest;
60 const std::string& NonSaslAuth::Query::filterString()
const
62 static const std::string filter =
"/iq/query[@xmlns='" +
XMLNS_AUTH +
"']";
66 Tag* NonSaslAuth::Query::tag()
const
71 Tag* t =
new Tag(
"query" );
73 new Tag( t,
"username", m_user );
75 if( !m_pwd.empty() && !m_resource.empty() )
77 new Tag( t, m_digest ?
"digest" :
"password", m_pwd );
78 new Tag( t,
"resource", m_resource );
109 const std::string&
id = m_parent->
getID();
113 m_parent->
send( iq,
this, TrackRequestAuthFields );
147 case TrackRequestAuthFields:
153 const std::string&
id = m_parent->
getID();
159 m_parent->
send( re,
this, TrackSendAuth );
164 m_parent->connected();
virtual void handleIqID(const IQ &iq, int context)
This class implements a basic Jabber/XMPP Client.
void doAuth(const std::string &sid)
const std::string getID()
bool removeStanzaExtension(int ext)
const std::string & resource() const
bool hasChild(const std::string &name, const std::string &attr=EmptyString, const std::string &value=EmptyString) const
void setAuthFailure(AuthenticationError e)
void addExtension(const StanzaExtension *se)
const StanzaExtension * findExtension(int type) const
const std::string XMLNS_AUTH
const Error * error() const
const std::string xmlns() const
The namespace for the gloox library.
A stanza error abstraction implemented as a StanzaExtension.
const std::string & server() const
An abstraction of an IQ stanza.
void registerIqHandler(IqHandler *ih, int exttype)
@ StanzaErrorNotAuthorized
const std::string & name() const
void setAuthed(bool authed)
virtual const std::string & password() const
void registerStanzaExtension(StanzaExtension *ext)
void removeIDHandler(IqHandler *ih)
@ StanzaErrorNotAcceptable
StanzaError error() const
void removeIqHandler(IqHandler *ih, int exttype)
NonSaslAuth(Client *parent)
@ ConnAuthenticationFailed
virtual const std::string & username() const