struct xmpp_event *xmpp_queue = NULL;
-
#ifdef HAVE_XML_STOPPARSER
/* Stop the parser if an entity declaration is hit. */
static void xmpp_entity_declaration(void *userData, const XML_Char *entityName,
int n = 0;
unsigned char test = (1<<7);
- if ((*CharS & 0xC0) != 0xC0)
+ if ((*CharS & 0xC0) != 0xC0) {
return 1;
+ }
- while ((n < 8) &&
- ((test & ((unsigned char)*CharS)) != 0))
- {
+ while ((n < 8) && ((test & ((unsigned char)*CharS)) != 0)) {
test = test >> 1;
n ++;
}
- if ((n > 6) || ((CharE - CharS) < n))
+ if ((n > 6) || ((CharE - CharS) < n)) {
n = 0;
+ }
return n;
}
}
-
void xmpp_xml_end(void *data, const char *supplied_el) {
char el[256];
char *sep = NULL;
xmpp_non_sasl_authenticate(
XMPP->iq_id,
XMPP->iq_client_username,
- XMPP->iq_client_password,
- XMPP->iq_client_resource
+ XMPP->iq_client_password
);
}
else if (
(XMPP->bind_requested)
&& (!IsEmptyStr(XMPP->iq_id))
- && (!IsEmptyStr(XMPP->iq_client_resource))
&& (CC->logged_in)
- ) {
+ ) {
- /* Generate the "full JID" of the client resource */
+ /* If the client has not specified a client resource, generate one */
+ if (IsEmptyStr(XMPP->iq_client_resource)) {
+ snprintf(XMPP->iq_client_resource, sizeof XMPP->iq_client_resource, "%d", CC->cs_pid);
+ }
- snprintf(XMPP->client_jid, sizeof XMPP->client_jid,
- "%s/%s",
- CC->cs_inet_email,
- XMPP->iq_client_resource
- );
+ /* Generate the "full JID" of the client (user@host/resource) */
+ snprintf(XMPP->client_jid, sizeof XMPP->client_jid, "%s/%s", CC->cs_inet_email, XMPP->iq_client_resource);
/* Tell the client what its JID is */
-
cprintf("<iq type=\"result\" id=\"%s\">", xmlesc(xmlbuf, XMPP->iq_id, sizeof xmlbuf));
cprintf("<bind xmlns=\"urn:ietf:params:xml:ns:xmpp-bind\">");
cprintf("<jid>%s</jid>", xmlesc(xmlbuf, XMPP->client_jid, sizeof xmlbuf));