summaryrefslogtreecommitdiff
path: root/support/proxymonitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'support/proxymonitor.c')
-rw-r--r--support/proxymonitor.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/support/proxymonitor.c b/support/proxymonitor.c
index 9a3242ea27..0411eaf2df 100644
--- a/support/proxymonitor.c
+++ b/support/proxymonitor.c
@@ -74,6 +74,10 @@ static apr_status_t init_healthck(apr_pool_t *pool, int *num)
sharedmem_initglobalpool(pool);
checkstorage = sharedmem_getstorage();
rv = checkstorage->ap_slotmem_attach(&myscore, "proxy/checker", &size, num, pool);
+ if (rv != APR_SUCCESS) {
+ apr_file_printf(errfile, "Can't attach to httpd memory error: %d\n", rv);
+ return rv;
+ }
health_checker_init_slotmem_storage(checkstorage);
health_checker_init_slotmem(myscore);
@@ -175,6 +179,10 @@ int process_sharedmem(apr_pool_t *pool, int num)
for (n = 0; n < num; n++) {
rv = worker_storage->get_entryconf(n, &worker, &balancer_name, pool);
+ if (rv != APR_SUCCESS) {
+ apr_file_printf(errfile, "Can't read entry %d\n", n);
+ return rv;
+ }
if (worker->used == 0 || worker->used == 2)
continue;
worker_storage->get_health(n, &status);
@@ -190,6 +198,7 @@ int process_sharedmem(apr_pool_t *pool, int num)
worker_storage->set_health(n, HEALTH_OK);
}
}
+ return APR_SUCCESS;
}
/*
@@ -272,7 +281,8 @@ int main(int argc, const char * const argv[])
if (instance_socket == NULL) {
apr_pool_create(&instance_socket, pool);
- init_healthck(instance_socket, &num);
+ status = init_healthck(instance_socket, &num);
+ return 1;
}
apr_pool_create(&instance, instance_socket);