#include "mem.h"
#include "merge.h"
#include "parsekey.h"
+#include "sendsync.h"
#ifdef NEED_KEYID2UID
/**
sigs = keysigs(sigs, uids->sigs);
}
if (revoked != NULL) {
- *revoked = (publickey->revocations != NULL);
+ *revoked = publickey->revoked;
}
free_publickey(publickey);
}
/**
* update_keys - Takes a list of public keys and updates them in the DB.
* @keys: The keys to update in the DB.
+ * @sendsync: Should we send a sync mail to our peers.
*
* Takes a list of keys and adds them to the database, merging them with
* the key in the database if it's already present there. The key list is
* we had before to what we have now (ie the set of data that was added to
* the DB). Returns the number of entirely new keys added.
*/
-int update_keys(struct openpgp_publickey **keys)
+int update_keys(struct openpgp_publickey **keys, bool sendsync)
{
struct openpgp_publickey *curkey = NULL;
struct openpgp_publickey *oldkey = NULL;
*/
if (oldkey != NULL) {
merge_keys(oldkey, curkey);
- if (curkey->revocations == NULL &&
+ if (curkey->sigs == NULL &&
curkey->uids == NULL &&
curkey->subkeys == NULL) {
if (prev == NULL) {
intrans = false;
}
+ if (sendsync && keys != NULL) {
+ sendkeysync(*keys);
+ }
+
return newkeys;
}
#endif /* NEED_UPDATEKEYS */