Moved dnsmasq, hostapd and odhcpd forward.
authornynex <nynex>
Fri, 14 Aug 2015 06:34:22 +0000 (06:34 +0000)
committernynex <nynex>
Fri, 14 Aug 2015 06:34:22 +0000 (06:34 +0000)
14 files changed:
trunk/package/network/ipv6/odhcp6c/Makefile
trunk/package/network/ipv6/odhcp6c/files/dhcpv6.script
trunk/package/network/ipv6/odhcp6c/files/dhcpv6.sh
trunk/package/network/services/dnsmasq/Makefile
trunk/package/network/services/dnsmasq/files/dhcp.conf
trunk/package/network/services/dnsmasq/files/dnsmasq.init
trunk/package/network/services/dnsmasq/patches/100-fix-dhcp-no-address-warning.patch
trunk/package/network/services/hostapd/files/hostapd.sh
trunk/package/network/services/hostapd/files/netifd.sh
trunk/package/network/services/hostapd/files/wpa_supplicant-full.config
trunk/package/network/services/hostapd/files/wpa_supplicant-mesh.config
trunk/package/network/services/hostapd/files/wpa_supplicant-mini.config
trunk/package/network/services/hostapd/files/wpa_supplicant-p2p.config
trunk/package/network/services/odhcpd/Makefile

index adcd36c49aa5e3ef717674bc232081f71f0a5e12..aa81e02dcab2f05965c37ca804d1070288952afa 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2012-2014 OpenWrt.org
+# Copyright (C) 2012-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,24 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=odhcp6c
-PKG_VERSION:=2014-11-28
+PKG_VERSION:=2015-07-29
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://github.com/sbyx/odhcp6c.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=518cdfc1dbf5c61859f6faaf678e0bbed82755a6
+PKG_SOURCE_VERSION:=dc186d6d2b0dd4ad23ca5fc69c00e81f796ff6d9
 PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
-ifneq ($(CONFIG_PACKAGE_odhcp6c_ext_prefix_class),0)
-  CMAKE_OPTIONS += -DEXT_PREFIX_CLASS=$(CONFIG_PACKAGE_odhcp6c_ext_prefix_class)
-endif
-
 ifneq ($(CONFIG_PACKAGE_odhcp6c_ext_cer_id),0)
   CMAKE_OPTIONS += -DEXT_CER_ID=$(CONFIG_PACKAGE_odhcp6c_ext_cer_id)
 endif
@@ -33,16 +29,11 @@ endif
 define Package/odhcp6c
   SECTION:=net
   CATEGORY:=Network
-  TITLE:=Embedded DHCPv6-client for libreCMC
+  TITLE:=Embedded DHCPv6-client for OpenWrt
   DEPENDS:=+kmod-ipv6
 endef
 
 define Package/odhcp6c/config
-  config PACKAGE_odhcp6c_ext_prefix_class
-    int "Prefix Class Extension ID (0 = disabled)"
-    depends on PACKAGE_odhcp6c
-    default 0
-
   config PACKAGE_odhcp6c_ext_cer_id
     int "CER-ID Extension ID (0 = disabled)"
     depends on PACKAGE_odhcp6c
