diff options
author | James Booth <boothj5@gmail.com> | 2015-01-04 20:19:42 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-01-04 20:19:42 +0000 |
commit | 42a5c431c777ab22c2187bb6f50a62ef304d8d6b (patch) | |
tree | 84fc499f366e477010ffedfd566ad6b540c2eca6 /src/command/command.c | |
parent | 4898ed10a45581a98986fed5a2fabe6a6e7a9dab (diff) | |
download | profani-tty-42a5c431c777ab22c2187bb6f50a62ef304d8d6b.tar.gz |
Use resource in chat sessions
Diffstat (limited to 'src/command/command.c')
-rw-r--r-- | src/command/command.c | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/command/command.c b/src/command/command.c index 5c1f858d..470bb886 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -1814,8 +1814,15 @@ cmd_execute_default(const char * inp) if (otr_is_secure(chatwin->barejid)) { char *encrypted = otr_encrypt_message(chatwin->barejid, inp); if (encrypted != NULL) { - gboolean send_state = chat_session_on_message_send(chatwin->barejid); - message_send_chat(chatwin->barejid, chatwin->resource, encrypted, send_state); + char *resource = NULL; + gboolean send_state = FALSE; + if (chat_session_exists(chatwin->barejid)) { + resource = chat_session_get_resource(chatwin->barejid); + send_state = chat_session_on_message_send(chatwin->barejid); + } else { + send_state = TRUE; + } + message_send_chat(chatwin->barejid, resource, encrypted, send_state); otr_free_message(encrypted); if (prefs_get_boolean(PREF_CHLOG)) { const char *jid = jabber_get_fulljid(); @@ -1835,8 +1842,15 @@ cmd_execute_default(const char * inp) cons_show_error("Failed to send message."); } } else { - gboolean send_state = chat_session_on_message_send(chatwin->barejid); - message_send_chat(chatwin->barejid, chatwin->resource, inp, send_state); + char *resource = NULL; + gboolean send_state = FALSE; + if (chat_session_exists(chatwin->barejid)) { + resource = chat_session_get_resource(chatwin->barejid); + send_state = chat_session_on_message_send(chatwin->barejid); + } else { + send_state = TRUE; + } + message_send_chat(chatwin->barejid, resource, inp, send_state); if (prefs_get_boolean(PREF_CHLOG)) { const char *jid = jabber_get_fulljid(); Jid *jidp = jid_create(jid); @@ -1847,8 +1861,15 @@ cmd_execute_default(const char * inp) ui_outgoing_chat_msg("me", chatwin->barejid, inp); } #else - gboolean send_state = chat_session_on_message_send(chatwin->barejid); - message_send_chat(chatwin->barejid, chatwin->resource, inp, send_state); + char *resource = NULL; + gboolean send_state = FALSE; + if (chat_session_exists(chatwin->barejid)) { + resource = chat_session_get_resource(chatwin->barejid); + send_state = chat_session_on_message_send(chatwin->barejid); + } else { + send_state = TRUE; + } + message_send_chat(chatwin->barejid, resource, inp, send_state); if (prefs_get_boolean(PREF_CHLOG)) { const char *jid = jabber_get_fulljid(); Jid *jidp = jid_create(jid); |