From: Aki Tuomi Date: Thu, 4 Aug 2016 05:55:12 +0000 (+0300) Subject: last-login: Add error handling for commit X-Git-Tag: 2.3.0.rc1~3261 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9258697fe2573b087d09645dfade044dfb27052;p=thirdparty%2Fdovecot%2Fcore.git last-login: Add error handling for commit --- diff --git a/src/plugins/last-login/last-login-plugin.c b/src/plugins/last-login/last-login-plugin.c index 2c0c708587..a64bf94a45 100644 --- a/src/plugins/last-login/last-login-plugin.c +++ b/src/plugins/last-login/last-login-plugin.c @@ -48,12 +48,26 @@ static void last_login_user_deinit(struct mail_user *user) } static void -last_login_dict_commit(const struct dict_commit_result *result ATTR_UNUSED, +last_login_dict_commit(const struct dict_commit_result *result, void *context) { struct mail_user *user = context; struct last_login_user *luser = LAST_LOGIN_USER_CONTEXT(user); + switch(result->ret) { + case DICT_COMMIT_RET_OK: + case DICT_COMMIT_RET_NOTFOUND: + break; + case DICT_COMMIT_RET_FAILED: + i_error("last_login_dict: Failed to write value for user %s: %s", + user->username, result->error); + break; + case DICT_COMMIT_RET_WRITE_UNCERTAIN: + i_error("last_login_dict: Write was unconfirmed (timeout or disconnect) for user %s: %s", + user->username, result->error); + break; + }; + /* don't deinit the dict immediately here, lib-dict will just crash */ luser->to = timeout_add(0, last_login_dict_deinit, user); }