index 1acad1994cf79421b86c1fefadc2d4fa10b9c319..677d35f4f92e82d6a7fe9ca01a35e071097baca8 100755 (executable)
@@ -5,6 +5,8 @@
 
 setup_interface () {
        local device="$1"
+       local prefsig=""
+       local addrsig=""
        proto_init_update "*" 1
 
        # Merge RA-DNS
@@ -20,16 +22,25 @@ setup_interface () {
                proto_add_dns_server "$dns"
        done
 
+       for radomain in $RA_DOMAINS; do
+               local duplicate=0
+               for domain in $DOMAINS; do
+                       [ "$radomain" = "$domain" ] && duplicate=1
+               done
+               [ "$duplicate" = 0 ] && DOMAINS="$DOMAINS $radomain"
+       done
+
        for domain in $DOMAINS; do
                proto_add_dns_search "$domain"
        done
 
        for prefix in $PREFIXES; do
                proto_add_ipv6_prefix "$prefix"
-                local entry="${prefix#*/}"
-                entry="${entry#*,}"
-                entry="${entry#*,}"
-                local valid="${entry%%,*}"
+               prefsig="$prefsig ${prefix%%,*}"
+               local entry="${prefix#*/}"
+               entry="${entry#*,}"
+               entry="${entry#*,}"
+               local valid="${entry%%,*}"
 
                if [ -z "$RA_ADDRESSES" -a -z "$RA_ROUTES" -a \
                                -z "$RA_DNS" -a "$FAKE_ROUTES" = 1 ]; then
@@ -60,14 +71,16 @@ setup_interface () {
                local valid="${entry%%,*}"
 
                proto_add_ipv6_address "$addr" "$mask" "$preferred" "$valid" 1
+               addrsig="$addrsig $addr/$mask"
 
-                if [ -z "$RA_ADDRESSES" -a -z "$RA_ROUTES" -a \
-                                -z "$RA_DNS" -a "$FAKE_ROUTES" = 1 ]; then
-                        RA_ROUTES="::/0,$SERVER,$valid,4096"
-                fi
+               if [ -z "$RA_ADDRESSES" -a -z "$RA_ROUTES" -a \
+                               -z "$RA_DNS" -a "$FAKE_ROUTES" = 1 ]; then
+                       RA_ROUTES="::/0,$SERVER,$valid,4096"
+               fi
        done
 
        for entry in $RA_ROUTES; do
+               local duplicate=$NOSOURCEFILTER
                local addr="${entry%%/*}"
                entry="${entry#*/}"
                local mask="${entry%%,*}"
@@ -78,10 +91,17 @@ setup_interface () {
                entry="${entry#*,}"
                local metric="${entry%%,*}"
 
-               if [ -z "$SOURCE_ROUTING" -o -z "$gw" ]; then
+               for xentry in $RA_ROUTES; do
+                       local xprefix="${xentry%%,*}"
+                       xentry="${xentry#*,}"
+                       local xgw="${xentry%%,*}"
+
+                       [ -n "$gw" -a -z "$xgw" -a "$addr/$mask" = "$xprefix" ] && duplicate=1
+               done
+
+               if [ -z "$gw" -o "$duplicate" = 1 ]; then
                        proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid"
                else
-                       proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid" "::/128"
                        for prefix in $PREFIXES $ADDRESSES; do
                                local paddr="${prefix%%,*}"
                                proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid" "$paddr"
@@ -111,15 +131,17 @@ setup_interface () {
                MAPRULE="$LW4O6"
        fi
 
-       [ -n "$ZONE" ] || ZONE=$(fw3 -q network $INTERFACE)
+       [ -n "$ZONE" ] || ZONE=$(fw3 -q network $INTERFACE 2>/dev/null)
 
        if [ "$IFACE_MAP" != 0 -a -n "$MAPTYPE" -a -n "$MAPRULE" ]; then
-               [ -z "$IFACE_MAP" -o "$IFACE_MAP" = 1 ] && IFACE_MAP=${INTERFACE}_map
+               [ -z "$IFACE_MAP" -o "$IFACE_MAP" = 1 ] && IFACE_MAP=${INTERFACE}_4
                json_init
                json_add_string name "$IFACE_MAP"
                json_add_string ifname "@$INTERFACE"
                json_add_string proto map
                json_add_string type "$MAPTYPE"
+               json_add_string _prefsig "$prefsig"
+               [ "$MAPTYPE" = lw4o6 ] && json_add_string _addrsig "$addrsig"
                json_add_string rule "$MAPRULE"
                json_add_string tunlink "$INTERFACE"
                [ -n "$ZONE_MAP" ] || ZONE_MAP=$ZONE
@@ -127,21 +149,41 @@ setup_interface () {
                [ -n "$IFACE_MAP_DELEGATE" ] && json_add_boolean delegate "$IFACE_MAP_DELEGATE"
                json_close_object
                ubus call network add_dynamic "$(json_dump)"
-       elif [ -n "$AFTR_IP" -a "$IFACE_DSLITE" != 0 -a -f /lib/netifd/proto/dslite.sh ]; then
-               [ -z "$IFACE_DSLITE" -o "$IFACE_DSLITE" = 1 ] && IFACE_DSLITE=${INTERFACE}_dslite
+       elif [ -n "$AFTR" -a "$IFACE_DSLITE" != 0 -a -f /lib/netifd/proto/dslite.sh ]; then
+               [ -z "$IFACE_DSLITE" -o "$IFACE_DSLITE" = 1 ] && IFACE_DSLITE=${INTERFACE}_4
                json_init
                json_add_string name "$IFACE_DSLITE"
                json_add_string ifname "@$INTERFACE"
                json_add_string proto "dslite"
-               json_add_string peeraddr "$AFTR_IP"
+               json_add_string peeraddr "$AFTR"
                json_add_string tunlink "$INTERFACE"
                [ -n "$ZONE_DSLITE" ] || ZONE_DSLITE=$ZONE
                [ -n "$ZONE_DSLITE" ] && json_add_string zone "$ZONE_DSLITE"
                [ -n "$IFACE_DSLITE_DELEGATE" ] && json_add_boolean delegate "$IFACE_DSLITE_DELEGATE"
                json_close_object
                ubus call network add_dynamic "$(json_dump)"
+       elif [ "$IFACE_464XLAT" != 0 -a -f /lib/netifd/proto/464xlat.sh ]; then
+               [ -z "$IFACE_464XLAT" -o "$IFACE_464XLAT" = 1 ] && IFACE_464XLAT=${INTERFACE}_4
+               json_init
+               json_add_string name "$IFACE_464XLAT"
+               json_add_string ifname "@$INTERFACE"
+               json_add_string proto "464xlat"
+               json_add_string tunlink "$INTERFACE"
+               json_add_string _addrsig "$addrsig"
+               [ -n "$ZONE_464XLAT" ] || ZONE_464XLAT=$ZONE
+               [ -n "$ZONE_464XLAT" ] && json_add_string zone "$ZONE_464XLAT"
+               [ -n "$IFACE_464XLAT_DELEGATE" ] && json_add_boolean delegate "$IFACE_464XLAT_DELEGATE"
+               json_close_object
+               ubus call network add_dynamic "$(json_dump)"
        fi
 
+       # Apply IPv6 / ND configuration
+       HOPLIMIT=$(cat /proc/sys/net/ipv6/conf/$device/hop_limit)
+       [ -n "$RA_HOPLIMIT" -a -n "$HOPLIMIT" ] && [ "$RA_HOPLIMIT" -gt "$HOPLIMIT" ] && echo "$RA_HOPLIMIT" > /proc/sys/net/ipv6/conf/$device/hop_limit
+       [ -n "$RA_MTU" ] && [ "$RA_MTU" -gt 0 ] && echo "$RA_MTU" > /proc/sys/net/ipv6/conf/$device/mtu
+       [ -n "$RA_REACHABLE" ] && [ "$RA_REACHABLE" -gt 0 ] && echo "$RA_REACHABLE" > /proc/sys/net/ipv6/neigh/$device/base_reachable_time_ms
+       [ -n "$RA_RETRANSMIT" ] && [ "$RA_RETRANSMIT" -gt 0 ] && echo "$RA_RETRANSMIT" > /proc/sys/net/ipv6/neigh/$device/retrans_time_ms
+
        # TODO: $SNTP_IP $SIP_IP $SNTP_FQDN $SIP_DOMAIN
 }
 
index 5914abe0bb61632b528336b77b0c0899b72301af..4a453fdc4d94d9298067a986b0e4c6054b6c0a60 100755 (executable)
@@ -19,22 +19,24 @@ proto_dhcpv6_init_config() {
        proto_config_add_string zone_dslite
        proto_config_add_string iface_map
        proto_config_add_string zone_map
+       proto_config_add_string iface_464xlat
+       proto_config_add_string zone_464xlat
        proto_config_add_string zone
        proto_config_add_string 'ifaceid:ip6addr'
-       proto_config_add_string 'sourcerouting:bool'
        proto_config_add_string "userclass"
        proto_config_add_string "vendorclass"
        proto_config_add_boolean delegate
        proto_config_add_int "soltimeout"
        proto_config_add_boolean fakeroutes
+       proto_config_add_boolean sourcefilter
 }
 
 proto_dhcpv6_setup() {
        local config="$1"
        local iface="$2"
 
-       local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map ifaceid sourcerouting userclass vendorclass delegate zone_dslite zone_map zone soltimeout fakeroutes
-       json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map ifaceid sourcerouting userclass vendorclass delegate zone_dslite zone_map zone soltimeout fakeroutes
+       local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter
+       json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter
 
 
        # Configure
@@ -67,13 +69,15 @@ proto_dhcpv6_setup() {
        [ -n "$ip6prefix" ] && proto_export "USERPREFIX=$ip6prefix"
        [ -n "$iface_dslite" ] && proto_export "IFACE_DSLITE=$iface_dslite"
        [ -n "$iface_map" ] && proto_export "IFACE_MAP=$iface_map"
-       [ "$sourcerouting" != "0" ] && proto_export "SOURCE_ROUTING=1"
+       [ -n "$iface_464xlat" ] && proto_export "IFACE_464XLAT=$iface_464xlat"
        [ "$delegate" = "0" ] && proto_export "IFACE_DSLITE_DELEGATE=0"
        [ "$delegate" = "0" ] && proto_export "IFACE_MAP_DELEGATE=0"
        [ -n "$zone_dslite" ] && proto_export "ZONE_DSLITE=$zone_dslite"
        [ -n "$zone_map" ] && proto_export "ZONE_MAP=$zone_map"
+       [ -n "$zone_464xlat" ] && proto_export "ZONE_464XLAT=$zone_464xlat"
        [ -n "$zone" ] && proto_export "ZONE=$zone"
        [ "$fakeroutes" != "0" ] && proto_export "FAKE_ROUTES=1"
+       [ "$sourcefilter" = "0" ] && proto_export "NOSOURCEFILTER=1"
 
        proto_export "INTERFACE=$config"
        proto_run_command "$config" odhcp6c \
index a5302255b13c44ee2d161f8b3306dc5a84292521..444459baaaabaddf995061e0f34be187e00dd496 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2013 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
-PKG_VERSION:=2.72
+PKG_VERSION:=2.75
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
-PKG_MD5SUM:=cf82f81cf09ad3d47612985012240483
+PKG_MD5SUM:=887236f1ddde6eb57cdb9d01916c9f72
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
@@ -22,6 +22,10 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSI
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
+PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcpv6 \
+       CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dnssec \
+       CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_auth \
+       CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_ipset
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -46,8 +50,10 @@ endef
 
 define Package/dnsmasq-full
 $(call Package/dnsmasq/Default)
-  TITLE += (with DNSSEC, DHCPv6, Auth DNS, IPSET)
-  DEPENDS:=@IPV6 +kmod-ipv6 +libnettle
+  TITLE += (with DNSSEC, DHCPv6, Auth DNS, IPset enabled by default)
+  DEPENDS:=+PACKAGE_dnsmasq_full_dnssec:libnettle \
+       +PACKAGE_dnsmasq_full_dhcpv6:kmod-ipv6 \
+       +PACKAGE_dnsmasq_full_ipset:kmod-ipt-ipset
   VARIANT:=full
 endef
 
@@ -64,7 +70,8 @@ endef
 define Package/dnsmasq-full/description
 $(call Package/dnsmasq/description)
 
-This is a variant with DHCPv6, DNSSEC, Authroitative DNS and IPSET support
+This is a fully configurable variant with DHCPv6, DNSSEC, Authroitative DNS and
+IPset support enabled by default.
 endef
 
 define Package/dnsmasq/conffiles
@@ -72,6 +79,24 @@ define Package/dnsmasq/conffiles
 /etc/dnsmasq.conf
 endef
 
+define Package/dnsmasq-full/config
+       if PACKAGE_dnsmasq-full
+       config PACKAGE_dnsmasq_full_dhcpv6
+               bool "Build with DHCPv6 support."
+               depends on IPV6
+               default y
+       config PACKAGE_dnsmasq_full_dnssec
+               bool "Build with DNSSEC support."
+               default y
+       config PACKAGE_dnsmasq_full_auth
+               bool "Build with the facility to act as an authoritative DNS server."
+               default y
+       config PACKAGE_dnsmasq_full_ipset
+               bool "Build with IPset support."
+               default y
+       endif
+endef
+
 Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles)
 Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles)
 
@@ -85,7 +110,10 @@ ifeq ($(BUILD_VARIANT),nodhcpv6)
 endif
 
 ifeq ($(BUILD_VARIANT),full)
-       COPTS += -DHAVE_DNSSEC
+       COPTS += $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcpv6),,-DNO_DHCP6) \
+               $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dnssec),-DHAVE_DNSSEC) \
+               $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_auth),,-DNO_AUTH) \
+               $(if $(CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_ipset),,-DNO_IPSET)
        COPTS += $(if $(CONFIG_LIBNETTLE_MINI),-DNO_GMP,)
 else
        COPTS += -DNO_AUTH -DNO_IPSET
