};
};
- keyToUnitName = replaceChars
+ keyToUnitName = replaceStrings
[ "/" "-" " " "+" "=" ]
[ "-" "\\x2d" "\\x20" "\\x2b" "\\x3d" ];
ProcSubset = "pid";
};
- generatePeerUnit = { interfaceName, interfaceCfg, peer }:
- let
- dynamicRefreshEnabled = peer.dynamicEndpointRefreshSeconds != 0;
- serviceName = peerUnitServiceName interfaceName peer.publicKey dynamicRefreshEnabled;
- in
- nameValuePair serviceName
- {
- serviceConfig =
- {
- # Overcomes failure to resolve the endpoint's host
- # (eg, when the resolver is not yet reachable).
- Restart = "on-failure";
- };
- };
-
generatePeersAnnouncingSocket = name: values:
nameValuePair "wireguard-${name}-peers-announcing"
{
systemd.services =
(mapAttrs' generatePeersAnnouncingUnit cfg.interfaces)
- // (listToAttrs (map generatePeerUnit all_peers))
// (listToAttrs (map generateEndpointsUpdaterUnit
(filter ({ peer, ... }: peer.endpointsUpdater.enable) all_peers)));
};