Ticket #10380: dhcp6c.diff

File dhcp6c.diff, 1.3 KB (added by pb@…, 6 years ago)

Diff to original file of /etc/init.d/dhcp6c

  • dhcp6c

    old new  
    2929 
    3030        case "$mac" in 
    3131                $pat:$pat:$pat:$pat:$pat:$pat:$pat:$pat:$pat:$pat) 
    32                         printf $(echo "$mac" | sed -e 's/^/\\x/; s/:/\\x/g') 
     32                        local duid="$mac" 
    3333                        logger -t dhcp6c "Using user provided DUID $mac" 
    3434                ;; 
    3535                $pat:$pat:$pat:$pat:$pat:$pat) 
    3636                        local oIFS="$IFS"; IFS=":"; set -- $mac; IFS="$oIFS" 
    37  
    38                         # low endian 
    39                         if [ "$(printf \\1 | hexdump -n1 -ve '8/2 "%04x"')" = "0001" ]; then 
    40                                 printf \\x0a\\x00 
    41  
    42                         # big endian 
    43                         else 
    44                                 printf \\x00\\x0a 
    45                         fi 
    46  
    47                         printf \\x00\\x03\\x00\\x06\\x$1\\x$2\\x$3\\x$4\\x$5\\x$6 
     37                        local duid="00:03:00:06:$1:$2:$3:$4:$5:$6" 
    4838                        logger -t dhcp6c "Using MAC address DUID 00:03:00:06:$1:$2:$3:$4:$5:$6" 
    4939                ;; 
    5040                *) 
    5141                        logger -t dhcp6c "Unable to derive DUID from interface '$client_device' and no valid user DUID given" 
    5242                ;; 
    5343        esac 
     44         
     45        if [ -n "$duid" ]; then 
     46                # low endian 
     47                if [ "$(printf \\1 | hexdump -n1 -ve '8/2 "%04x"' | awk '{ print $1 }')" = "0001" ]; then 
     48                        logger -t dhcp6c "low endian system" 
     49                        printf \\x0a\\x00 
     50                # big endian 
     51                else 
     52                        logger -t dhcp6c "big endian system" 
     53                        printf \\x00\\x0a 
     54                fi 
     55                printf $(echo "$duid" | sed -e 's/^/\\x/; s/:/\\x/g') 
     56        fi 
    5457} 
    5558 
    5659dhcp6c_write_interface() {