Adrien Gallouët
4030b4370b
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-02 15:56:18 +00:00
Adrien Gallouët
72019786eb
Update path->window directly
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-02 09:32:33 +00:00
Adrien Gallouët
b732cb1b69
Skip down paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-02 08:27:41 +00:00
Adrien Gallouët
00c30c4fdf
Remove mud->send_timeout
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 15:04:17 +00:00
Adrien Gallouët
1d4b06abda
Boost boost
2018-12-01 15:01:41 +00:00
Adrien Gallouët
d74228e4a9
Be more aggressive about stats
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:22:49 +00:00
Adrien Gallouët
be5020cbae
Rename mud_value to mud_stat
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:20:17 +00:00
Adrien Gallouët
6494b95700
Add a boost factor to estimate send.ratemax
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:17:39 +00:00
Adrien Gallouët
ff0c10b66c
Send dt directly instead of sending lat/latmin
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:11:43 +00:00
Adrien Gallouët
79688de09e
Use lowbw scheduler and clean old unused stuff
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-29 22:21:07 +00:00
Adrien Gallouët
b5289a8472
Re-estimate latmin when rate is low
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-09 17:57:11 +00:00
Adrien Gallouët
ff55d6a173
New scheduler and cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-08 17:40:38 +00:00
Adrien Gallouët
ccaac70a04
Simplify rate as MUD_STAT_TIMEOUT is const
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-05 11:14:43 +00:00
Adrien Gallouët
7f5c063ffb
Allow bad use of mud_get_fd()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-10-21 08:37:53 +00:00
Adrien Gallouët
1e7e8722ee
Compute map directly
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-10-18 08:15:31 +00:00
Adrien Gallouët
2dd31a5f96
Trust compilers and cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-10-09 16:55:42 +00:00
Adrien Gallouët
5b9b3d5709
Remove duplicated checks
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-08-16 12:58:46 +00:00
Adrien Gallouët
22e065e5cb
Add mud_sync()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-06-15 10:05:42 +00:00
Adrien Gallouët
03be90b606
Update mud.h
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-06-05 13:56:15 +00:00
Adrien Gallouët
6ebda9368c
Add mud_get_sync_elapsed_msec()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-06-03 18:00:17 +00:00
Adrien Gallouët
964672adb5
Be nice with old good path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 19:34:52 +00:00
Adrien Gallouët
1988ee1d78
Rework internal proto
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 12:54:22 +00:00
Adrien Gallouët
3668a2f9af
Don't send packets to DOWN paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 12:50:31 +00:00
Adrien Gallouët
db7f48890a
Fix mud_update_map()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 12:49:53 +00:00
Adrien Gallouët
c8d949733a
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-27 15:29:42 +00:00
Adrien Gallouët
81afe325f6
Update ratemax softly
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-26 20:20:28 +00:00
Adrien Gallouët
04fc9b2894
Force update when creating a new path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 20:58:18 +00:00
Adrien Gallouët
d896f9ff3c
Don't touch a path if we don't have to
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 20:54:33 +00:00
Adrien Gallouët
c8b07c6edb
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 20:52:39 +00:00
Adrien Gallouët
9f38b7b6e0
Compute a pseudo ratevar to help bw probing
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 09:10:01 +00:00
Adrien Gallouët
ba9bef6268
Add a new rate based scheduler
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-23 20:52:31 +00:00
Adrien Gallouët
b2e4bc1b8f
Compute latency-smoothed maximum rate
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-21 12:25:52 +00:00
Adrien Gallouët
a7044db87c
Compute rate
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-18 16:35:27 +00:00
Adrien Gallouët
8e2b35525c
Remove MUD_EPOCH and compute durations modulo 2^48
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-18 09:54:52 +00:00
Adrien Gallouët
875533a65f
Recover lost connection slightly faster
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-07 16:43:46 +00:00
Adrien Gallouët
1f25f12e4a
Compute rttvar for the next voip scheduler
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-06 16:46:09 +00:00
Adrien Gallouët
7fde67f3d3
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-06 10:11:00 +00:00
Adrien Gallouët
2f304c1afc
Set state to MUD_UP by default
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-05 15:52:29 +00:00
Adrien Gallouët
e0d7494a71
Don't inline
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-05 09:07:28 +00:00
Adrien Gallouët
1e9bb89764
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-04 08:58:10 +00:00
Adrien Gallouët
e7851fa29d
Compute RTT for each internal packet
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-04 08:52:01 +00:00
Adrien Gallouët
0c11ce5785
Add number of packets per path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-03 09:02:02 +00:00
Adrien Gallouët
6d5738b931
Don't try to send something without path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-02 08:50:42 +00:00
Adrien Gallouët
dcfaca04a5
Limit number of paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-02 08:44:59 +00:00
Adrien Gallouët
c63c94d7c8
Simplify MTU setup and allow big packets
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-26 13:03:27 +00:00
Adrien Gallouët
09acdee3e1
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-25 14:48:59 +00:00
Adrien Gallouët
c2eb3e4095
Refuse truncated packets
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-25 14:22:52 +00:00
Adrien Gallouët
54bac4fcf6
Don't produce/reply to bad pubkeys
...
AFAIK, this should be useless as libsodium use constant-time code
But small order are rejected and so we don't want to produce one.
This commit does not improve security.
2018-03-19 22:28:03 +00:00
Adrien Gallouët
9a626f2889
Reset mtu in all paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-17 13:51:54 +00:00
Adrien Gallouët
c6fbe52fbd
Use binded port in local_addr
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-16 21:07:25 +00:00
Adrien Gallouët
a505e22844
Try to compute the size of ctrl
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-16 20:05:05 +00:00
Adrien Gallouët
40be483e2b
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-16 08:12:33 +00:00
Adrien Gallouët
fd48ff08b9
Use LSB to mark mud packets
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-15 21:14:28 +00:00
Adrien Gallouët
0c037c5831
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-15 20:42:51 +00:00
Adrien Gallouët
8b9fc86d12
Fix stats on links with latency > MUD_STAT_TIMEOUT
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-15 08:12:41 +00:00
Adrien Gallouët
66b8a7323d
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-14 22:47:33 +00:00
Adrien Gallouët
865c6aa640
Compute MTU only with usable paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-14 22:36:58 +00:00
Adrien Gallouët
2c5eb574f9
Add a specific timer for mtu probing
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-14 18:47:43 +00:00
Adrien Gallouët
ef319d2153
Add mud_set_keyx_timeout()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-14 06:54:38 +00:00
Adrien Gallouët
467310bb4f
Create ephemeral key at startup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-14 06:49:44 +00:00
Adrien Gallouët
b787bad536
Store addr on errors
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-14 06:40:37 +00:00
Adrien Gallouët
93d7d36b68
Hardening and fixes
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-13 18:32:14 +00:00
Adrien Gallouët
87d9806a88
Clear errno if no path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-12 14:59:59 +00:00
Adrien Gallouët
ae3f4ed9ac
Count and store last time of bad mud_decrypt()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-12 10:28:05 +00:00
Adrien Gallouët
b53248b6da
Send ip and port to peers
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-10 15:31:41 +00:00
Adrien Gallouët
bb6b87bb54
Hardening
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-09 22:14:10 +00:00
Adrien Gallouët
cd4ad61d1c
Always kiss your friends <3 + add it in the nonce
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-06 16:00:12 +00:00
Adrien Gallouët
b809bf0785
First draft of path mtu disc without icmp
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-04 15:14:18 +00:00
Adrien Gallouët
c583e207c8
Return ENOTSUP if aes256gcm is not supported
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-03-04 14:58:52 +00:00
Adrien Gallouët
5aeb0a3cb2
Ask for a gnu99 compiler
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-27 09:28:16 +00:00
Adrien Gallouët
5a62bd7faa
Add mud_get_paths() to export all paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-26 23:57:39 +00:00
Adrien Gallouët
81b279b060
Add up,backup and down states
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-24 15:26:38 +00:00
Adrien Gallouët
ac1ba977f4
Setup cmsg directly in mud_send_path()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-24 14:54:44 +00:00
Adrien Gallouët
7303dea98c
Let's decrypt everything
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-20 19:30:16 +00:00
Adrien Gallouët
1aded8ec29
Unset skip flag when adding a knwon path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-17 20:21:45 +00:00
Adrien Gallouët
53f8d31f77
Use size_t for mtu
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-16 15:57:03 +00:00
Adrien Gallouët
7013d8e323
Cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-15 14:18:48 +00:00
Adrien Gallouët
6e5e2dea64
Autoselect ipv4/ipv6
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-15 14:10:28 +00:00
Adrien Gallouët
219e17edb6
Ask for sockaddr directly
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-14 21:30:17 +00:00
Adrien Gallouët
582eb29617
Use unsigned long in mud_set_x()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-11 10:14:58 +00:00
Adrien Gallouët
d8ede46d8a
Avoid useless copies and protect keys
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-02-06 18:10:39 +00:00
Adrien Gallouët
d4546ccae0
Add mud_del_path()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-01-29 16:17:06 +00:00
Adrien Gallouët
61e7a23a11
Rework mud->peer and remove mud_ipaddr
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-01-29 16:17:06 +00:00
Adrien Gallouët
7c90d54b91
Add mud_add_path()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-01-24 16:27:41 +00:00
Adrien Gallouët
a6555c8ab1
Format code
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-01-24 10:14:08 +00:00
Adrien Gallouët
8d861c9682
Allow client to add the first path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-01-24 10:07:59 +00:00
Adrien Gallouët
368ab1b710
Add some checks in mud_set_path()
...
They are useless in theory but as we do not define
the macros CMSG_FIRSTHDR and CMSG_NXTHDR..
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-12-01 11:02:33 +00:00
Adrien Gallouët
13cf44c813
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-11-26 13:17:15 +00:00
Adrien Gallouët
91cf697fb4
Set MSG_CONFIRM
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-11-16 09:45:17 +00:00
Adrien Gallouët
153108aeac
Cleanup .travis.yml
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-11-16 07:51:06 +00:00
Adrien Gallouët
2c82c01233
Don't set mtu in mud_create()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-11-15 22:44:03 +00:00
Adrien Gallouët
21957cc0cc
Add mud_set_aes()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-11-15 22:41:13 +00:00
Adrien Gallouët
63b0b4261c
Check for MUD_DFRAG to disable fragment flag
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-11-15 22:24:29 +00:00
Adrien Gallouët
522ca2804d
Add mud_new_key()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2017-11-15 22:04:44 +00:00
Adrien Gallouët
78b76437e5
Force _GNU_SOURCE on Linux
2017-03-07 10:41:29 +00:00
Adrien Gallouët
dfcc08feed
Fix keyx regressions and cleanup
2017-01-29 12:01:27 +00:00
Adrien Gallouët
49662179e9
Refuse to create a new mud with a bad clock
2017-01-27 19:23:26 +00:00
Adrien Gallouët
996126cc40
Use MUD_EPOCH instead of 1970
2017-01-27 19:05:21 +00:00
Adrien Gallouët
f67eae0a7f
Restore old behaviour
2017-01-20 09:52:28 +00:00
Adrien Gallouët
8dc7a2d4b3
Check for send_time too before dup
2017-01-19 14:53:56 +00:00