#include "xmpp_internal.h"
-void
+static void
+session (hc_xmpp_t *xmpp, iks *f)
+{
+ iks *c;
+ xmpp->session |= SUPPORTED;
+ for (c = iks_child (f); c != NULL; c = iks_next (c))
+ {
+ if (!iks_strcmp (iks_name (c), "optional"))
+ xmpp->session |= OPTIONAL;
+ else if (!iks_strcmp (iks_name (c), "required"))
+ xmpp->session |= REQUIRED;
+ }
+}
+
+static void
+xmpp_bind (hc_xmpp_t *xmpp, iks *f)
+{
+ iks *c;
+ xmpp->bind |= SUPPORTED;
+ for (c = iks_child (f); c != NULL; c = iks_next (c))
+ {
+ if (!iks_strcmp (iks_name (c), "optional"))
+ xmpp->bind |= OPTIONAL;
+ else if (!iks_strcmp (iks_name (c), "required"))
+ xmpp->bind |= REQUIRED;
+ }
+}
+
+static void
sasl (hc_xmpp_t *xmpp, iks *f)
{
iks *c;
}
}
-void
+static void
tls (hc_xmpp_t *xmpp, iks *f)
{
iks *c;
if (!iks_strcmp (iks_name (c), "starttls") &&
!iks_strcmp (iks_find_attrib (c, "xmlns"), HC_XMPP_NS_TLS))
tls (xmpp, c);
- if (!iks_strcmp (iks_name (c), "mechanisms") &&
+ else if (!iks_strcmp (iks_name (c), "mechanisms") &&
!iks_strcmp (iks_find_attrib (c, "xmlns"), HC_XMPP_NS_SASL))
sasl (xmpp, c);
+ else if (!iks_strcmp (iks_name (c), "bind") &&
+ !iks_strcmp (iks_find_attrib (c, "xmlns"), HC_XMPP_NS_BIND))
+ xmpp_bind (xmpp, c);
+ else if (!iks_strcmp (iks_name (c), "session") &&
+ !iks_strcmp (iks_find_attrib (c, "xmlns"), HC_XMPP_NS_SESSION))
+ session (xmpp, c);
}
}