Remove vector of new temporary peers

The new poll code has made this second peer list obsolete.
This commit is contained in:
Matthias Schiffer 2014-04-21 20:02:43 +02:00
parent 175685ed5f
commit 505f97771a
5 changed files with 29 additions and 58 deletions

View file

@ -476,14 +476,6 @@ static void handle_handshake_queue(void) {
fastd_resolve_peer(peer, peer->next_remote);
}
static void enable_temporaries(void) {
size_t i;
for (i = 0; i < VECTOR_LEN(ctx.peers_temp); i++)
fastd_peer_enable_temporary(VECTOR_INDEX(ctx.peers_temp, i));
VECTOR_RESIZE(ctx.peers_temp, 0);
}
static bool maintain_peer(fastd_peer_t *peer) {
if (fastd_peer_is_temporary(peer) || fastd_peer_is_established(peer)) {
/* check for peer timeout */
@ -854,7 +846,6 @@ int main(int argc, char *argv[]) {
VECTOR_ALLOC(ctx.eth_addrs, 0);
VECTOR_ALLOC(ctx.peers, 0);
VECTOR_ALLOC(ctx.peers_temp, 0);
fastd_peer_hashtable_init();
@ -865,8 +856,6 @@ int main(int argc, char *argv[]) {
fastd_poll_handle();
enable_temporaries();
if (fastd_timed_out(&ctx.next_maintenance))
maintenance();
@ -907,7 +896,6 @@ int main(int argc, char *argv[]) {
fastd_peer_hashtable_free();
VECTOR_FREE(ctx.peers_temp);
VECTOR_FREE(ctx.peers);
VECTOR_FREE(ctx.eth_addrs);

View file

@ -239,7 +239,6 @@ struct fastd_context {
fastd_peer_group_t *peer_group;
VECTOR(fastd_peer_t*) peers;
VECTOR(fastd_peer_t*) peers_temp;
#ifdef USE_EPOLL
int epoll_fd;

View file

@ -267,15 +267,6 @@ static void delete_peer(fastd_peer_t *peer) {
}
}
if (i == VECTOR_LEN(ctx.peers)) {
for (i = 0; i < VECTOR_LEN(ctx.peers_temp); i++) {
if (VECTOR_INDEX(ctx.peers_temp, i) == peer) {
VECTOR_DELETE(ctx.peers_temp, i);
break;
}
}
}
fastd_peer_hashtable_remove(peer);
conf.protocol->free_peer_state(peer);
@ -557,29 +548,41 @@ bool fastd_peer_may_connect(fastd_peer_t *peer) {
fastd_peer_t* fastd_peer_add(fastd_peer_config_t *peer_conf) {
fastd_peer_t *peer = calloc(1, sizeof(fastd_peer_t));
peer->config = peer_conf;
peer->group = find_peer_group(ctx.peer_group, peer_conf->group);
peer->protocol_config = peer_conf->protocol_config;
if (peer_conf) {
peer->config = peer_conf;
peer->group = find_peer_group(ctx.peer_group, peer_conf->group);
peer->protocol_config = peer_conf->protocol_config;
fastd_remote_t **remote = &peer->remotes;
fastd_remote_config_t *remote_config = peer_conf->remotes;
fastd_remote_t **remote = &peer->remotes;
fastd_remote_config_t *remote_config = peer_conf->remotes;
while (remote_config) {
*remote = calloc(1, sizeof(fastd_remote_t));
(*remote)->ref = 1;
(*remote)->config = remote_config;
while (remote_config) {
*remote = calloc(1, sizeof(fastd_remote_t));
(*remote)->ref = 1;
(*remote)->config = remote_config;
if (!remote_config->hostname) {
(*remote)->n_addresses = 1;
(*remote)->addresses = malloc(sizeof(fastd_peer_address_t));
(*remote)->addresses[0] = remote_config->address;
if (!remote_config->hostname) {
(*remote)->n_addresses = 1;
(*remote)->addresses = malloc(sizeof(fastd_peer_address_t));
(*remote)->addresses[0] = remote_config->address;
}
remote = &(*remote)->next;
remote_config = remote_config->next;
}
remote = &(*remote)->next;
remote_config = remote_config->next;
pr_verbose("adding peer %P (group `%s')", peer, peer->group->conf->name);
}
else {
if (!fastd_shell_command_isset(&conf.on_verify))
exit_bug("tried to add temporary peer without on-verify command");
pr_verbose("adding peer %P (group `%s')", peer, peer->group->conf->name);
peer->group = ctx.peer_group;
fastd_peer_seen(peer);
pr_debug("adding temporary peer");
}
setup_peer(peer);
@ -589,24 +592,6 @@ fastd_peer_t* fastd_peer_add(fastd_peer_config_t *peer_conf) {
return peer;
}
fastd_peer_t* fastd_peer_add_temporary(void) {
if (!fastd_shell_command_isset(&conf.on_verify))
exit_bug("tried to add temporary peer without on-verify command");
fastd_peer_t *peer = calloc(1, sizeof(fastd_peer_t));
peer->group = ctx.peer_group;
fastd_peer_seen(peer);
pr_debug("adding temporary peer");
setup_peer(peer);
VECTOR_ADD(ctx.peers_temp, peer);
return peer;
}
bool fastd_peer_verify_temporary(fastd_peer_t *peer, const fastd_peer_address_t *local_addr, const fastd_peer_address_t *peer_addr) {
if (!fastd_shell_command_isset(&conf.on_verify))
exit_bug("tried to verify temporary peer without on-verify command");

View file

@ -131,7 +131,6 @@ bool fastd_peer_config_equal(const fastd_peer_config_t *peer1, const fastd_peer_
void fastd_peer_reset(fastd_peer_t *peer);
void fastd_peer_delete(fastd_peer_t *peer);
fastd_peer_t* fastd_peer_add(fastd_peer_config_t *peer_conf);
fastd_peer_t* fastd_peer_add_temporary(void);
bool fastd_peer_verify_temporary(fastd_peer_t *peer, const fastd_peer_address_t *local_addr, const fastd_peer_address_t *peer_addr);
void fastd_peer_enable_temporary(fastd_peer_t *peer);
void fastd_peer_set_established(fastd_peer_t *peer);

View file

@ -499,7 +499,7 @@ static inline fastd_peer_t* add_temporary(const fastd_peer_address_t *addr, cons
return NULL;
}
fastd_peer_t *peer = fastd_peer_add_temporary();
fastd_peer_t *peer = fastd_peer_add(NULL);
peer->protocol_config = malloc(sizeof(fastd_protocol_peer_config_t));
memcpy(&peer->protocol_config->public_key, key, PUBLICKEYBYTES);