mirror of
https://github.com/ntop/n2n.git
synced 2024-09-20 00:51:10 +02:00
When multiple supernodes are specified, the edge registers to all of them
This commit is contained in:
parent
3acd7a0e89
commit
1c7b14995b
6
edge.c
6
edge.c
|
@ -175,7 +175,7 @@ static void help() {
|
||||||
/* *************************************************** */
|
/* *************************************************** */
|
||||||
|
|
||||||
static int setOption(int optkey, char *optargument, edge_conf_t *ec, n2n_edge_t *eee) {
|
static int setOption(int optkey, char *optargument, edge_conf_t *ec, n2n_edge_t *eee) {
|
||||||
//traceEvent(TRACE_NORMAL, "Option %c = %s", optkey, optargument ? optargument : "");
|
/* traceEvent(TRACE_NORMAL, "Option %c = %s", optkey, optargument ? optargument : ""); */
|
||||||
|
|
||||||
switch(optkey) {
|
switch(optkey) {
|
||||||
case'K':
|
case'K':
|
||||||
|
@ -272,10 +272,10 @@ static int setOption(int optkey, char *optargument, edge_conf_t *ec, n2n_edge_t
|
||||||
{
|
{
|
||||||
if(eee->sn_num < N2N_EDGE_NUM_SUPERNODES) {
|
if(eee->sn_num < N2N_EDGE_NUM_SUPERNODES) {
|
||||||
strncpy((eee->sn_ip_array[eee->sn_num]), optargument, N2N_EDGE_SN_HOST_SIZE);
|
strncpy((eee->sn_ip_array[eee->sn_num]), optargument, N2N_EDGE_SN_HOST_SIZE);
|
||||||
traceEvent(TRACE_DEBUG, "Adding supernode[%u] = %s\n", (unsigned int)eee->sn_num, (eee->sn_ip_array[eee->sn_num]));
|
traceEvent(TRACE_NORMAL, "Adding supernode[%u] = %s\n", (unsigned int)eee->sn_num, (eee->sn_ip_array[eee->sn_num]));
|
||||||
++eee->sn_num;
|
++eee->sn_num;
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "Too many supernodes!\n");
|
traceEvent(TRACE_WARNING, "Too many supernodes!\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
11
edge_utils.c
11
edge_utils.c
|
@ -574,6 +574,8 @@ static void send_register_ack(n2n_edge_t * eee,
|
||||||
* This is frequently called by the main loop.
|
* This is frequently called by the main loop.
|
||||||
*/
|
*/
|
||||||
void update_supernode_reg(n2n_edge_t * eee, time_t nowTime) {
|
void update_supernode_reg(n2n_edge_t * eee, time_t nowTime) {
|
||||||
|
u_int sn_idx;
|
||||||
|
|
||||||
if(eee->sn_wait && (nowTime > (eee->last_register_req + (eee->register_lifetime/10)))) {
|
if(eee->sn_wait && (nowTime > (eee->last_register_req + (eee->register_lifetime/10)))) {
|
||||||
/* fall through */
|
/* fall through */
|
||||||
traceEvent(TRACE_DEBUG, "update_supernode_reg: doing fast retry.");
|
traceEvent(TRACE_DEBUG, "update_supernode_reg: doing fast retry.");
|
||||||
|
@ -597,13 +599,16 @@ void update_supernode_reg(n2n_edge_t * eee, time_t nowTime) {
|
||||||
else
|
else
|
||||||
--(eee->sup_attempts);
|
--(eee->sup_attempts);
|
||||||
|
|
||||||
if(eee->re_resolve_supernode_ip || (eee->sn_num > 1))
|
for(sn_idx=0; sn_idx<eee->sn_num; sn_idx++) {
|
||||||
supernode2addr(&(eee->supernode), eee->sn_ip_array[eee->sn_idx]);
|
supernode2addr(&(eee->supernode), eee->sn_ip_array[sn_idx]);
|
||||||
|
|
||||||
traceEvent(TRACE_DEBUG, "Registering with supernode (%s) (attempts left %u)",
|
traceEvent(TRACE_NORMAL, "Registering with supernode [id: %u/%u][%s][attempts left %u]",
|
||||||
|
sn_idx+1, eee->sn_num,
|
||||||
supernode_ip(eee), (unsigned int)eee->sup_attempts);
|
supernode_ip(eee), (unsigned int)eee->sup_attempts);
|
||||||
|
|
||||||
send_register_super(eee, &(eee->supernode));
|
send_register_super(eee, &(eee->supernode));
|
||||||
|
}
|
||||||
|
|
||||||
register_with_local_peers(eee);
|
register_with_local_peers(eee);
|
||||||
|
|
||||||
eee->sn_wait=1;
|
eee->sn_wait=1;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user