#include "route.h"
#include "utils.h"
-#ifndef MAX
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#endif
-
/* The minimum size of a probe is 14 bytes, but since we normally use CBC mode
encryption, we can add a few extra random bytes without increasing the
resulting packet size. */
So we pick a random edge and a random socket. */
unsigned int i = 0;
- unsigned int j = rand() % n->edge_tree->count;
+ unsigned int j = prng(n->edge_tree.count);
edge_t *candidate = NULL;
- for splay_each(edge_t, e, n->edge_tree) {
+ for splay_each(edge_t, e, &n->edge_tree) {
if(i++ == j) {
candidate = e->reverse;
break;
if(candidate) {
*sa = &candidate->address;
- *sock = rand() % listen_sockets;
+ *sock = prng(listen_sockets);
}
adapt_socket(*sa, sock);
/* Pick one of the edges from this node at random, then use its local address. */
unsigned int i = 0;
- unsigned int j = rand() % n->edge_tree->count;
+ unsigned int j = prng(n->edge_tree.count);
edge_t *candidate = NULL;
- for splay_each(edge_t, e, n->edge_tree) {
+ for splay_each(edge_t, e, &n->edge_tree) {
if(i++ == j) {
candidate = e;
break;
if(candidate && candidate->local_address.sa.sa_family) {
*sa = &candidate->local_address;
- *sock = rand() % listen_sockets;
+ *sock = prng(listen_sockets);
adapt_socket(*sa, sock);
}
}
return send_sptps_tcppacket(to->nexthop->connection, buf, sizeof(buf));
}
- char buf[len * 4 / 3 + 5];
- b64encode(data, buf, len);
+ char buf[B64_SIZE(len)];
+ b64encode_tinc(data, buf, len);
/* If this is a handshake packet, use ANS_KEY instead of REQ_KEY, for two reasons:
- We don't want intermediate nodes to switch to UDP to relay these packets;
// This guarantees all nodes receive the broadcast packet, and
// usually distributes the sending of broadcast packets over all nodes.
case BMODE_MST:
- for list_each(connection_t, c, connection_list)
+ for list_each(connection_t, c, &connection_list)
if(c->edge && c->status.mst && c != from->nexthop->connection) {
send_packet(c->node, packet);
}
break;
}
- for splay_each(node_t, n, node_tree)
+ for splay_each(node_t, n, &node_tree)
if(n->status.reachable && n != myself && ((n->via == myself && n->nexthop == n) || n->via == n)) {
send_packet(n, packet);
}
bool hard = false;
static time_t last_hard_try = 0;
- for splay_each(node_t, n, node_tree) {
+ for splay_each(node_t, n, &node_tree) {
if(!n->status.reachable || n == myself) {
continue;
}
bool soft = false;
- for splay_each(edge_t, e, n->edge_tree) {
+ for splay_each(edge_t, e, &n->edge_tree) {
if(!e->reverse) {
continue;
}