dovecot-2.0: lib-master: Make sure master_status.available_count...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Sep 4 21:17:55 EEST 2009
details: http://hg.dovecot.org/dovecot-2.0/rev/63d2755c9211
changeset: 9868:63d2755c9211
user: Timo Sirainen <tss at iki.fi>
date: Fri Sep 04 14:17:48 2009 -0400
description:
lib-master: Make sure master_status.available_count is updated correctly.
diffstat:
1 file changed, 9 insertions(+), 1 deletion(-)
src/lib-master/master-service.c | 10 +++++++++-
diffs (31 lines):
diff -r 6168a479c54b -r 63d2755c9211 src/lib-master/master-service.c
--- a/src/lib-master/master-service.c Fri Sep 04 14:17:03 2009 -0400
+++ b/src/lib-master/master-service.c Fri Sep 04 14:17:48 2009 -0400
@@ -330,11 +330,17 @@ void master_service_set_client_limit(str
void master_service_set_client_limit(struct master_service *service,
unsigned int client_limit)
{
+ unsigned int used;
+
i_assert(service->master_status.available_count ==
service->total_available_count);
+ used = service->total_available_count -
+ service->master_status.available_count;
+ i_assert(client_limit >= used);
+
service->total_available_count = client_limit;
- service->master_status.available_count = client_limit;
+ service->master_status.available_count = client_limit - used;
}
unsigned int master_service_get_client_limit(struct master_service *service)
@@ -422,6 +428,8 @@ void master_service_client_connection_de
if (service->service_count_left != service->total_available_count) {
i_assert(service->service_count_left == (unsigned int)-1);
+ i_assert(service->master_status.available_count <
+ service->total_available_count);
service->master_status.available_count++;
} else {
/* we have only limited amount of service requests left */
More information about the dovecot-cvs
mailing list