# Copyright (c) 2015-2019, Regents of the University of California,
#                          Arizona Board of Regents,
#                          Colorado State University,
#                          University Pierre & Marie Curie, Sorbonne University,
#                          Washington University in St. Louis,
#                          Beijing Institute of Technology,
#                          The University of Memphis.
#
# This file is part of ndn-tools (Named Data Networking Essential Tools).
# See AUTHORS.md for complete list of ndn-tools authors and contributors.
#
# ndn-tools is free software: you can redistribute it and/or modify it under the terms
# of the GNU General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# ndn-tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# ndn-tools, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.

[Unit]
Description=NDN Ping Server
Documentation=man:ndnpingserver(1)
BindsTo=nfd.service
After=nfd.service

[Service]
Environment=HOME=%S/ndn/ndnping
EnvironmentFile=-@SYSCONFDIR@/default/ndnping
ExecStart=@BINDIR@/ndnpingserver ${PREFIX} $FLAGS
Restart=on-failure
RestartPreventExitStatus=2
User=ndn

CapabilityBoundingSet=
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
PrivateDevices=yes
PrivateNetwork=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectHome=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
# systemd older than v232 doesn't support a value of "strict" for ProtectSystem,
# so it will ignore that line and use ProtectSystem=full; with newer systemd,
# the latter assignment is recognized and takes precedence, resulting in an
# effective setting of ProtectSystem=strict
ProtectSystem=full
ProtectSystem=strict
RestrictAddressFamilies=AF_UNIX
RestrictNamespaces=yes
RestrictRealtime=yes
StateDirectory=ndn/ndnping
SystemCallArchitectures=native
SystemCallErrorNumber=EPERM
SystemCallFilter=~@aio @chown @clock @cpu-emulation @debug @keyring @module @mount @obsolete @privileged @raw-io @reboot @resources @setuid @swap

[Install]
WantedBy=multi-user.target
WantedBy=nfd.service
