diff --git a/include/n2n_typedefs.h b/include/n2n_typedefs.h index 306d338..a4ea1d4 100644 --- a/include/n2n_typedefs.h +++ b/include/n2n_typedefs.h @@ -516,6 +516,9 @@ typedef struct n2n_edge_callbacks { /* Called periodically in the main loop. */ void (*main_loop_period)(n2n_edge_t *eee, time_t now); + + /* Called when a new socket to supernode is created. */ + void (*sock_opened)(n2n_edge_t *eee); } n2n_edge_callbacks_t; typedef struct n2n_tuntap_priv_config { diff --git a/src/edge_utils.c b/src/edge_utils.c index 342c8a0..2c379a5 100644 --- a/src/edge_utils.c +++ b/src/edge_utils.c @@ -219,6 +219,9 @@ int supernode_connect(n2n_edge_t *eee) { return -1; } + if(eee->cb.sock_opened) + eee->cb.sock_opened(eee); + struct sockaddr_in sock; sock.sin_family = AF_INET; sock.sin_port = htons(eee->curr_sn->sock.port);