@@ -114,8 +142,10 @@ Package/dnsmasq-dhcpv6/install = $(Package/dnsmasq/install)
 
 define Package/dnsmasq-full/install
 $(call Package/dnsmasq/install,$(1))
+ifneq ($(CONFIG_PACKAGE_dnsmasq_full_dnssec),)
        $(INSTALL_DIR) $(1)/usr/share/dnsmasq
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/trust-anchors.conf $(1)/usr/share/dnsmasq
+endif
 endef
 
 $(eval $(call BuildPackage,dnsmasq))
index 660b06ad4ff8e44e01bb872b6f0a4bd6fef07309..362b90a293f497e05682f35bd62a110dab366ad0 100644 (file)
@@ -19,6 +19,7 @@ config dnsmasq
        #list interface         br-lan
        #list notinterface      lo
        #list bogusnxdomain     '64.94.110.11'
+       option localservice     1  # disable to allow DNS requests from non-local subnets
 
 config dhcp lan
        option interface        lan
index 9be352a0e8a5afa2f78c4615d86fd63e754541de..ab64e88a93e876bb0cbb04841dbf0ae43067f9d5 100644 (file)
@@ -15,6 +15,7 @@ ADD_LOCAL_HOSTNAME=1
 CONFIGFILE="/var/etc/dnsmasq.conf"
 HOSTFILE="/tmp/hosts/dhcp"
 TRUSTANCHORSFILE="/usr/share/dnsmasq/trust-anchors.conf"
