changeset 1050:ea71d31a2607

PGP: Do not sign presence messages to chatrooms We do not sign auto-away messages either.
author Mikael Berthe <mikael@lilotux.net>
date Sun, 26 Nov 2006 20:24:34 +0100
parents ad5de4d1ee56
children 9d604589d41d
files mcabber/src/commands.c mcabber/src/jabglue.c mcabber/src/jabglue.h mcabber/src/screen.c
diffstat 4 files changed, 14 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/commands.c	Sun Nov 26 20:08:18 2006 +0100
+++ b/mcabber/src/commands.c	Sun Nov 26 20:24:34 2006 +0100
@@ -699,7 +699,7 @@
   if (recipient && !msg)
     msg = "";
 
-  jb_setstatus(st, recipient, msg);
+  jb_setstatus(st, recipient, msg, FALSE);
 
   free_arg_lst(paramlst);
 }
@@ -1951,7 +1951,7 @@
 
   roomid = g_strdup_printf("%s/%s", buddy_getjid(bud), nickname);
   desc = to_utf8(arg);
-  jb_setstatus(offline, roomid, desc);
+  jb_setstatus(offline, roomid, desc, TRUE);
   g_free(desc);
   g_free(roomid);
 }
--- a/mcabber/src/jabglue.c	Sun Nov 26 20:08:18 2006 +0100
+++ b/mcabber/src/jabglue.c	Sun Nov 26 20:24:34 2006 +0100
@@ -136,7 +136,7 @@
 
   if (online) {
     // Announce it to  everyone else
-    jb_setstatus(offline, NULL, "");
+    jb_setstatus(offline, NULL, "", FALSE);
     // End the XML flow
     jb_send_raw("</stream:stream>");
     /*
@@ -337,7 +337,7 @@
   if (!nickname) return;
 
   to = g_strdup_printf("%s/%s", jid, nickname);
-  jb_setstatus(pres->st, to, pres->msg);
+  jb_setstatus(pres->st, to, pres->msg, TRUE);
   g_free(to);
 }
 
@@ -403,7 +403,8 @@
   return x;
 }
 
-void jb_setstatus(enum imstatus st, const char *recipient, const char *msg)
+void jb_setstatus(enum imstatus st, const char *recipient, const char *msg,
+                  int do_not_sign)
 {
   xmlnode x;
 
@@ -433,7 +434,7 @@
     const char *s_msg = (st != invisible ? msg : NULL);
     x = presnew(st, recipient, s_msg);
 #ifdef HAVE_GPGME
-    if (s_msg && *s_msg && gpg_enabled()) {
+    if (!do_not_sign && s_msg && *s_msg && gpg_enabled()) {
       char *signature = gpg_sign(s_msg);
       if (signature) {
         xmlnode y;
@@ -488,7 +489,7 @@
 // Set previous status.  This wrapper function is used after a disconnection.
 inline void jb_setprevstatus(void)
 {
-  jb_setstatus(mywantedstatus, NULL, mystatusmsg);
+  jb_setstatus(mywantedstatus, NULL, mystatusmsg, FALSE);
 }
 
 //  new_msgid()
@@ -1525,7 +1526,7 @@
     g_free(mbuf);
 
     // Send back an unavailable packet
-    jb_setstatus(offline, jid, "");
+    jb_setstatus(offline, jid, "", TRUE);
 
     // MUC
     // Make sure this is a room (it can be a conversion user->room)
@@ -1804,7 +1805,7 @@
     scr_WriteIncomingMessage(roomjid, mbuf, 0, HBB_PREFIX_INFO);
     g_free(mbuf);
     // Send back an unavailable packet
-    jb_setstatus(offline, roomjid, "");
+    jb_setstatus(offline, roomjid, "", TRUE);
     scr_DrawRoster();
     return;
   }
--- a/mcabber/src/jabglue.h	Sun Nov 26 20:08:18 2006 +0100
+++ b/mcabber/src/jabglue.h	Sun Nov 26 20:24:34 2006 +0100
@@ -58,7 +58,8 @@
 void jb_updatebuddy(const char *jid, const char *name, const char *group);
 inline enum imstatus jb_getstatus(void);
 inline const char *jb_getstatusmsg(void);
-void jb_setstatus(enum imstatus st, const char *recipient, const char *msg);
+void jb_setstatus(enum imstatus st, const char *recipient, const char *msg,
+                  int do_not_sign);
 inline void jb_setprevstatus(void);
 void jb_send_msg(const char *jid, const char *text, int type,
                  const char *subject, const char *id);
--- a/mcabber/src/screen.c	Sun Nov 26 20:08:18 2006 +0100
+++ b/mcabber/src/screen.c	Sun Nov 26 20:24:34 2006 +0100
@@ -1387,10 +1387,10 @@
       msg = prevmsg;
     if (prevmsg)
       oldmsg = g_strdup(prevmsg);
-    jb_setstatus(away, NULL, msg);
+    jb_setstatus(away, NULL, msg, TRUE);
   } else {
     // Back
-    jb_setstatus(oldstatus, NULL, (oldmsg ? oldmsg : ""));
+    jb_setstatus(oldstatus, NULL, (oldmsg ? oldmsg : ""), FALSE);
     if (oldmsg) {
       g_free(oldmsg);
       oldmsg = NULL;