aboutsummaryrefslogtreecommitdiffstats
path: root/netlink.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-07-16radix-trie: inline find_node() into ipp_addpool()Thomas Gschwantner1-16/+8
The way find_node() was written to suit ipp_addpool() means it's not really generic and rather confusing, so we inline it instead.
2019-06-14Use epoll() instead of poll()Thomas Gschwantner4-123/+143
This enables us to later use the timeout parameter of epoll_wait() to timely remove expired leases.
2019-06-14Remove CLOCK_MONOTONIC commentThomas Gschwantner1-4/+0
The CLOCK_MONOTONIC change was reverted: https://git.kernel.org/torvalds/c/a3ed0e43
2019-06-14Fix use-after-free and memory leak in ipp_free()Thomas Gschwantner1-14/+11
2019-06-14Add missing #include in netlink.hThomas Gschwantner1-0/+1
2019-06-13Don't overwrite peer changes by othersThomas Gschwantner1-46/+28
2019-06-12Implement basic lease managementThomas Gschwantner10-162/+536
2019-06-02radix-trie: implement ipp_addrnd_* and relatedThomas Gschwantner2-70/+328
2019-06-02Add BUG() and BUG_ON()Thomas Gschwantner2-1/+4
2019-06-02radix-trie: allow both ipv4 and ipv6 debug outputThomas Gschwantner2-12/+30
2019-06-02radix-trie: fix fls/fls64Thomas Gschwantner1-6/+6
2019-06-02radix-trie: remove bits arg from radix_insert_v4/6Thomas Gschwantner2-6/+6
2019-06-02Use hashtable to match ll-ip with pubkeyThomas Gschwantner2-31/+661
The link-local IP is always /128, so using a hashtable is more appropriate here. We only use the lower 64 bits as key, since the first 64 bits of link-local addresses are always the same.
2019-05-26Sleep lessLinus Nordberg1-3/+5
Only sleep after failed try_connect(), because it might fail quickly. The read should be blocking for 1s (SO_RCVTIMEO).
2019-05-26Use blocking I/O in clientLinus Nordberg1-119/+39
Avoiding the unnecessary complexity of non-blocking I/O.
2019-05-26No need to clear bits in pollfd reventsLinus Nordberg2-5/+0
POSIX says: "In each pollfd structure, poll() shall clear the revents member, except that where the application requested a report on a condition by setting one of the bits of events listed above, poll() shall set the corresponding bit in revents if the requested condition is true."
2019-05-26Fix backwards logic in debug loggingLinus Nordberg1-2/+2
2019-05-26Implement client sending ip-request and configuring interfaceLinus Nordberg3-24/+521
2019-05-26Implement faked allocations, server sideLinus Nordberg3-104/+433
Reject clients not connecting from an IPv6 address. Reject clients not connecting from the correct port. Fake address allocation. Update allowed-ips with leases handed out. Send response messages. Extend protocol to include lease start and lease time, errno and errmsg. Move common code to common.[ch].
2019-02-25Specify scope id in addresses to ping6Linus Nordberg1-2/+2
Without scope id, ping6 on a Debian 9 fails with connect: Invalid argument
2019-02-25Accept multiple connections in one goThomas Gschwantner1-12/+28
2019-02-25Match incoming IP with pubkeyThomas Gschwantner2-11/+90
2019-02-25Implement a radix-trie for storing ip=pubkeyThomas Gschwantner3-1/+366
2019-02-13Move the google doc into the git repositoryDaniel Kahn Gillmor2-1/+103
2019-02-09Implement key=value parsingThomas Gschwantner4-46/+411
2019-01-27Fix licensing headersThomas Gschwantner5-13/+12
2019-01-26Implement basic validation and I/O multiplexingThomas Gschwantner3-25/+374