Skip to content

Commit

Permalink
Remove 'always_on' flag
Browse files Browse the repository at this point in the history
This can be inferred by setting the idle timeout to -1

Change-Id: I07737df2d8972c6d3153f75f3007ee566545d06d
Reviewed-on: http://review.couchbase.org/34955
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
  • Loading branch information
mnunberg committed Mar 27, 2014
1 parent 8d4e95b commit 8827831
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 28 deletions.
4 changes: 1 addition & 3 deletions src/bootstrap.c
Expand Up @@ -69,9 +69,7 @@ static void config_callback(clconfig_listener *listener,
"Reverting to HTTP Config for memcached buckets");

/** Memcached bucket */
lcb_clconfig_set_http_always_on(
lcb_confmon_get_provider(
instance->confmon, LCB_CLCONFIG_HTTP));
instance->settings.bc_http_stream_time = -1;
lcb_confmon_set_provider_active(instance->confmon,
LCB_CLCONFIG_HTTP, 1);

Expand Down
21 changes: 9 additions & 12 deletions src/bucketconfig/bc_http.c
Expand Up @@ -34,6 +34,14 @@ static void connect_done_handler(lcb_connection_t conn, lcb_error_t err);
static lcb_error_t setup_request_header(http_provider *http);
static lcb_error_t htvb_parse(struct htvb_st *vbs, lcb_type_t btype);

static int is_compat(http_provider *http)
{
lcb_uint32_t setting = PROVIDER_SETTING(&http->base, bc_http_stream_time);
if (setting == (lcb_uint32_t)-1) {
return 1;
}
return 0;
}

/**
* Closes the current connection and removes the disconn timer along with it
Expand Down Expand Up @@ -270,8 +278,7 @@ static void delayed_disconn(lcb_timer_t tm, lcb_t instance, const void *cookie)
static lcb_error_t pause_http(clconfig_provider *pb)
{
http_provider *http = (http_provider *)pb;
if (http->always_on) {
lcb_timer_disarm(http->io_timer);
if (is_compat(http)) {
return LCB_SUCCESS;
}

Expand Down Expand Up @@ -661,16 +668,6 @@ lcb_host_t * lcb_confmon_get_rest_host(lcb_confmon *mon)
return (lcb_host_t *)lcb_connection_get_host(&http->connection);
}

void lcb_clconfig_set_http_always_on(clconfig_provider *pb)
{
http_provider *http = (http_provider *)pb;
if (!pb->enabled) {
return;
}
lcb_timer_disarm(http->disconn_timer);
http->always_on = 1;
}

void lcb_clconfig_http_enable(clconfig_provider *http)
{
http->enabled = 1;
Expand Down
6 changes: 0 additions & 6 deletions src/bucketconfig/bc_http.h
Expand Up @@ -88,12 +88,6 @@ typedef struct clprovider_http_st {
clconfig_info *current_config;

int retry_on_missing;

/**
* This enables the old-style push configuration. Needed for memcached
* buckets
*/
int always_on;
} http_provider;


Expand Down
6 changes: 0 additions & 6 deletions src/bucketconfig/clconfig.h
Expand Up @@ -425,12 +425,6 @@ struct lcb_connection_st* lcb_confmon_get_rest_connection(lcb_confmon *mon);

lcb_host_t * lcb_confmon_get_rest_host(lcb_confmon *mon);

/**
* Enables old push-style behavior on the HTTP provider
*/
LCB_INTERNAL_API
void lcb_clconfig_set_http_always_on(clconfig_provider *pb);

LCB_INTERNAL_API
void lcb_confmon_set_provider_active(lcb_confmon *mon,
clconfig_method_t type, int enabled);
Expand Down
2 changes: 1 addition & 1 deletion tests/mock-unit-test.cc
Expand Up @@ -1026,7 +1026,7 @@ TEST_F(MockUnitTest, testMemcachedFailover)
http_provider *htprov =
(http_provider *)lcb_confmon_get_provider(instance->confmon,
LCB_CLCONFIG_HTTP);
ASSERT_EQ(1, htprov->always_on);
ASSERT_EQ((lcb_uint32_t)-1, instance->settings.bc_http_stream_time);
ASSERT_EQ(0, lcb_timer_armed(htprov->disconn_timer));

// Fail over the first node..
Expand Down

0 comments on commit 8827831

Please sign in to comment.