+TIMESTAMPFILE="/etc/dnsmasq.time"
 
 xappend() {
        local value="$1"
@@ -85,6 +86,10 @@ append_address() {
        xappend "--address=$1"
 }
 
+append_ipset() {
+       xappend "--ipset=$1"
+}
+
 append_interface() {
        local ifname=$(uci_get_state network "$1" ifname "$1")
        xappend "--interface=$ifname"
@@ -103,6 +108,10 @@ append_bogusnxdomain() {
        xappend "--bogus-nxdomain=$1"
 }
 
+append_pxe_service() {
+       xappend "--pxe-service=$1"
+}
+
 dnsmasq() {
        local cfg="$1"
        append_bool "$cfg" authoritative "--dhcp-authoritative"
@@ -112,7 +121,7 @@ dnsmasq() {
        append_bool "$cfg" nohosts "--no-hosts"
        append_bool "$cfg" nonegcache "--no-negcache"
        append_bool "$cfg" strictorder "--strict-order"
-       append_bool "$cfg" logqueries "--log-queries"
+       append_bool "$cfg" logqueries "--log-queries=extra"
        append_bool "$cfg" noresolv "--no-resolv"
        append_bool "$cfg" localise_queries "--localise-queries"
        append_bool "$cfg" readethers "--read-ethers"
@@ -120,9 +129,13 @@ dnsmasq() {
        append_bool "$cfg" boguspriv "--bogus-priv"
        append_bool "$cfg" expandhosts "--expand-hosts"
        append_bool "$cfg" enable_tftp "--enable-tftp"
+       append_bool "$cfg" tftp_no_fail "--tftp-no-fail"
        append_bool "$cfg" nonwildcard "--bind-interfaces"
        append_bool "$cfg" fqdn "--dhcp-fqdn"
        append_bool "$cfg" proxydnssec "--proxy-dnssec"
+       append_bool "$cfg" localservice "--local-service"
+       append_bool "$cfg" quietdhcp "--quiet-dhcp"
+       append_bool "$cfg" sequential_ip "--dhcp-sequential-ip"
 
        append_parm "$cfg" dhcpscript "--dhcp-script"
        append_parm "$cfg" cachesize "--cache-size"
@@ -135,16 +148,19 @@ dnsmasq() {
        append_parm "$cfg" "local" "--server"
        config_list_foreach "$cfg" "server" append_server
        config_list_foreach "$cfg" "address" append_address
+       config_list_foreach "$cfg" "ipset" append_ipset
        config_list_foreach "$cfg" "interface" append_interface
        config_list_foreach "$cfg" "notinterface" append_notinterface
        config_list_foreach "$cfg" "addnhosts" append_addnhosts
        config_list_foreach "$cfg" "bogusnxdomain" append_bogusnxdomain
        append_parm "$cfg" "leasefile" "--dhcp-leasefile"
        append_parm "$cfg" "resolvfile" "--resolv-file"
+       append_parm "$cfg" "serversfile" "--servers-file"
        append_parm "$cfg" "tftp_root" "--tftp-root"
        append_parm "$cfg" "dhcp_boot" "--dhcp-boot"
        append_parm "$cfg" "local_ttl" "--local-ttl"
-
+       append_parm "$cfg" "pxe_prompt" "--pxe-prompt"
+       config_list_foreach "$cfg" "pxe_service" append_pxe_service
        config_get DOMAIN "$cfg" domain
 
        config_get_bool ADD_LOCAL_DOMAIN "$cfg" add_local_domain 1
@@ -191,6 +207,7 @@ dnsmasq() {
        [ "$dnssec" -gt 0 ] && {
                xappend "--conf-file=$TRUSTANCHORSFILE"
                xappend "--dnssec"
+               xappend "--dnssec-timestamp=$TIMESTAMPFILE"
                append_bool "$cfg" dnsseccheckunsigned "--dnssec-check-unsigned"
        }
 
@@ -357,12 +374,11 @@ dhcp_boot_add() {
        [ -n "$filename" ] || return 0
 
        config_get servername "$cfg" servername
-       [ -n "$servername" ] || return 0
-
        config_get serveraddress "$cfg" serveraddress
-       [ -n "$serveraddress" ] || return 0
 
-       xappend "--dhcp-boot=${networkid:+net:$networkid,}$filename,$servername,$serveraddress"
+       [ -n "$serveraddress" -a ! -n "$servername" ] && return 0
+
+       xappend "--dhcp-boot=${networkid:+net:$networkid,}${filename}${servername:+,$servername}${serveraddress:+,$serveraddress}"
 
        config_get_bool force "$cfg" force 0
 
@@ -536,13 +552,26 @@ start_service() {
        config_load dhcp
 
        procd_open_instance
-       procd_set_param command $PROG -C $CONFIGFILE -k
+       procd_set_param command $PROG -C $CONFIGFILE -k -x /var/run/dnsmasq/dnsmasq.pid
        procd_set_param file $CONFIGFILE
        procd_set_param respawn
+
+       procd_add_jail dnsmasq ubus log
+       procd_add_jail_mount $CONFIGFILE $TRUSTANCHORSFILE $HOSTFILE /etc/passwd /etc/group /etc/TZ /dev/null /dev/urandom /etc/dnsmasq.conf /tmp/dnsmasq.d /tmp/resolv.conf.auto /etc/hosts /etc/ethers
+       procd_add_jail_mount_rw /var/run/dnsmasq/ /tmp/dhcp.leases $TIMESTAMPFILE
+       
        procd_close_instance
 
        # before we can call xappend
+       mkdir -p /var/run/dnsmasq/
        mkdir -p $(dirname $CONFIGFILE)
+       mkdir -p /var/lib/misc
+       touch /tmp/dhcp.leases
+
+       if [ ! -f "$TIMESTAMPFILE" ]; then
+               touch "$TIMESTAMPFILE"
+               chown nobody.nogroup "$TIMESTAMPFILE"
+       fi
 
        echo "# auto-generated config file from /etc/config/dhcp" > $CONFIGFILE
        echo "# auto-generated config file from /etc/config/dhcp" > $HOSTFILE
@@ -570,7 +599,7 @@ start_service() {
        # add own hostname
        local lanaddr
        [ $ADD_LOCAL_HOSTNAME -eq 1 ] && network_get_ipaddr lanaddr "lan" && {
-               local hostname="$(uci_get system @system[0] hostname libreCMC)"
+               local hostname="$(uci_get system @system[0] hostname OpenWrt)"
                dhcp_domain_add "" "$hostname" "$lanaddr"
        }
 
index a502a60aeea1da4b5b9e84383563093d52c6fe1f..f5b5ca04ec6021bdbe09c9b8a289297935bd00f5 100644 (file)
@@ -9,7 +9,7 @@
    struct iface_param parm;
  #ifdef HAVE_LINUX_NETWORK
    struct arpreq arp_req;
-@@ -272,11 +272,9 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -275,11 +275,9 @@ void dhcp_packet(time_t now, int pxe_fd)
      {
        ifr.ifr_addr.sa_family = AF_INET;
        if (ioctl(daemon->dhcpfd, SIOCGIFADDR, &ifr) != -1 )
@@ -23,7 +23,7 @@
        }
        
        for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
-@@ -295,7 +293,7 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -298,7 +296,7 @@ void dhcp_packet(time_t now, int pxe_fd)
        parm.relay_local.s_addr = 0;
        parm.ind = iface_index;
        
@@ -32,7 +32,7 @@
        {
          /* If we failed to match the primary address of the interface, see if we've got a --listen-address
             for a secondary */
-@@ -315,6 +313,12 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -318,6 +316,12 @@ void dhcp_packet(time_t now, int pxe_fd)
          complete_context(match.addr, iface_index, NULL, match.netmask, match.broadcast, &parm);
        }    
        
index c54738b48f7a02d4bafc415e27d3d1e5982fd85c..7aec7ad8a40ae843453e2c3e8f812a93c9635320 100644 (file)
@@ -108,7 +108,7 @@ hostapd_set_bss_options() {
                        [ -z "$auth_secret" ] && config_get auth_secret "$vif" key
                        append "$var" "auth_server_shared_secret=$auth_secret" "$N"
                        # You don't really want to enable this unless you are doing
-                       # some corner case testing or are using libreCMC as a work around
+                       # some corner case testing or are using OpenWrt as a work around
                        # for some systematic issues.
                        config_get_bool auth_cache "$vif" auth_cache 0
                        config_get rsn_preauth "$vif" rsn_preauth
@@ -193,8 +193,8 @@ hostapd_set_bss_options() {
 
        [ -n "$wps_possible" -a -n "$config_methods" ] && {
                config_get device_type "$vif" wps_device_type "6-0050F204-1"
-               config_get device_name "$vif" wps_device_name "libreCMC AP"
-               config_get manufacturer "$vif" wps_manufacturer "librecmc.org"
+               config_get device_name "$vif" wps_device_name "OpenWrt AP"
+               config_get manufacturer "$vif" wps_manufacturer "openwrt.org"
                config_get wps_pin "$vif" wps_pin
 
                config_get_bool ext_registrar "$vif" ext_registrar 0
index 3f69d304e592be05e4ebe23722388b28e166a4cd..a3ffd9395475c91f764e532379ab9a741c55e7b7 100644 (file)
@@ -318,8 +318,8 @@ hostapd_set_bss_options() {
        [ -n "$wps_possible" -a -n "$config_methods" ] && {
                set_default ext_registrar 0
                set_default wps_device_type "6-0050F204-1"
-               set_default wps_device_name "libreCMC AP"
-               set_default wps_manufacturer "librecmc.org"
+               set_default wps_device_name "OpenWrt AP"
+               set_default wps_manufacturer "openwrt.org"
 
                wps_state=2
                [ -n "$wps_configured" ] && wps_state=1
index 28729b3c314dee9dc259ebab765ea9520f9c9fa2..26e3c80aeea006a77fefbb3dd0f06232643b1485 100644 (file)
@@ -30,7 +30,7 @@
 #LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
 ###############################################################################
 
-#### librecmc (e.g., for Linksys WRT54G) #######################################
+#### openwrt (e.g., for Linksys WRT54G) #######################################
 #CC=mipsel-uclibc-gcc
 #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
 #CFLAGS += -Os
index ed9d98db899f6d73e7ce4f5e0af732d0c1fb92aa..36e29088c41ab819830e85f2fdadbcf700dc4071 100644 (file)
@@ -30,7 +30,7 @@
 #LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
 ###############################################################################
 
-#### librecmc (e.g., for Linksys WRT54G) #######################################
+#### openwrt (e.g., for Linksys WRT54G) #######################################
 #CC=mipsel-uclibc-gcc
 #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
 #CFLAGS += -Os
index dae45bb7a5b82bc44ed16d9319bc0b94ac450a46..a8d334d942e0618eb1224d093bb5047b1b40577a 100644 (file)
@@ -30,7 +30,7 @@
 #LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
 ###############################################################################
 
-#### librecmc (e.g., for Linksys WRT54G) #######################################
+#### openwrt (e.g., for Linksys WRT54G) #######################################
 #CC=mipsel-uclibc-gcc
 #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
 #CFLAGS += -Os
index 9a559734c5027a60013c7407da7a31ef626a8e30..1c307d0e697b99036cafaed8b923cea0523114c2 100644 (file)
@@ -30,7 +30,7 @@
 #LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
 ###############################################################################
 
-#### librecmc (e.g., for Linksys WRT54G) #######################################
+#### openwrt (e.g., for Linksys WRT54G) #######################################
 #CC=mipsel-uclibc-gcc
 #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
 #CFLAGS += -Os
index 5e766ec6612f4e01f47bed69d7421980320e6a3b..4290be781b672264b99745e5bef21647ddb916db 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=odhcpd
-PKG_VERSION:=2014-11-06
+PKG_VERSION:=2015-07-24
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=git://github.com/sbyx/odhcpd.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=3b628005e66e90770b2757a4a02c1dee25ccb883
+PKG_SOURCE_VERSION:=0ce78e8831ef9b34f1d0a6b240e106747eae8370
 
 PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
 PKG_LICENSE:=GPL-2.0
@@ -25,10 +25,6 @@ include $(INCLUDE_DIR)/cmake.mk
 
 CMAKE_OPTIONS += -DUBUS=1
 
-ifneq ($(CONFIG_PACKAGE_odhcpd_ext_prefix_class),0)
-  CMAKE_OPTIONS += -DEXT_PREFIX_CLASS=$(CONFIG_PACKAGE_odhcpd_ext_prefix_class)
-endif
-
 ifneq ($(CONFIG_PACKAGE_odhcpd_ext_cer_id),0)
   CMAKE_OPTIONS += -DEXT_CER_ID=$(CONFIG_PACKAGE_odhcpd_ext_cer_id)
 endif
@@ -37,15 +33,11 @@ endif
 define Package/odhcpd
   SECTION:=net
   CATEGORY:=Network
-  TITLE:=libreCMC DHCP/DHCPv6(-PD)/RA Server & Relay
+  TITLE:=OpenWrt DHCP/DHCPv6(-PD)/RA Server & Relay
   DEPENDS:=+libubox +libuci +libubus
 endef
 
 define Package/odhcpd/config
-  config PACKAGE_odhcpd_ext_prefix_class
-    int "Prefix Class Extension ID (0 = disabled)"
-    depends on PACKAGE_odhcpd
-    default 0
   config PACKAGE_odhcpd_ext_cer_id
     int "CER-ID Extension ID (0 = disabled)"
     depends on PACKAGE_odhcpd