Hi,
I'm testing dovecot 2.4 (2.4.1 on debian trixie) after migrating from 2.3. When checking the quota-status service (quota-status -p postfix) over telnet, the response for new mail over quota returns an empty text for action.
Example:
telnet 127.0.0.1 10022
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
recipient=mailtest@truniger.ch
size=13000000
action=
recipient=mailtest@truniger.ch
size=12000000
action=OK
^]
telnet> quit
The manual says that an empty value for "quota_status_toolarge" defaults to "quota_status_overquota". But when looking a the actual source code of quote-status.c this does not seem to be the case - the return value is ,\0' for action:
Code from line 231:
switch (qret) {
case QUOTA_ALLOC_RESULT_OK:
/* under quota */
value =
set->quota_status_success;
break;
case
QUOTA_ALLOC_RESULT_OVER_MAXSIZE:
/* even over maximum quota */
case
QUOTA_ALLOC_RESULT_OVER_QUOTA_LIMIT:
value =
set->quota_status_toolarge;
if (value[0]
== '\0')
break;
/* fall
through */
case
QUOTA_ALLOC_RESULT_OVER_QUOTA:
case
QUOTA_ALLOC_RESULT_OVER_QUOTA_MAILBOX_LIMIT:
value =
set->quota_status_overquota;
break;
case
QUOTA_ALLOC_RESULT_TEMPFAIL:
case
QUOTA_ALLOC_RESULT_BACKGROUND_CALC:
ret = -1;
break;
}
value = t_strdup(value);
settings_free(set);
if I'm reading this correctly the value of "value" stays at ,\0' when quota_status_toolarge is equal ,\0'.
I can solve the problem by explicitly setting any value for quota_status_toolarge in the configuration.
Regards, Othmar
Hi,
I'm testing dovecot 2.4 (2.4.1 on debian trixie) after migrating from 2.3. When checking the quota-status service (quota-status -p postfix) over telnet, the response for new mail over quota returns an empty text for action.
Example:
# telnet 127.0.0.1 10022
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
recipient=mailtest@truniger.ch
size=13000000
action=
recipient=mailtest@truniger.ch
size=12000000
action=OK
^]
telnet> quit
The manual says that an empty value for "quota_status_toolarge" defaults to "quota_status_overquota". But when looking a the actual source code of quote-status.c this does not seem to be the case - the return value is '\0` for action:
Code from line 231:
switch (qret) {
case QUOTA_ALLOC_RESULT_OK:
/* under quota */
value =
set->quota_status_success;
break;
case
QUOTA_ALLOC_RESULT_OVER_MAXSIZE:
/* even over maximum quota
*/
case
QUOTA_ALLOC_RESULT_OVER_QUOTA_LIMIT:
value =
set->quota_status_toolarge;
if
(value[0] == '\0')
break;
/* fall
through */
case
QUOTA_ALLOC_RESULT_OVER_QUOTA:
case
QUOTA_ALLOC_RESULT_OVER_QUOTA_MAILBOX_LIMIT:
value =
set->quota_status_overquota;
break;
case
QUOTA_ALLOC_RESULT_TEMPFAIL:
case
QUOTA_ALLOC_RESULT_BACKGROUND_CALC:
ret = -1;
break;
}
value = t_strdup(value);
settings_free(set);
if I'm reading this correctly the value of "value" stays at '\0 when quota_status_toolarge is equal '\0.
I can solve the problem by explicitly setting any value for quota_status_toolarge in the configuration.
Regards, Othmar