summaryrefslogtreecommitdiff
path: root/src/rexmpp_openpgp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rexmpp_openpgp.c')
-rw-r--r--src/rexmpp_openpgp.c49
1 files changed, 6 insertions, 43 deletions
diff --git a/src/rexmpp_openpgp.c b/src/rexmpp_openpgp.c
index 92d3f9a..d0fd506 100644
--- a/src/rexmpp_openpgp.c
+++ b/src/rexmpp_openpgp.c
@@ -49,6 +49,7 @@ Possible future improvements:
#include "rexmpp.h"
#include "rexmpp_openpgp.h"
#include "rexmpp_jid.h"
+#include "rexmpp_pubsub.h"
void rexmpp_pgp_fp_reply (rexmpp_t *s,
@@ -268,21 +269,8 @@ void rexmpp_pgp_key_fp_list_upload (rexmpp_t *s, xmlNodePtr metadata) {
xmlNodePtr keylist = xmlNewNode(NULL, "public-keys-list");
xmlNewNs(keylist, "urn:xmpp:openpgp:0", NULL);
xmlAddChild(keylist, metadata);
-
- xmlNodePtr item = xmlNewNode(NULL, "item");
- xmlNewNs(item, "http://jabber.org/protocol/pubsub", NULL);
- xmlAddChild(item, keylist);
-
- xmlNodePtr publish = xmlNewNode(NULL, "publish");
- xmlNewNs(publish, "http://jabber.org/protocol/pubsub", NULL);
- xmlNewProp(publish, "node", "urn:xmpp:openpgp:0:public-keys");
- xmlAddChild(publish, item);
-
- xmlNodePtr pubsub = xmlNewNode(NULL, "pubsub");
- xmlNewNs(pubsub, "http://jabber.org/protocol/pubsub", NULL);
- xmlAddChild(pubsub, publish);
-
- rexmpp_iq_new(s, "set", NULL, pubsub, rexmpp_pgp_key_publish_list_iq);
+ rexmpp_pubsub_item_publish(s, NULL, "urn:xmpp:openpgp:0:public-keys",
+ NULL, keylist, rexmpp_pgp_key_publish_list_iq);
}
void rexmpp_pgp_key_delete_iq (rexmpp_t *s,
@@ -344,19 +332,9 @@ void rexmpp_openpgp_retract_key (rexmpp_t *s, const char *fp) {
if (new_fp_list != NULL) {
rexmpp_pgp_key_fp_list_upload(s, new_fp_list);
}
-
char node_str[72];
snprintf(node_str, 72, "urn:xmpp:openpgp:0:public-keys:%s", fp);
-
- xmlNodePtr delete = xmlNewNode(NULL, "delete");
- xmlNewNs(delete, "http://jabber.org/protocol/pubsub#owner", NULL);
- xmlNewProp(delete, "node", node_str);
-
- xmlNodePtr pubsub = xmlNewNode(NULL, "pubsub");
- xmlNewNs(pubsub, "http://jabber.org/protocol/pubsub#owner", NULL);
- xmlAddChild(pubsub, delete);
-
- rexmpp_iq_new(s, "set", NULL, pubsub, rexmpp_pgp_key_delete_iq);
+ rexmpp_pubsub_node_delete(s, NULL, node_str, rexmpp_pgp_key_delete_iq);
}
rexmpp_err_t rexmpp_openpgp_publish_key (rexmpp_t *s, const char *fp) {
@@ -404,25 +382,10 @@ rexmpp_err_t rexmpp_openpgp_publish_key (rexmpp_t *s, const char *fp) {
struct tm utc_time;
gmtime_r(&t, &utc_time);
strftime(time_str, 42, "%FT%TZ", &utc_time);
-
- xmlNodePtr item = xmlNewNode(NULL, "item");
- xmlNewNs(item, "http://jabber.org/protocol/pubsub", NULL);
- xmlNewProp(item, "id", time_str);
- xmlAddChild(item, pubkey);
-
char node_str[72];
snprintf(node_str, 72, "urn:xmpp:openpgp:0:public-keys:%s", fp);
- xmlNodePtr publish = xmlNewNode(NULL, "publish");
- xmlNewNs(publish, "http://jabber.org/protocol/pubsub", NULL);
- xmlNewProp(publish, "node", node_str);
- xmlAddChild(publish, item);
-
- xmlNodePtr pubsub = xmlNewNode(NULL, "pubsub");
- xmlNewNs(pubsub, "http://jabber.org/protocol/pubsub", NULL);
- xmlAddChild(pubsub, publish);
-
- rexmpp_iq_new(s, "set", NULL, pubsub, rexmpp_pgp_key_publish_iq);
-
+ rexmpp_pubsub_item_publish(s, NULL, node_str, time_str,
+ pubkey, rexmpp_pgp_key_publish_iq);
return REXMPP_SUCCESS;
}