diff --git a/src/database.c b/src/database.c index bf452c110..88e6c009e 100644 --- a/src/database.c +++ b/src/database.c @@ -333,7 +333,7 @@ log_database_get_previous_chat(const gchar* const contact_barejid, const char* s auto_gchar gchar* end_date_fmt = end_time ? end_time : g_date_time_format_iso8601(now); auto_sqlite gchar* query = sqlite3_mprintf("SELECT * FROM (" "SELECT COALESCE(B.`message`, A.`message`) AS message, " - "A.`timestamp`, A.`from_jid`, A.`to_jid`, A.`type`, A.`encryption`, A.`stanza_id` FROM `ChatLogs` AS A " + "A.`timestamp`, A.`from_jid`, A.`from_resource`, A.`to_jid`, A.`to_resource`, A.`type`, A.`encryption`, A.`stanza_id` FROM `ChatLogs` AS A " "LEFT JOIN `ChatLogs` AS B ON (A.`replaced_by_db_id` = B.`id` AND A.`from_jid` = B.`from_jid`) " "WHERE (A.`replaces_db_id` IS NULL) " "AND ((A.`from_jid` = %Q AND A.`to_jid` = %Q) OR (A.`from_jid` = %Q AND A.`to_jid` = %Q)) " @@ -361,16 +361,18 @@ log_database_get_previous_chat(const gchar* const contact_barejid, const char* s while (sqlite3_step(stmt) == SQLITE_ROW) { char* message = (char*)sqlite3_column_text(stmt, 0); char* date = (char*)sqlite3_column_text(stmt, 1); - char* from = (char*)sqlite3_column_text(stmt, 2); - char* to_jid = (char*)sqlite3_column_text(stmt, 3); - char* type = (char*)sqlite3_column_text(stmt, 4); - char* encryption = (char*)sqlite3_column_text(stmt, 5); - char* id = (char*)sqlite3_column_text(stmt, 6); + char* from_jid = (char*)sqlite3_column_text(stmt, 2); + char* from_resource = (char*)sqlite3_column_text(stmt, 3); + char* to_jid = (char*)sqlite3_column_text(stmt, 4); + char* to_resource = (char*)sqlite3_column_text(stmt, 5); + char* type = (char*)sqlite3_column_text(stmt, 6); + char* encryption = (char*)sqlite3_column_text(stmt, 7); + char* id = (char*)sqlite3_column_text(stmt, 8); ProfMessage* msg = message_init(); msg->id = id ? strdup(id) : NULL; - msg->from_jid = jid_create(from); - msg->to_jid = jid_create(to_jid); + msg->from_jid = jid_create_from_bare_and_resource(from_jid, from_resource); + msg->to_jid = jid_create_from_bare_and_resource(to_jid, to_resource); msg->plain = strdup(message ?: ""); msg->timestamp = g_date_time_new_from_iso8601(date, NULL); msg->type = _get_message_type_type(type);