changeset 20563:e6647016bc12

last-login: Add error handling for commit
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Thu, 04 Aug 2016 08:55:12 +0300
parents 1e842633f27a
children dced7deca4d6
files src/plugins/last-login/last-login-plugin.c
diffstat 1 files changed, 15 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/last-login/last-login-plugin.c	Wed Aug 03 13:18:17 2016 +0300
+++ b/src/plugins/last-login/last-login-plugin.c	Thu Aug 04 08:55:12 2016 +0300
@@ -47,11 +47,25 @@
 	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);
 }