dhcp-script.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/sh
  2. [ -f "$USER_DHCPSCRIPT" ] && . "$USER_DHCPSCRIPT" "$@"
  3. . /usr/share/libubox/jshn.sh
  4. json_init
  5. json_add_array env
  6. hotplugobj=""
  7. oldIFS=$IFS
  8. IFS=$'\n'
  9. for var in $(env); do
  10. if [ "${var}" != "${var#DNSMASQ_}" ]; then
  11. json_add_string "" "${var%%=*}=${var#*=}"
  12. fi
  13. done
  14. IFS=$oldIFS
  15. case "$1" in
  16. add | del | old | arp-add | arp-del)
  17. json_add_string "" "MACADDR=$2"
  18. json_add_string "" "IPADDR=$3"
  19. ;;
  20. esac
  21. case "$1" in
  22. add)
  23. json_add_string "" "ACTION=add"
  24. json_add_string "" "HOSTNAME=$4"
  25. hotplugobj="dhcp"
  26. ;;
  27. del)
  28. json_add_string "" "ACTION=remove"
  29. json_add_string "" "HOSTNAME=$4"
  30. hotplugobj="dhcp"
  31. ;;
  32. old)
  33. json_add_string "" "ACTION=update"
  34. json_add_string "" "HOSTNAME=$4"
  35. hotplugobj="dhcp"
  36. ;;
  37. arp-add)
  38. json_add_string "" "ACTION=add"
  39. hotplugobj="neigh"
  40. ;;
  41. arp-del)
  42. json_add_string "" "ACTION=remove"
  43. hotplugobj="neigh"
  44. ;;
  45. tftp)
  46. json_add_string "" "ACTION=add"
  47. json_add_string "" "TFTP_SIZE=$2"
  48. json_add_string "" "TFTP_ADDR=$3"
  49. json_add_string "" "TFTP_PATH=$4"
  50. hotplugobj="tftp"
  51. ;;
  52. esac
  53. json_close_array env
  54. [ -n "$hotplugobj" ] && ubus call hotplug.${hotplugobj} call "$(json_dump)"