Browse Source

Little bits of cleanup fun

generate_api
Krista Bennett 4 years ago
parent
commit
7fa9e64cbc
1 changed files with 54 additions and 52 deletions
  1. +54
    -52
      src/keymanagement.c

+ 54
- 52
src/keymanagement.c View File

@ -568,58 +568,61 @@ DYNAMIC_API PEP_STATUS update_identity(
if (id_list) {
identity_list* id_curr = id_list;
bool input_is_TOFU = strstr(identity->user_id, "TOFU_") == identity->user_id;
bool input_is_TOFU = (strstr(identity->user_id, "TOFU_") == identity->user_id);
while (id_curr) {
pEp_identity* this_id = id_curr->ident;
if (this_id) {
char* this_uid = this_id->user_id;
bool curr_is_TOFU = strstr(this_uid, "TOFU_") == this_uid;
if (this_uid) {
if (curr_is_TOFU && !input_is_TOFU) {
// FIXME: should we also be fixing pEp_own_userId in this
// function here?
bool curr_is_TOFU = false;
// this_uid should never be NULL, as this is half of the ident
// DB primary key
assert(!EMPTYSTR(this_uid));
curr_is_TOFU = (strstr(this_uid, "TOFU_") == this_uid);
if (curr_is_TOFU && !input_is_TOFU) {
// FIXME: should we also be fixing pEp_own_userId in this
// function here?
// if usernames match, we replace the userid. Or if the temp username
// is anonymous.
// FIXME: do we need to create an address match function which
// matches the whole dot-and-case rigamarole from
if (EMPTYSTR(this_id->username) ||
strcasecmp(this_id->username, this_id->address) == 0 ||
(identity->username &&
strcasecmp(identity->username,
this_id->username) == 0)) {
// if usernames match, we replace the userid. Or if the temp username
// is anonymous.
// FIXME: do we need to create an address match function which
// matches the whole dot-and-case rigamarole from
if (EMPTYSTR(this_id->username) ||
strcasecmp(this_id->username, this_id->address) == 0 ||
(identity->username &&
strcasecmp(identity->username,
this_id->username) == 0)) {
// Ok, we have a temp ID. We have to replace this
// with the real ID.
status = replace_userid(session,
this_uid,
identity->user_id);
if (status != PEP_STATUS_OK) {
free_identity_list(id_list);
free(default_own_id);
return status;
}
free(this_uid);
this_uid = NULL;
// Reflect the change we just made to the DB
this_id->user_id = strdup(identity->user_id);
stored_ident = this_id;
// FIXME: free list.
break;
// Ok, we have a temp ID. We have to replace this
// with the real ID.
status = replace_userid(session,
this_uid,
identity->user_id);
if (status != PEP_STATUS_OK) {
free_identity_list(id_list);
free(default_own_id);
return status;
}
}
else if (input_is_TOFU && !curr_is_TOFU) {
// Replace ruthlessly - this is NOT supposed to happen.
// BAD APP BEHAVIOUR.
free(identity->user_id);
identity->user_id = strdup(this_id->user_id);
free(this_uid);
this_uid = NULL;
// Reflect the change we just made to the DB
this_id->user_id = strdup(identity->user_id);
stored_ident = this_id;
// FIXME: free list.
break;
}
}
}
}
else if (input_is_TOFU && !curr_is_TOFU) {
// Replace ruthlessly - this is NOT supposed to happen.
// BAD APP BEHAVIOUR.
free(identity->user_id);
identity->user_id = strdup(this_id->user_id);
stored_ident = this_id;
// FIXME: free list.
break;
}
}
id_curr = id_curr->next;
}
@ -655,19 +658,15 @@ DYNAMIC_API PEP_STATUS update_identity(
// * create identity with user_id, address, username
// (this is the input id without the fpr + comm type!)
if (status == PEP_STATUS_OK) {
elect_pubkey(session, identity, false);
}
elect_pubkey(session, identity, false);
// * We've already checked and retrieved
// any applicable temporary identities above. If we're
// here, none of them fit.
// * call set_identity() to store
if (status == PEP_STATUS_OK) {
// FIXME: Do we set if we had to copy in the address?
adjust_pEp_trust_status(session, identity);
status = set_identity(session, identity);
}
// FIXME: Do we set if we had to copy in the address?
adjust_pEp_trust_status(session, identity);
status = set_identity(session, identity);
// * Return: created identity
}
}
@ -700,7 +699,10 @@ DYNAMIC_API PEP_STATUS update_identity(
pEp_identity* this_id = id_curr->ident;
if (this_id) {
char* this_uid = this_id->user_id;
if (this_uid && (strstr(this_uid, "TOFU_") != this_uid)) {
assert(!EMPTYSTR(this_uid));
// Should never be NULL - DB primary key
if (strstr(this_uid, "TOFU_") != this_uid) {
// if usernames match, we replace the userid.
if (identity->username &&
strcasecmp(identity->username,


Loading…
Cancel
Save