Remove global variable "now".

This commit is contained in:
Guus Sliepen 2007-05-18 09:34:06 +00:00
parent 7e1117197c
commit ddc6a81a85
10 changed files with 18 additions and 38 deletions

View file

@ -104,7 +104,6 @@ typedef struct connection_t {
struct event outev; /* events on this metadata connection */ struct event outev; /* events on this metadata connection */
time_t last_ping_time; /* last time we saw some activity from the other end or pinged them */ time_t last_ping_time; /* last time we saw some activity from the other end or pinged them */
time_t last_flushed_time; /* last time buffer was empty. Only meaningful if outbuflen > 0 */
avl_tree_t *config_tree; /* Pointer to configuration tree belonging to him */ avl_tree_t *config_tree; /* Pointer to configuration tree belonging to him */
} connection_t; } connection_t;

View file

@ -45,7 +45,6 @@ bool send_meta(connection_t *c, const char *buffer, int length)
c->name, c->hostname); c->name, c->hostname);
if(!c->outbuflen) { if(!c->outbuflen) {
c->last_flushed_time = now;
if(event_add(&c->outev, NULL) < 0) { if(event_add(&c->outev, NULL) < 0) {
logger(LOG_EMERG, _("event_add failed: %s"), strerror(errno)); logger(LOG_EMERG, _("event_add failed: %s"), strerror(errno));
abort(); abort();
@ -239,7 +238,7 @@ bool receive_meta(connection_t *c)
return false; return false;
} }
c->last_ping_time = now; c->last_ping_time = time(NULL);
return true; return true;
} }

View file

@ -41,8 +41,6 @@
volatile bool running = false; volatile bool running = false;
time_t now = 0;
/* Purge edges and subnets of unreachable nodes. Use carefully. */ /* Purge edges and subnets of unreachable nodes. Use carefully. */
static void purge(void) static void purge(void)
@ -208,6 +206,7 @@ static void check_dead_connections(void)
{ {
avl_node_t *node, *next; avl_node_t *node, *next;
connection_t *c; connection_t *c;
time_t now = time(NULL);
cp(); cp();
@ -243,16 +242,6 @@ static void check_dead_connections(void)
} }
} }
} }
if(c->outbuflen > 0 && c->last_flushed_time + pingtimeout < now) {
if(c->status.active) {
ifdebug(CONNECTIONS) logger(LOG_INFO,
_("%s (%s) could not flush for %ld seconds (%d bytes remaining)"),
c->name, c->hostname, now - c->last_flushed_time, c->outbuflen);
c->status.timeout = true;
terminate_connection(c, true);
}
}
} }
} }
@ -437,16 +426,13 @@ int main_loop(void)
signal_set(&sigalrm_event, SIGALRM, sigalrm_handler, NULL); signal_set(&sigalrm_event, SIGALRM, sigalrm_handler, NULL);
signal_add(&sigalrm_event, NULL); signal_add(&sigalrm_event, NULL);
last_ping_check = now; last_ping_check = time(NULL);
srand(now); srand(time(NULL));
running = true; running = true;
while(running) { while(running) {
now = time(NULL);
// tv.tv_sec = 1 + (rand() & 7); /* Approx. 5 seconds, randomized to prevent global synchronisation effects */
tv.tv_sec = 1; tv.tv_sec = 1;
tv.tv_usec = 0; tv.tv_usec = 0;
@ -463,7 +449,6 @@ int main_loop(void)
} }
r = event_loop(EVLOOP_ONCE); r = event_loop(EVLOOP_ONCE);
now = time(NULL);
if(r < 0) { if(r < 0) {
logger(LOG_ERR, _("Error while waiting for input: %s"), logger(LOG_ERR, _("Error while waiting for input: %s"),
strerror(errno)); strerror(errno));
@ -477,9 +462,9 @@ int main_loop(void)
/* Let's check if everybody is still alive */ /* Let's check if everybody is still alive */
if(last_ping_check + pingtimeout < now) { if(last_ping_check + pingtimeout < time(NULL)) {
check_dead_connections(); check_dead_connections();
last_ping_check = now; last_ping_check = time(NULL);
} }
} }

View file

@ -128,7 +128,6 @@ extern int keylifetime;
extern bool do_prune; extern bool do_prune;
extern bool do_purge; extern bool do_purge;
extern char *myport; extern char *myport;
extern time_t now;
extern EVP_CIPHER_CTX packet_ctx; extern EVP_CIPHER_CTX packet_ctx;
/* Yes, very strange placement indeed, but otherwise the typedefs get all tangled up */ /* Yes, very strange placement indeed, but otherwise the typedefs get all tangled up */

