30 lines
		
	
	
		
			653 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			653 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| uci -q get dhcp.odhcpd && exit 0
 | |
| touch /etc/config/dhcp
 | |
| 
 | |
| . /usr/share/libubox/jshn.sh
 | |
| 
 | |
| json_load "$(cat /etc/board.json)"
 | |
| json_select network
 | |
| json_select lan
 | |
| json_get_vars protocol
 | |
| json_select ..
 | |
| json_select ..
 | |
| 
 | |
| case "$protocol" in
 | |
| # only enable server mode on statically addressed lan ports
 | |
| "static") [ -e /proc/sys/net/ipv6 ] && MODE=server || MODE=disabled ;;
 | |
| *) MODE=disabled ;;
 | |
| esac
 | |
| 
 | |
| uci batch <<EOF
 | |
| set dhcp.odhcpd=odhcpd
 | |
| set dhcp.odhcpd.maindhcp=0
 | |
| set dhcp.odhcpd.leasefile=/tmp/hosts/odhcpd
 | |
| set dhcp.odhcpd.leasetrigger=/usr/sbin/odhcpd-update
 | |
| set dhcp.odhcpd.loglevel=4
 | |
| set dhcp.lan.dhcpv6=$MODE
 | |
| set dhcp.lan.ra=$MODE
 | |
| commit dhcp
 | |
| EOF
 |