]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
last-login: Add error handling for commit
authorAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 4 Aug 2016 05:55:12 +0000 (08:55 +0300)
committerGitLab <gitlab@git.dovecot.net>
Thu, 4 Aug 2016 07:17:01 +0000 (10:17 +0300)
src/plugins/last-login/last-login-plugin.c

index 2c0c708587c822c75d0f80c76e285df2df47591c..a64bf94a454063d12a2021889771a924174e2680 100644 (file)
@@ -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);
 }