[Bug 2017840] Re: ifupdown resolved script has typo
CH
2017840 at bugs.launchpad.net
Tue May 2 01:37:37 UTC 2023
Whoops, found another bug:
```
# ifup enp2s0
/etc/network/if-up.d/resolved: 1: /run/network/ifupdown-inet-enp2s0: DNS=1.1.1.1: not found
/etc/network/if-up.d/resolved: 2: /run/network/ifupdown-inet-enp2s0: DOMAINS=example.org: not found
Failed to parse DNS server address: DNS
Failed to set DNS configuration: Invalid argument
# cat /run/network/ifupdown-inet-enp2s0
"DNS"="1.1.1.1"
"DOMAINS"="example.org"
```
And that comes from lines 47-51 of /etc/network/if-up.d/resolved:
```
if [ -n "$NEW_DNS" ]; then
cat <<EOF >"$mystatedir/ifupdown-${ADDRFAM}-$interface"
"$DNS"="$NEW_DNS"
EOF
if [ -n "$NEW_DOMAINS" ]; then
cat <<EOF >>"$mystatedir/ifupdown-${ADDRFAM}-$interface"
"$DOMAINS"="$NEW_DOMAINS"
EOF
```
Basically, the double-quotes around "$DNS" and "$DOMAINS" shouldn't be there, because it's a here-doc.
But this reveals another bug: the variable $DOMAINS is used to hold
either "DOMAINS" or "DOMAINS6" in lines 41 or 44, but the actual search
domains in line 95.
Has this code ever worked?
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/2017840
Title:
ifupdown resolved script has typo
Status in systemd package in Ubuntu:
New
Bug description:
This error happens when you try to run ifup or ifdown:
```
# ifdown enp3s0
/etc/network/if-down.d/resolved: 12: mystatedir: not found
# ifup enp3s0
/etc/network/if-up.d/resolved: 12: mystatedir: not found
```
Here's the first 12 lines of those scripts:
```
# head -n 12 /etc/network/if-up.d/resolved
#!/bin/sh
#
# Script fragment to make ifupdown supply DNS infromation to resolved
#
case "$ADDRFAM" in
inet|inet6) : ;;
*) exit 0 ;;
esac
if systemctl is-enabled systemd-resolved > /dev/null 2>&1; then
mystatedir statedir ifindex interface
```
I'm thinking that the word `local` used to appear before `mystatedir`
on line 12, but that was when it was a function. When it was
converted back from being a function, the 'local' keyword was removed,
but the variables remained.
Either make it into a function again, or delete line 12.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2017840/+subscriptions
More information about the foundations-bugs
mailing list