diff options
Diffstat (limited to 'src/xmpp')
-rw-r--r-- | src/xmpp/bookmark.c | 4 | ||||
-rw-r--r-- | src/xmpp/xmpp.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/xmpp/bookmark.c b/src/xmpp/bookmark.c index b9bbfc32..81d7e19e 100644 --- a/src/xmpp/bookmark.c +++ b/src/xmpp/bookmark.c @@ -277,6 +277,8 @@ _bookmark_result_id_handler(xmpp_stanza_t *const stanza, void *const userdata) log_debug("Handle bookmark for %s", barejid); + const char *room_name = xmpp_stanza_get_attribute(child, "name"); + char *nick = NULL; xmpp_stanza_t *nick_st = xmpp_stanza_get_child_by_name(child, "nick"); if (nick_st) { @@ -300,6 +302,7 @@ _bookmark_result_id_handler(xmpp_stanza_t *const stanza, void *const userdata) bookmark->barejid = strdup(barejid); bookmark->nick = nick; bookmark->password = password; + bookmark->name = room_name ? strdup(room_name) : NULL; bookmark->autojoin = autojoin_val; g_hash_table_insert(bookmarks, strdup(barejid), bookmark); @@ -326,6 +329,7 @@ _bookmark_destroy(Bookmark *bookmark) free(bookmark->barejid); free(bookmark->nick); free(bookmark->password); + free(bookmark->name); free(bookmark); } } diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h index fa26cfbf..c06939cb 100644 --- a/src/xmpp/xmpp.h +++ b/src/xmpp/xmpp.h @@ -93,6 +93,7 @@ typedef struct bookmark_t { char *barejid; char *nick; char *password; + char *name; gboolean autojoin; } Bookmark; |