Subversion Repositories configs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
203 - 1
#!/bin/sh
2
# This is a NetworkManager dispatcher script for chronyd to update
3
# its NTP sources passed from DHCP options. Note that this script is
4
# specific to NetworkManager-dispatcher due to use of the
5
# DHCP4_NTP_SERVERS environment variable.
6
 
7
export LC_ALL=C
8
 
9
interface=$1
10
action=$2
11
 
12
helper=/usr/libexec/chrony-helper
13
default_server_options=iburst
14
server_dir=/run/chrony-helper
15
 
16
dhcp_server_tmpfile=$server_dir/tmp-nm-dhcp.$interface
17
dhcp_server_file=$server_dir/nm-dhcp.$interface
18
# DHCP4_NTP_SERVERS is passed from DHCP options by NetworkManager.
19
nm_dhcp_servers=$DHCP4_NTP_SERVERS
20
 
21
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
22
[ -f /etc/sysconfig/network-scripts/ifcfg-"${interface}" ] && \
23
    . /etc/sysconfig/network-scripts/ifcfg-"${interface}"
24
 
25
add_servers_from_dhcp() {
26
    rm -f "$dhcp_server_file"
27
 
28
    # Remove servers saved by the dhclient script before it detected NM.
29
    rm -f "/var/lib/dhclient/chrony.servers.$interface"
30
 
31
    # Don't add NTP servers if PEERNTP=no specified; return early.
32
    [ "$PEERNTP" = "no" ] && return
33
 
34
    # Create the directory with correct SELinux context.
35
    $helper create-helper-directory > /dev/null 2>&1
36
 
37
    for server in $nm_dhcp_servers; do
38
        echo "$server ${NTPSERVERARGS:-$default_server_options}" >> "$dhcp_server_tmpfile"
39
    done
40
    [ -e "$dhcp_server_tmpfile" ] && mv "$dhcp_server_tmpfile" "$dhcp_server_file"
41
 
42
    $helper update-daemon > /dev/null 2>&1 || :
43
}
44
 
45
clear_servers_from_dhcp() {
46
    if [ -f "$dhcp_server_file" ]; then
47
        rm -f "$dhcp_server_file"
48
        $helper update-daemon > /dev/null 2>&1 || :
49
    fi
50
}
51
 
52
if [ "$action" = "up" ] || [ "$action" = "dhcp4-change" ]; then
53
    add_servers_from_dhcp
54
elif [ "$action" = "down" ]; then
55
    clear_servers_from_dhcp
56
fi
57
 
58
exit 0