Browse Source

move cngs out of callmaster into global scope

Change-Id: I138ca8756dfc576451bc7c3fca1db89d6616fb1e
pull/432/merge
Richard Fuchs 8 years ago
parent
commit
790e596c58
6 changed files with 22 additions and 14 deletions
  1. +0
    -2
      daemon/call.c
  2. +0
    -4
      daemon/call.h
  3. +3
    -3
      daemon/cli.c
  4. +14
    -5
      daemon/control_ng.c
  5. +4
    -0
      daemon/control_ng.h
  6. +1
    -0
      daemon/main.c

+ 0
- 2
daemon/call.c View File

@ -643,8 +643,6 @@ struct callmaster *callmaster_new(struct poller *p) {
//c->totalstats_interval.managed_sess_max = 0; //c->totalstats_interval.managed_sess_max = 0;
mutex_init(&c->totalstats_lastinterval_lock); 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; return c;


+ 0
- 4
daemon/call.h View File

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


+ 3
- 3
daemon/cli.c View File

@ -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", streambuf_printf(replybuffer, " %20s | %10s | %10s | %10s | %10s | %10s | %10s | %10s | %10s | %10s \n",
"Proxy", "Offer", "Answer", "Delete", "Ping", "List", "Query", "StartRec", "StopRec", "Errors"); "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) { if (!list) {
streambuf_printf(replybuffer, "\n No proxies have yet tried to send data."); 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); cur->errors);
} }
streambuf_printf(replybuffer, "\n\n"); streambuf_printf(replybuffer, "\n\n");
mutex_unlock(&m->cngs_lock);
mutex_unlock(&rtpe_cngs_lock);
g_list_free(list); g_list_free(list);
} }


+ 14
- 5
daemon/control_ng.c View File

@ -16,6 +16,10 @@
#include "log_funcs.h" #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) { static void timeval_update_request_time(struct request_time *request, const struct timeval *offer_diff) {
// lock offers // 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 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; 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) { if (!cur) {
cur = g_slice_alloc0(sizeof(struct control_ng_stats)); cur = g_slice_alloc0(sizeof(struct control_ng_stats));
cur->proxy = *addr; cur->proxy = *addr;
ilog(LOG_DEBUG,"Adding a proxy for control ng stats:%s", sockaddr_print_buf(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; return cur;
} }
@ -334,3 +337,9 @@ fail2:
return NULL; return NULL;
} }
void control_ng_init() {
mutex_init(&rtpe_cngs_lock);
rtpe_cngs_hash = g_hash_table_new(g_sockaddr_hash, g_sockaddr_eq);
}

+ 4
- 0
daemon/control_ng.h View File

@ -31,5 +31,9 @@ struct control_ng {
}; };
struct control_ng *control_ng_new(struct poller *, endpoint_t *, struct callmaster *, unsigned char); 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 #endif

+ 1
- 0
daemon/main.c View File

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


Loading…
Cancel
Save