]> 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)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 4 Aug 2016 15:18:08 +0000 (18:18 +0300)
src/plugins/last-login/last-login-plugin.c

index 0b59ab2b0935b9444d7ea8b883139e1ad556fd83..00587c8dff48c756e1fe48345ae3410346f7993a 100644 (file)
@@ -47,11 +47,25 @@ static void last_login_user_deinit(struct mail_user *user)
        luser->module_ctx.super.deinit(user);
 }
 
-static void last_login_dict_commit(int ret ATTR_UNUSED, void *context)
+static void last_login_dict_commit(int ret, void *context)
 {
        struct mail_user *user = context;
        struct last_login_user *luser = LAST_LOGIN_USER_CONTEXT(user);
 
+       switch(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",
+                       user->username);
+               break;
+       case DICT_COMMIT_RET_WRITE_UNCERTAIN:
+               i_error("last_login_dict: Write was unconfirmed (timeout or disconnect) for user %s",
+                        user->username);
+               break;
+       };
+
        /* don't deinit the dict immediately here, lib-dict will just crash */
        luser->to = timeout_add(0, last_login_dict_deinit, user);
 }