# HG changeset patch # User Aki Tuomi # Date 1470290112 -10800 # Node ID e6647016bc127a37fe66a98b131d0f40cc2473ac # Parent 1e842633f27a868470bba6defadc8653f1152615 last-login: Add error handling for commit diff -r 1e842633f27a -r e6647016bc12 src/plugins/last-login/last-login-plugin.c --- 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); }