void mail_commands_free_memory(void)
{
+ unsigned int diff;
+
while (stable_mail_commands != NULL) {
struct mail_command *cmd = stable_mail_commands;
if (global_used_memory < stats_settings->memory_limit)
break;
- if (ioloop_time -
- stable_mail_commands->last_update.tv_sec < stats_settings->command_min_time)
+
+ diff = ioloop_time - stable_mail_commands->last_update.tv_sec;
+ if (diff < stats_settings->command_min_time)
break;
}
}
void mail_domains_free_memory(void)
{
+ unsigned int diff;
+
while (mail_domains_head != NULL && mail_domains_head->refcount == 0) {
mail_domain_free(mail_domains_head);
if (global_used_memory < stats_settings->memory_limit)
break;
- if (ioloop_time -
- mail_domains_head->last_update.tv_sec < stats_settings->domain_min_time)
+
+ diff = ioloop_time - mail_domains_head->last_update.tv_sec;
+ if (diff < stats_settings->domain_min_time)
break;
}
}
void mail_ips_free_memory(void)
{
+ unsigned int diff;
+
while (mail_ips_head != NULL && mail_ips_head->refcount == 0) {
mail_ip_free(mail_ips_head);
if (global_used_memory < stats_settings->memory_limit)
break;
- if (ioloop_time -
- mail_ips_head->last_update.tv_sec < stats_settings->ip_min_time)
+
+ diff = ioloop_time - mail_ips_head->last_update.tv_sec;
+ if (diff < stats_settings->ip_min_time)
break;
}
}
void mail_sessions_free_memory(void)
{
+ unsigned int diff;
+
while (mail_sessions_head != NULL &&
mail_sessions_head->refcount == 0) {
i_assert(mail_sessions_head->disconnected);
if (global_used_memory < stats_settings->memory_limit)
break;
- if (ioloop_time -
- mail_sessions_head->last_update.tv_sec < stats_settings->session_min_time)
+
+ diff = ioloop_time - mail_sessions_head->last_update.tv_sec;
+ if (diff < stats_settings->session_min_time)
break;
}
}
void mail_users_free_memory(void)
{
+ unsigned int diff;
+
while (mail_users_head != NULL && mail_users_head->refcount == 0) {
mail_user_free(mail_users_head);
if (global_used_memory < stats_settings->memory_limit)
break;
- if (ioloop_time -
- mail_users_head->last_update.tv_sec < stats_settings->user_min_time)
+
+ diff = ioloop_time - mail_users_head->last_update.tv_sec;
+ if (diff < stats_settings->user_min_time)
break;
}
}