diff --git a/src/XMPPThread.c b/src/XMPPThread.c index 5ad1ef5..07e598c 100644 --- a/src/XMPPThread.c +++ b/src/XMPPThread.c @@ -405,15 +405,24 @@ ShoveStanza(HashMap *content, XMLElement *stanza) { char *encoded_stanza = NULL; Stream *str_writer = StrStreamWriter(&encoded_stanza); + if (!stanza || !content) + { + StreamClose(str_writer); + return content; + } XMLEncode(str_writer, stanza); StreamFlush(str_writer); StreamClose(str_writer); - JsonFree(HashMapSet(content, + JsonValueFree(HashMapSet(content, "at.kappach.at.parsee.stanza", JsonValueString(encoded_stanza) )); + JsonValueFree(HashMapSet(content, + "at.kappach.at.parsee.id", + JsonValueString(HashMapGet(stanza->attrs, "id")) + )); Free(encoded_stanza); return content;