[UNAVAILABLE] is defined in RFC 5530 and we were just missing a MAIL_ERROR_*
constant to make use of it.
case MAIL_ERROR_NONE:
i_unreached();
case MAIL_ERROR_TEMP:
+ case MAIL_ERROR_UNAVAILABLE:
break;
case MAIL_ERROR_NOTPOSSIBLE:
case MAIL_ERROR_EXISTS:
case MAIL_ERROR_LOOKUP_ABORTED: /* BUG: shouldn't be visible here */
resp_code = IMAP_RESP_CODE_SERVERBUG;
break;
+ case MAIL_ERROR_UNAVAILABLE:
+ resp_code = IMAP_RESP_CODE_UNAVAILABLE;
+ break;
case MAIL_ERROR_NOTPOSSIBLE:
case MAIL_ERROR_PARAMS:
resp_code = IMAP_RESP_CODE_CANNOT;
/* Temporary internal error */
MAIL_ERROR_TEMP,
+ /* Temporary failure because a subsystem is down */
+ MAIL_ERROR_UNAVAILABLE,
/* It's not possible to do the wanted operation */
MAIL_ERROR_NOTPOSSIBLE,
/* Invalid parameters (eg. mailbox name not valid) */