View file

@ -263,9 +263,6 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
inpkt = outpkt; inpkt = outpkt;
} }
if(n->connection)
n->connection->last_ping_time = now;
if(!inpkt->data[12] && !inpkt->data[13]) if(!inpkt->data[12] && !inpkt->data[13])
mtu_probe_h(n, inpkt); mtu_probe_h(n, inpkt);
else else

View file

@ -580,8 +580,6 @@ bool setup_network_connections(void)
{ {
cp(); cp();
now = time(NULL);
init_connections(); init_connections();
init_subnets(); init_subnets();
init_nodes(); init_nodes();

View file

@ -261,7 +261,7 @@ void finish_connecting(connection_t *c)
configure_tcp(c); configure_tcp(c);
c->last_ping_time = now; c->last_ping_time = time(NULL);
c->status.connecting = false; c->status.connecting = false;
send_id(c); send_id(c);
@ -391,7 +391,7 @@ void setup_outgoing_connection(outgoing_t *outgoing)
} }
c->outgoing = outgoing; c->outgoing = outgoing;
c->last_ping_time = now; c->last_ping_time = time(NULL);
connection_add(c); connection_add(c);
@ -437,7 +437,7 @@ void handle_new_meta_connection(int sock, short events, void *data)
c->address = sa; c->address = sa;
c->hostname = sockaddr2hostname(&sa); c->hostname = sockaddr2hostname(&sa);
c->socket = fd; c->socket = fd;
c->last_ping_time = now; c->last_ping_time = time(NULL);
ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection from %s"), c->hostname); ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection from %s"), c->hostname);

View file

@ -211,7 +211,7 @@ bool seen_request(char *request)
} else { } else {
new = xmalloc(sizeof(*new)); new = xmalloc(sizeof(*new));
new->request = xstrdup(request); new->request = xstrdup(request);
new->firstseen = now; new->firstseen = time(NULL);
avl_insert(past_request_tree, new); avl_insert(past_request_tree, new);
event_add(&past_request_event, &(struct timeval){10, 0}); event_add(&past_request_event, &(struct timeval){10, 0});
return false; return false;
@ -223,6 +223,7 @@ void age_past_requests(int fd, short events, void *data)
avl_node_t *node, *next; avl_node_t *node, *next;
past_request_t *p; past_request_t *p;
int left = 0, deleted = 0; int left = 0, deleted = 0;
time_t now = time(NULL);
cp(); cp();

View file

@ -116,7 +116,7 @@ bool send_ping(connection_t *c)
cp(); cp();
c->status.pinged = true; c->status.pinged = true;
c->last_ping_time = now; c->last_ping_time = time(NULL);
return send_request(c, "%d", PING); return send_request(c, "%d", PING);
} }

View file

@ -77,6 +77,7 @@ static uint16_t inet_checksum(void *data, int len, uint16_t prevsum)
static bool ratelimit(int frequency) { static bool ratelimit(int frequency) {
static time_t lasttime = 0; static time_t lasttime = 0;
static int count = 0; static int count = 0;
time_t now = time(NULL);
if(lasttime == now) { if(lasttime == now) {
if(++count > frequency) if(++count > frequency)
@ -103,6 +104,7 @@ static void age_subnets(int fd, short events, void *data)
connection_t *c; connection_t *c;
avl_node_t *node, *next, *node2; avl_node_t *node, *next, *node2;
bool left = false; bool left = false;
time_t now = time(NULL);
cp(); cp();
@ -152,7 +154,7 @@ static void learn_mac(mac_t *address)
subnet = new_subnet(); subnet = new_subnet();
subnet->type = SUBNET_MAC; subnet->type = SUBNET_MAC;
subnet->expires = now + macexpire; subnet->expires = time(NULL) + macexpire;
subnet->net.mac.address = *address; subnet->net.mac.address = *address;
subnet_add(myself, subnet); subnet_add(myself, subnet);
@ -167,10 +169,10 @@ static void learn_mac(mac_t *address)
if(!timeout_initialized(&age_subnets_event)) if(!timeout_initialized(&age_subnets_event))
timeout_set(&age_subnets_event, age_subnets, NULL); timeout_set(&age_subnets_event, age_subnets, NULL);
event_add(&age_subnets_event, &(struct timeval){10, 0}); event_add(&age_subnets_event, &(struct timeval){10, 0});
} else {
if(subnet->expires)
subnet->expires = time(NULL) + macexpire;
} }
if(subnet->expires)
subnet->expires = now + macexpire;
} }
static void route_mac(node_t *source, vpn_packet_t *packet) static void route_mac(node_t *source, vpn_packet_t *packet)