Browse Source

Recruit extra subproxies on a new parent with a small nonce size, being more verbose about proxy recruitment

master
ckolivas 10 years ago
parent
commit
bc7d59ad66
  1. 12
      src/generator.c

12
src/generator.c

@ -136,6 +136,7 @@ struct proxy_instance {
mutex_t proxy_lock; /* Lock protecting hashlist of proxies */ mutex_t proxy_lock; /* Lock protecting hashlist of proxies */
proxy_instance_t *parent; /* Parent proxy of subproxies */ proxy_instance_t *parent; /* Parent proxy of subproxies */
proxy_instance_t *subproxies; /* Hashlist of subproxies of this proxy */ proxy_instance_t *subproxies; /* Hashlist of subproxies of this proxy */
int64_t clients_per_proxy; /* Max number of clients of this proxy */
int subproxy_count; /* Number of subproxies */ int subproxy_count; /* Number of subproxies */
}; };
@ -564,6 +565,8 @@ static inline bool parent_proxy(proxy_instance_t *proxy)
return (proxy->parent == proxy); return (proxy->parent == proxy);
} }
static void recruit_subproxies(proxy_instance_t *proxi, const int recruits);
static bool parse_subscribe(connsock_t *cs, proxy_instance_t *proxi) static bool parse_subscribe(connsock_t *cs, proxy_instance_t *proxi)
{ {
json_t *val = NULL, *res_val, *notify_val, *tmp; json_t *val = NULL, *res_val, *notify_val, *tmp;
@ -663,13 +666,14 @@ retry:
proxi->nonce2len = size; proxi->nonce2len = size;
if (parent_proxy(proxi)) { if (parent_proxy(proxi)) {
/* Set the number of clients per proxy on the parent proxy */ /* Set the number of clients per proxy on the parent proxy */
int64_t clients_per_proxy = 1ll << ((size - 3) * 8); proxi->clients_per_proxy = 1ll << ((size - 3) * 8);
LOGNOTICE("Proxy %ld:%s clients per proxy: %"PRId64, proxi->id, proxi->si->url, LOGNOTICE("Proxy %ld:%s clients per proxy: %"PRId64, proxi->id, proxi->si->url,
clients_per_proxy); proxi->clients_per_proxy);
if (proxi->clients_per_proxy == 1)
recruit_subproxies(proxi, 41);
} }
LOGINFO("Found notify for proxy %ld:%d with enonce %s nonce2len %d", proxi->id, LOGNOTICE("Found notify for new proxy %ld:%d with enonce %s nonce2len %d", proxi->id,
proxi->subid, proxi->enonce1, proxi->nonce2len); proxi->subid, proxi->enonce1, proxi->nonce2len);
ret = true; ret = true;

Loading…
Cancel
Save