projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doc: there is, not their is
[tinc]
/
src
/
protocol_misc.c
diff --git
a/src/protocol_misc.c
b/src/protocol_misc.c
index
6e24274
..
05a4ada
100644
(file)
--- a/
src/protocol_misc.c
+++ b/
src/protocol_misc.c
@@
-30,6
+30,10
@@
#include "utils.h"
#include "xalloc.h"
#include "utils.h"
#include "xalloc.h"
+#ifndef MIN
+#define MIN(x, y) (((x)<(y))?(x):(y))
+#endif
+
int maxoutbufsize = 0;
int mtu_info_interval = 5;
int udp_info_interval = 5;
int maxoutbufsize = 0;
int mtu_info_interval = 5;
int udp_info_interval = 5;
@@
-131,7
+135,7
@@
bool send_tcppacket(connection_t *c, const vpn_packet_t *packet) {
if(2.0 * c->outbuf.len / (float)maxoutbufsize - 1 > (float)rand()/(float)RAND_MAX)
return true;
if(2.0 * c->outbuf.len / (float)maxoutbufsize - 1 > (float)rand()/(float)RAND_MAX)
return true;
- if(!send_request(c, "%d %
h
d", PACKET, packet->len))
+ if(!send_request(c, "%d %d", PACKET, packet->len))
return false;
return send_meta(c, (char *)DATA(packet), packet->len);
return false;
return send_meta(c, (char *)DATA(packet), packet->len);
@@
-160,7
+164,7
@@
bool send_sptps_tcppacket(connection_t *c, const char* packet, int len) {
if(2.0 * c->outbuf.len / (float)maxoutbufsize - 1 > (float)rand()/(float)RAND_MAX)
return true;
if(2.0 * c->outbuf.len / (float)maxoutbufsize - 1 > (float)rand()/(float)RAND_MAX)
return true;
- if(!send_request(c, "%d %
h
d", SPTPS_PACKET, len))
+ if(!send_request(c, "%d %d", SPTPS_PACKET, len))
return false;
send_meta_raw(c, packet, len);
return false;
send_meta_raw(c, packet, len);
@@
-190,6
+194,11
@@
bool send_udp_info(node_t *from, node_t *to) {
farther than the static relay. */
to = (to->via == myself) ? to->nexthop : to->via;
farther than the static relay. */
to = (to->via == myself) ? to->nexthop : to->via;
+ if (to == NULL) {
+ logger(DEBUG_ALWAYS, LOG_ERR, "Something went wrong when selecting relay - possible fake UDP_INFO");
+ return false;
+ }
+
/* Skip cases where sending UDP info messages doesn't make sense.
This is done here in order to avoid repeating the same logic in multiple callsites. */
/* Skip cases where sending UDP info messages doesn't make sense.
This is done here in order to avoid repeating the same logic in multiple callsites. */