diff -up dovecot-2.0.beta4/dovecot-2-0-pigeonhole-940554ef4a55/src/managesieve/main.c.betahotfix dovecot-2.0.beta4/dovecot-2-0-pigeonhole-940554ef4a55/src/managesieve/main.c --- dovecot-2.0.beta4/dovecot-2-0-pigeonhole-940554ef4a55/src/managesieve/main.c.betahotfix 2010-04-06 11:00:28.995085479 +0200 +++ dovecot-2.0.beta4/dovecot-2-0-pigeonhole-940554ef4a55/src/managesieve/main.c 2010-04-06 11:13:50.448016048 +0200 @@ -231,6 +231,14 @@ static void client_connected(const struc } } +static void login_client_failed(const struct master_login_client *client, + const char *errormsg) +{ + const char *msg; + msg = t_strdup_printf("* BAD %s\r\n", errormsg); + (void)write(client->fd, msg, strlen(msg)); +} + int main(int argc, char *argv[]) { static const struct setting_parser_info *set_roots[] = { @@ -284,7 +292,8 @@ int main(int argc, char *argv[]) } else { master_login = master_login_init(master_service, "auth-master", postlogin_socket_path, - login_client_connected); + login_client_connected, + login_client_failed); io_loop_set_running(current_ioloop); }