about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/database.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/database.c b/src/database.c
index c02392be..ddff84cc 100644
--- a/src/database.c
+++ b/src/database.c
@@ -215,12 +215,16 @@ log_database_get_previous_chat(const gchar *const contact_barejid)
 {
 	sqlite3_stmt *stmt = NULL;
     char *query;
+    const char *jid = connection_get_fulljid();
+    Jid *myjid = jid_create(jid);
 
-    if (asprintf(&query, "SELECT * FROM (SELECT `message`, `timestamp`, `from_jid`, `type` from `ChatLogs` WHERE `from_jid` = '%s' OR `to_jid` = '%s' ORDER BY `timestamp` DESC LIMIT 10) ORDER BY `timestamp` ASC;", contact_barejid, contact_barejid) == -1) {
+    if (asprintf(&query, "SELECT * FROM (SELECT `message`, `timestamp`, `from_jid`, `type` from `ChatLogs` WHERE (`from_jid` = '%s' AND `to_jid` = '%s') OR (`from_jid` = '%s' AND `to_jid` = '%s') ORDER BY `timestamp` DESC LIMIT 10) ORDER BY `timestamp` ASC;", contact_barejid, myjid->barejid, myjid->barejid, contact_barejid) == -1) {
         log_error("log_database_get_previous_chat(): SQL query. could not allocate memory");
         return NULL;
     }
 
+    jid_destroy(myjid);
+
 	int rc = sqlite3_prepare_v2(g_chatlog_database, query, -1, &stmt, NULL);
 	if( rc!=SQLITE_OK ) {
         log_error("log_database_get_previous_chat(): unknown SQLite error");