X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fxmpp%2Fserv_xmpp.c;h=2d8ef9d0fa42bbc95d0b780a343809953a4770b9;hb=2bcd29b7be1638c9b3038556a2f2eabd4b0e3af3;hp=20f2089e33aab30f55098115fb890e41874b2c5a;hpb=74b081f8e555b4593ffd5bf6ddf1ef68da22840b;p=citadel.git diff --git a/citadel/modules/xmpp/serv_xmpp.c b/citadel/modules/xmpp/serv_xmpp.c index 20f2089e3..2d8ef9d0f 100644 --- a/citadel/modules/xmpp/serv_xmpp.c +++ b/citadel/modules/xmpp/serv_xmpp.c @@ -403,17 +403,17 @@ void xmpp_xml_end(void *data, const char *supplied_el) { 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 */ - snprintf(XMPP->client_jid, sizeof XMPP->client_jid, - "%s/%s", - CC->cs_inet_email, - XMPP->iq_client_resource - ); + if (IsEmptyStr(XMPP->iq_client_resource)) { + generate_uuid(XMPP->iq_client_resource); + } + + /* Generate the "full JID" of the client 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 */