Changeset 25480


Ignore:
Timestamp:
2011-02-12T18:58:12+01:00 (7 years ago)
Author:
jow
Message:

[backfire] merge r21495, r25478 and r25479

Location:
branches/backfire/package/base-files
Files:
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/base-files/Makefile

    r25455 r25480  
    1111 
    1212PKG_NAME:=base-files 
    13 PKG_RELEASE:=43.11 
     13PKG_RELEASE:=43.12 
    1414 
    1515PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ 
  • branches/backfire/package/base-files/files/etc/config/system

    r20518 r25480  
    44 
    55config rdate 
    6         list server ac-ntp0.net.cmu.edu 
    7         list server ptbtime1.ptb.de 
    8         list server ac-ntp1.net.cmu.edu 
    9         list server ntp.xs4all.nl 
    10         list server ptbtime2.ptb.de 
    11         list server cudns.cit.cornell.edu 
    12         list server ptbtime3.ptb.de 
     6        option interface        wan 
  • branches/backfire/package/base-files/files/etc/config/timeserver

    r21495 r25480  
    11config timeserver 
    2         option hostname ac-ntp0.net.cmu.edu 
     2        option hostname ptbtime1.ptb.de 
    33#       option interface        wan 
    44 
    55config timeserver 
    6         option hostname ptbtime1.ptb.de 
    7  
    8 config timeserver 
    9         option hostname ac-ntp1.net.cmu.edu 
    10  
    11 config timeserver 
    12         option hostname tick.greyware.com 
     6        option hostname time-a.nist.gov 
    137 
    148config timeserver 
     
    1913 
    2014config timeserver 
    21         option hostname cudns.cit.cornell.edu 
    22  
    23 config timeserver 
    24         option hostname ptbtime3.ptb.de 
     15        option hostname time-b.nist.gov 
  • branches/backfire/package/base-files/files/etc/hotplug.d/iface/40-rdate

    r20518 r25480  
    1 uci_get_one() 
     1IFACE_GLOBAL=$(uci_get "system.@rdate[0].interface") 
     2SERVERS= 
     3MAX=0 
     4SYNCED= 
     5 
     6do_rdate() 
    27{ 
    3         for var in "$@"; do 
    4                 uci -P /var/state get "$var" 2>/dev/null && break 
    5         done 
     8        local server="$1" 
     9 
     10        rdate -s "$server" >/dev/null 2>/dev/null && { 
     11                logger -t rdate "Synced with $server" 
     12                SYNCED="$server" 
     13        } || { 
     14                logger -t rdate "Failed to sync with $server" 
     15        } 
    616} 
    717 
    8 rand() 
     18add_server() 
    919{ 
    10         random=$(awk 'BEGIN { srand(); print int(rand() * 10 + 1); }') 
     20        local section="$1" 
     21 
     22        local server 
     23        config_get server "$section" hostname 
     24        [ -z "$server" ] && return 
     25 
     26        local iface 
     27        config_get iface "$section" interface 
     28        [ -z "$iface" ] && iface=$IFACE_GLOBAL 
     29        [ -n "$iface" ] && { 
     30                [ "$iface" = "$INTERFACE" ] || return 
     31        } 
     32 
     33        SERVERS="${SERVERS} $server"; : $((MAX++)) 
    1134} 
    1235 
    13 sync_rdate() 
     36sync_time() 
    1437{ 
    15         local servers=$(uci_get_one "network.$INTERFACE.lease_timesrv" \ 
    16                 "system.@rdate[0].server") 
     38        local server 
     39        server=$(uci_get_state "network.$INTERFACE.lease_timesrv") 
     40        [ -n "$server" ] && do_rdate "$server" 
     41        [ -n "$SYNCED" ] && return 
    1742 
    18         if [ -n "$servers" ]; then 
    19                 match=0 
    20                 tries=3 
    21                 rand 
     43        config_load timeserver 
     44        config_foreach add_server timeserver 
    2245 
    23                 while [ $match = 0 ] && [ $tries != 0 ]; do 
    24                         for server in $servers; do 
    25                                 if [ $((--random)) = 0 ]; then 
    26                                         rdate -s $server >/dev/null 2>/dev/null && { 
    27                                                 logger -t rdate "Synced with $server" 
    28                                                 match=1 
    29                                         } || { 
    30                                                 logger -t rdate "Failed to sync with $server" 
    31                                                 let tries="$tries - 1" 
    32                                                 rand 
    33                                         } 
     46        local servers 
     47        while [ $MAX -gt 0 ] && [ -z "$SYNCED" ]; do 
     48                unset servers; random=$(awk "BEGIN { srand(); print int(rand() * $MAX + 1); }") 
     49                for server in $SERVERS; do 
     50                        [ $((--random)) -eq 0 ] && { do_rdate "$server"; continue; } 
     51                        servers="${servers} $server" 
     52                done 
     53                SERVERS="${servers}"; : $((MAX--)) 
     54        done 
    3455 
    35                                         break 
    36                                 fi 
    37                         done 
    38                 done 
    39         else 
    40                 logger -t rdate "No usable time server found" 
    41         fi 
     56        [ -z "$SYNCED" ] && logger -t rdate "No usable time server for $INTERFACE found" 
    4257} 
    4358 
    44 case "$ACTION" in 
    45         ifup) route -n | grep -q ^0.0.0.0 && sync_rdate;; 
     59case "${ACTION:-ifup}" in 
     60        ifup) 
     61                sync_time 
     62        ;; 
    4663esac 
Note: See TracChangeset for help on using the changeset viewer.