CELIX-373: made endpoint_server number configurable. Default value raised to 15
Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/2bc39ca9 Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/2bc39ca9 Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/2bc39ca9 Branch: refs/heads/release/celix-2.0.0 Commit: 2bc39ca9246abb8139b400715704723e9e9f4391 Parents: 216032c Author: gricciardi <griccia...@apache.org> Authored: Fri Aug 26 17:44:07 2016 +0200 Committer: gricciardi <griccia...@apache.org> Committed: Fri Aug 26 17:44:07 2016 +0200 ---------------------------------------------------------------------- .../discovery/private/include/discovery.h | 1 + .../private/src/endpoint_discovery_server.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/2bc39ca9/remote_services/discovery/private/include/discovery.h ---------------------------------------------------------------------- diff --git a/remote_services/discovery/private/include/discovery.h b/remote_services/discovery/private/include/discovery.h index 9695a3c..ee79caf 100644 --- a/remote_services/discovery/private/include/discovery.h +++ b/remote_services/discovery/private/include/discovery.h @@ -38,6 +38,7 @@ #define DISCOVERY_SERVER_PORT "DISCOVERY_CFG_SERVER_PORT" #define DISCOVERY_SERVER_PATH "DISCOVERY_CFG_SERVER_PATH" #define DISCOVERY_POLL_ENDPOINTS "DISCOVERY_CFG_POLL_ENDPOINTS" +#define DISCOVERY_SERVER_MAX_EP "DISCOVERY_CFG_SERVER_MAX_EP" typedef struct discovery *discovery_pt; http://git-wip-us.apache.org/repos/asf/celix/blob/2bc39ca9/remote_services/discovery/private/src/endpoint_discovery_server.c ---------------------------------------------------------------------- diff --git a/remote_services/discovery/private/src/endpoint_discovery_server.c b/remote_services/discovery/private/src/endpoint_discovery_server.c index 6273e6f..f5f82af 100644 --- a/remote_services/discovery/private/src/endpoint_discovery_server.c +++ b/remote_services/discovery/private/src/endpoint_discovery_server.c @@ -40,7 +40,7 @@ #include "endpoint_descriptor_writer.h" // defines how often the webserver is restarted (with an increased port number) -#define MAX_NUMBER_OF_RESTARTS 5 +#define MAX_NUMBER_OF_RESTARTS 15 #define DEFAULT_SERVER_THREADS "1" #define CIVETWEB_REQUEST_NOT_HANDLED 0 @@ -79,6 +79,9 @@ celix_status_t endpointDiscoveryServer_create(discovery_pt discovery, bundle_con const char *ip = NULL; char *detectedIp = NULL; const char *path = NULL; + const char *retries = NULL; + + int max_ep_num = MAX_NUMBER_OF_RESTARTS; *server = malloc(sizeof(struct endpoint_discovery_server)); if (!*server) { @@ -137,6 +140,15 @@ celix_status_t endpointDiscoveryServer_create(discovery_pt discovery, bundle_con path = DEFAULT_SERVER_PATH; } + bundleContext_getProperty(context, DISCOVERY_SERVER_MAX_EP, &retries); + if (retries != NULL) { + errno=0; + max_ep_num = strtol(retries,NULL,10); + if(errno!=0 || max_ep_num<=0){ + max_ep_num=MAX_NUMBER_OF_RESTARTS; + } + } + (*server)->path = format_path(path); const struct mg_callbacks callbacks = { @@ -176,7 +188,7 @@ celix_status_t endpointDiscoveryServer_create(discovery_pt discovery, bundle_con } - } while(((*server)->ctx == NULL) && (port_counter < MAX_NUMBER_OF_RESTARTS)); + } while(((*server)->ctx == NULL) && (port_counter < max_ep_num)); (*server)->port = strdup(port);