Ticket #10398: 00-ipv6addrlogger

File 00-ipv6addrlogger, 1.3 KB (added by pb@…, 4 years ago)

hotplug extension for dhcp6c to log IPv6 addresses of configured interfaces

Line 
1#!/bin/sh
2
3. /etc/functions.sh
4include /lib/network
5
6config_load dhcp6c
7
8get_ifname() {                                                                                                               
9        local interface=$1                                                                                                   
10        local ifname                                                                                                         
11        scan_interfaces                                                                                                     
12        config_get ifname "$interface" ifname                                                                               
13        printf '%s\n' "$ifname"                                                                                             
14        return 0                                                                                                             
15} 
16
17dhcp6c_log_interface() {
18        local cfg=$1
19       
20        config_get_bool enabled "$cfg" enabled 0
21        [ $enabled -ne 0 ] || return 0
22       
23        local ifname="$(get_ifname $cfg)"
24        [ -z "$ifname" ] && return 0
25       
26        local ipv6addr="$(ifconfig $ifname | grep "inet6 addr:" | grep -v "addr: fe80" | awk '{ print $3 }' | tr '\n' ' ')"
27        if [ -n "$ipv6addr" ]; then
28                logger -t dhcp6c-hotplug "interface $ifname has $ipv6addr"
29        fi
30}
31
32config_foreach dhcp6c_log_interface interface