X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/566145652162e02433c1cd461bf9b5e312abbc40..7378b5081fde6f48140327d5c072a8231934f027:/lib/trackdb.c diff --git a/lib/trackdb.c b/lib/trackdb.c index 6a93fba..53d7cf3 100644 --- a/lib/trackdb.c +++ b/lib/trackdb.c @@ -162,6 +162,16 @@ static int compare(DB attribute((unused)) *db_, return compare_path_raw(a->data, a->size, b->data, b->size); } +/** @brief Test whether the track database can be read + * @return 1 if it can, 0 if it cannot + */ +int trackdb_readable(void) { + char *usersdb; + + byte_xasprintf(&usersdb, "%s/users.db", config->home); + return access(usersdb, R_OK) == 0; +} + /** @brief Open database environment * @param flags Flags word * @@ -2630,10 +2640,13 @@ int trackdb_edituserinfo(const char *user, return -1; } } else if(!strcmp(key, "email")) { - if(!strchr(value, '@')) { - error(0, "invalid email address '%s' for user '%s'", user, value); - return -1; - } + if(*value) { + if(!strchr(value, '@')) { + error(0, "invalid email address '%s' for user '%s'", user, value); + return -1; + } + } else + value = 0; /* no email -> remove key */ } else if(!strcmp(key, "created")) { error(0, "cannot change creation date for user '%s'", user); return -1;