tools: Use seqpacket instead of dgram

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2016-07-22 20:30:34 +02:00
parent d23fe2901d
commit 2d8170c259
1 changed files with 16 additions and 0 deletions

View File

@ -129,4 +129,20 @@ struct wgdevice {
};
};
/* These are simply for convenience in iterating. It allows you to write something like:
*
* for_each_wgpeer(device, peer, i) {
* for_each_wgipmask(peer, ipmask, j) {
* do_something_with_ipmask(ipmask);
* }
* }
*/
#define for_each_wgpeer(__dev, __peer, __i) for ((__i) = 0, (__peer) = (typeof(__peer))((uint8_t *)(__dev) + sizeof(struct wgdevice)); \
(__i) < (__dev)->num_peers; \
++(__i), (__peer) = (typeof(__peer))((uint8_t *)(__peer) + sizeof(struct wgpeer) + (sizeof(struct wgipmask) * (__peer)->num_ipmasks)))
#define for_each_wgipmask(__peer, __ipmask, __i) for ((__i) = 0, (__ipmask) = (typeof(__ipmask))((uint8_t *)(__peer) + sizeof(struct wgpeer)); \
(__i) < (__peer)->num_ipmasks; \
++(__i), (__ipmask) = (typeof(__ipmask))((uint8_t *)(__ipmask) + sizeof(struct wgipmask)))
#endif