consistent ownership/permissions for /run/service-state/**
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
{
|
||||
liminix
|
||||
, dnsmasq
|
||||
, serviceFns
|
||||
, lib
|
||||
}:
|
||||
{
|
||||
user ? "dnsmasq"
|
||||
, group ? "dnsmasq"
|
||||
, group ? "system"
|
||||
, interface
|
||||
, upstreams ? []
|
||||
, ranges
|
||||
@@ -19,6 +20,7 @@ in longrun {
|
||||
inherit name;
|
||||
dependencies = [ interface ];
|
||||
run = ''
|
||||
. ${serviceFns}
|
||||
${dnsmasq}/bin/dnsmasq \
|
||||
--user=${user} \
|
||||
--domain=${domain} \
|
||||
|
@@ -5,6 +5,7 @@
|
||||
, ppp
|
||||
, pppoe
|
||||
, writeAshScript
|
||||
, serviceFns
|
||||
} :
|
||||
let
|
||||
inherit (liminix.services) longrun;
|
||||
@@ -17,16 +18,15 @@ interface: {
|
||||
let
|
||||
name = "${interface.device}.pppoe";
|
||||
ip-up = writeAshScript "ip-up" {} ''
|
||||
outputs=/run/service-state/${name}/
|
||||
mkdir -p $outputs
|
||||
(cd $outputs
|
||||
echo $1 > ifname
|
||||
echo $2 > tty
|
||||
echo $3 > speed
|
||||
echo $4 > address
|
||||
echo $5 > peer-address
|
||||
echo $DNS1 > ns1
|
||||
echo $DNS1 > ns2
|
||||
. ${serviceFns}
|
||||
(cd $(mkoutputs ${name}); umask 0027
|
||||
echo $1 > ifname
|
||||
echo $2 > tty
|
||||
echo $3 > speed
|
||||
echo $4 > address
|
||||
echo $5 > peer-address
|
||||
echo $DNS1 > ns1
|
||||
echo $DNS2 > ns2
|
||||
)
|
||||
echo >/proc/self/fd/10
|
||||
'';
|
||||
|
@@ -10,33 +10,33 @@ interface: { ... } @ args:
|
||||
let
|
||||
name = "${interface.device}.udhcp";
|
||||
script = writeShellScript "udhcp-notify" ''
|
||||
action=$1
|
||||
. ${serviceFns}
|
||||
action=$1
|
||||
|
||||
set_address() {
|
||||
ip address replace $ip/$mask dev $interface
|
||||
dir=/run/service-state/${name}/
|
||||
mkdir -p $dir
|
||||
for i in lease mask ip router siaddr dns serverid subnet opt53 interface ; do
|
||||
echo ''${!i} > $dir/$i
|
||||
done
|
||||
}
|
||||
case $action in
|
||||
deconfig)
|
||||
ip address flush $interface
|
||||
ip link set up dev $interface
|
||||
;;
|
||||
bound)
|
||||
# this doesn't actually replace, it adds a new address.
|
||||
set_address
|
||||
;;
|
||||
renew)
|
||||
set_address
|
||||
;;
|
||||
nak)
|
||||
echo "received NAK on $interface"
|
||||
;;
|
||||
esac
|
||||
'';
|
||||
set_address() {
|
||||
ip address replace $ip/$mask dev $interface
|
||||
(cd $(mkoutputs ${name}); umask 0027
|
||||
for i in lease mask ip router siaddr dns serverid subnet opt53 interface ; do
|
||||
echo ''${!i} > $i
|
||||
done)
|
||||
}
|
||||
case $action in
|
||||
deconfig)
|
||||
ip address flush $interface
|
||||
ip link set up dev $interface
|
||||
;;
|
||||
bound)
|
||||
# this doesn't actually replace, it adds a new address.
|
||||
set_address
|
||||
;;
|
||||
renew)
|
||||
set_address
|
||||
;;
|
||||
nak)
|
||||
echo "received NAK on $interface"
|
||||
;;
|
||||
esac
|
||||
'';
|
||||
in longrun {
|
||||
inherit name;
|
||||
run = "${busybox}/bin/udhcpc -f -i ${interface.device} -s ${script}";
|
||||
|
Reference in New Issue
Block a user