LCOV - code coverage report
Current view: top level - network/netdev - wireguard.h (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 0 1 0.0 %
Date: 2019-08-22 15:41:25 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : typedef struct Wireguard Wireguard;
       4             : 
       5             : #include <netinet/in.h>
       6             : #include <linux/wireguard.h>
       7             : 
       8             : #include "in-addr-util.h"
       9             : #include "netdev.h"
      10             : #include "socket-util.h"
      11             : 
      12             : typedef struct WireguardIPmask {
      13             :         uint16_t family;
      14             :         union in_addr_union ip;
      15             :         uint8_t cidr;
      16             : 
      17             :         LIST_FIELDS(struct WireguardIPmask, ipmasks);
      18             : } WireguardIPmask;
      19             : 
      20             : typedef struct WireguardPeer {
      21             :         Wireguard *wireguard;
      22             :         NetworkConfigSection *section;
      23             : 
      24             :         uint8_t public_key[WG_KEY_LEN];
      25             :         uint8_t preshared_key[WG_KEY_LEN];
      26             :         char *preshared_key_file;
      27             :         uint32_t flags;
      28             :         uint16_t persistent_keepalive_interval;
      29             : 
      30             :         union sockaddr_union endpoint;
      31             :         char *endpoint_host;
      32             :         char *endpoint_port;
      33             : 
      34             :         LIST_HEAD(WireguardIPmask, ipmasks);
      35             :         LIST_FIELDS(struct WireguardPeer, peers);
      36             : } WireguardPeer;
      37             : 
      38             : struct Wireguard {
      39             :         NetDev meta;
      40             :         unsigned last_peer_section;
      41             : 
      42             :         uint32_t flags;
      43             :         uint8_t private_key[WG_KEY_LEN];
      44             :         char *private_key_file;
      45             :         uint16_t port;
      46             :         uint32_t fwmark;
      47             : 
      48             :         Hashmap *peers_by_section;
      49             :         Set *peers_with_unresolved_endpoint;
      50             :         Set *peers_with_failed_endpoint;
      51             : 
      52             :         LIST_HEAD(WireguardPeer, peers);
      53             : 
      54             :         unsigned n_retries;
      55             :         sd_event_source *resolve_retry_event_source;
      56             : };
      57             : 
      58           0 : DEFINE_NETDEV_CAST(WIREGUARD, Wireguard);
      59             : extern const NetDevVTable wireguard_vtable;
      60             : 
      61             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_allowed_ips);
      62             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_endpoint);
      63             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_listen_port);
      64             : 
      65             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_public_key);
      66             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_private_key);
      67             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_private_key_file);
      68             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_preshared_key);
      69             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_preshared_key_file);
      70             : CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_keepalive);

Generated by: LCOV version 1.14