move cngs out of callmaster into global scope

Change-Id: I138ca8756dfc576451bc7c3fca1db89d6616fb1e
pull/432/merge
Richard Fuchs 8 years ago
parent 399e15b39a
commit 790e596c58

@ -643,8 +643,6 @@ struct callmaster *callmaster_new(struct poller *p) {
//c->totalstats_interval.managed_sess_max = 0;
mutex_init(&c->totalstats_lastinterval_lock);
mutex_init(&c->cngs_lock);
c->cngs_hash = g_hash_table_new(g_sockaddr_hash, g_sockaddr_eq);
return c;

@ -424,10 +424,6 @@ struct callmaster {
mutex_t totalstats_lastinterval_lock;
struct totalstats totalstats_lastinterval;
/* control_ng_stats stuff */
mutex_t cngs_lock;
GHashTable *cngs_hash;
struct poller *poller;
pcre *info_re;
pcre_extra *info_ree;

@ -227,8 +227,8 @@ static void cli_incoming_list_totals(str *instr, struct callmaster* m, struct st
streambuf_printf(replybuffer, " %20s | %10s | %10s | %10s | %10s | %10s | %10s | %10s | %10s | %10s \n",
"Proxy", "Offer", "Answer", "Delete", "Ping", "List", "Query", "StartRec", "StopRec", "Errors");
mutex_lock(&m->cngs_lock);
GList *list = g_hash_table_get_values(m->cngs_hash);
mutex_lock(&rtpe_cngs_lock);
GList *list = g_hash_table_get_values(rtpe_cngs_hash);
if (!list) {
streambuf_printf(replybuffer, "\n No proxies have yet tried to send data.");
@ -248,7 +248,7 @@ static void cli_incoming_list_totals(str *instr, struct callmaster* m, struct st
cur->errors);
}
streambuf_printf(replybuffer, "\n\n");
mutex_unlock(&m->cngs_lock);
mutex_unlock(&rtpe_cngs_lock);
g_list_free(list);
}

@ -16,6 +16,10 @@
#include "log_funcs.h"
mutex_t rtpe_cngs_lock;
GHashTable *rtpe_cngs_hash;
static void timeval_update_request_time(struct request_time *request, const struct timeval *offer_diff) {
// lock offers
@ -88,18 +92,17 @@ static void pretty_print(bencode_item_t *el, GString *s) {
}
struct control_ng_stats* get_control_ng_stats(struct control_ng* c, const sockaddr_t *addr) {
struct callmaster *m = c->callmaster;
struct control_ng_stats* cur;
mutex_lock(&m->cngs_lock);
cur = g_hash_table_lookup(m->cngs_hash, addr);
mutex_lock(&rtpe_cngs_lock);
cur = g_hash_table_lookup(rtpe_cngs_hash, addr);
if (!cur) {
cur = g_slice_alloc0(sizeof(struct control_ng_stats));
cur->proxy = *addr;
ilog(LOG_DEBUG,"Adding a proxy for control ng stats:%s", sockaddr_print_buf(addr));
g_hash_table_insert(m->cngs_hash, &cur->proxy, cur);
g_hash_table_insert(rtpe_cngs_hash, &cur->proxy, cur);
}
mutex_unlock(&m->cngs_lock);
mutex_unlock(&rtpe_cngs_lock);
return cur;
}
@ -334,3 +337,9 @@ fail2:
return NULL;
}
void control_ng_init() {
mutex_init(&rtpe_cngs_lock);
rtpe_cngs_hash = g_hash_table_new(g_sockaddr_hash, g_sockaddr_eq);
}

@ -31,5 +31,9 @@ struct control_ng {
};
struct control_ng *control_ng_new(struct poller *, endpoint_t *, struct callmaster *, unsigned char);
void control_ng_init(void);
extern mutex_t rtpe_cngs_lock;
extern GHashTable *rtpe_cngs_hash;
#endif

@ -492,6 +492,7 @@ static void init_everything() {
crypto_init_main();
interfaces_init(&interfaces);
iptables_init();
control_ng_init();
}

Loading…
Cancel
Save