diff mcabber/src/roster.c @ 1043:ebbde723614b

Store contacts PGP keys Contacts PGP keys are retrieved from presence/message signatures; they're displayed with /info.
author Mikael Berthe <mikael@lilotux.net>
date Sun, 26 Nov 2006 17:08:21 +0100
parents 54405d09b15a
children c0d44a9a99bc
line wrap: on
line diff
--- a/mcabber/src/roster.c	Sun Nov 26 10:42:25 2006 +0100
+++ b/mcabber/src/roster.c	Sun Nov 26 17:08:21 2006 +0100
@@ -58,6 +58,9 @@
 #ifdef JEP0085
   struct jep0085 jep85;
 #endif
+#ifdef HAVE_GPGME
+  struct pgp_data pgpdata;
+#endif
 } res;
 
 /* This is a private structure type for the roster */
@@ -125,6 +128,9 @@
     g_free(p_res->jep22.last_msgid_sent);
     g_free(p_res->jep22.last_msgid_rcvd);
 #endif
+#ifdef HAVE_GPGME
+    g_free(p_res->pgpdata.sign_keyid);
+#endif
   }
   // Free all nodes but the first (which is static)
   g_slist_free(*reslist);
@@ -223,6 +229,9 @@
   g_free(p_res->jep22.last_msgid_sent);
   g_free(p_res->jep22.last_msgid_rcvd);
 #endif
+#ifdef HAVE_GPGME
+  g_free(p_res->pgpdata.sign_keyid);
+#endif
   rost->resource = g_slist_delete_link(rost->resource, p_res_elt);
   return;
 }
@@ -1117,6 +1126,18 @@
   return NULL;
 }
 
+struct pgp_data *buddy_resource_pgp(gpointer rosterdata, const char *resname)
+{
+#ifdef HAVE_GPGME
+  roster *roster_usr = rosterdata;
+  res *p_res = get_resource(roster_usr, resname);
+  if (p_res)
+    return &p_res->pgpdata;
+#endif
+  return NULL;
+}
+
+
 enum imrole buddy_getrole(gpointer rosterdata, const char *resname)
 {
   roster *roster_usr = rosterdata;