diff mcabber/src/jabglue.c @ 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 a3748bd3d010
children c8a8edd5c50d
line wrap: on
line diff
--- 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;
   }