[GH-ISSUE #52] Nothing happened and no DHCP ip addr assigned #33

Closed
opened 2026-03-04 14:52:33 +03:00 by kerem · 9 comments
Owner

Originally created by @a13519 on GitHub (Nov 25, 2025).
Original GitHub issue: https://github.com/f00b4r0/uspot/issues/52

Describe the bug
after start the service client can not get ip addr assigned and no splash page popped

To Reproduce
Steps to reproduce the behavior:

  1. after start uSpot
  2. try to connect wifi which connects to guest interface from mobile or pc
  3. it get connected but no splash page popped up

Expected behavior
A clear and concise description of what you expected to happen.

Configuration
Provide the output of:

  • opkg list-installed | grep uspot
root@Travaler:/etc/config# opkg list-installed | grep uspot
uspot - 2025.08.07~8599a968-r1
uspotfilter - 2025.08.07~8599a968-r1
  • uci show uspot (replace passwords with XXXX as needed)
uspot.ZWLScp=uspot
uspot.ZWLScp.auth_mode='click-to-continue'
uspot.ZWLScp.idle_timeout='600'
uspot.ZWLScp.session_timeout='0'
uspot.ZWLScp.disconnect_delay='0'
uspot.ZWLScp.interface='guest'
uspot.ZWLScp.setname='uspotcp'
uspot.ZWLScp.debug='1'
  • uci show network
network.loopback=interface
network.loopback.device='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fdfb:d01:f67d::/48'
network.globals.packet_steering='1'
network.@device[0]=device
network.@device[0].name='br-lan'
network.@device[0].type='bridge'
network.@device[0].ports='eth1'
network.lan=interface
network.lan.device='br-lan'
network.lan.proto='static'
network.lan.ipaddr='10.10.60.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.wan=interface
network.wan.device='eth0'
network.wan.proto='static'
network.wan.ipaddr='10.10.50.2'
network.wan.netmask='255.255.255.0'
network.wan.gateway='10.10.50.1'
network.wan.dns='10.10.50.1' '8.8.8.8'
network.@device[1]=device
network.@device[1].type='bridge'
network.@device[1].name='br-guest'
network.@device[1].mtu='1500'
network.guest=interface
network.guest.proto='none'
network.guest.device='br-guest'
  • uci show firewall
root@Travaler:~# uci show firewall
firewall.@defaults[0]=defaults
firewall.@defaults[0].input='REJECT'
firewall.@defaults[0].output='ACCEPT'
firewall.@defaults[0].forward='REJECT'
firewall.@defaults[0].synflood_protect='1'
firewall.@zone[0]=zone
firewall.@zone[0].name='lan'
firewall.@zone[0].input='ACCEPT'
firewall.@zone[0].output='ACCEPT'
firewall.@zone[0].forward='ACCEPT'
firewall.@zone[0].network='lan'
firewall.@zone[1]=zone
firewall.@zone[1].name='wan'
firewall.@zone[1].input='ACCEPT'
firewall.@zone[1].output='ACCEPT'
firewall.@zone[1].forward='ACCEPT'
firewall.@zone[1].mtu_fix='1'
firewall.@zone[1].network='wan'
firewall.@forwarding[0]=forwarding
firewall.@forwarding[0].src='lan'
firewall.@forwarding[0].dest='wan'
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-DHCP-Renew'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='udp'
firewall.@rule[0].dest_port='68'
firewall.@rule[0].target='ACCEPT'
firewall.@rule[0].family='ipv4'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-Ping'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='icmp'
firewall.@rule[1].icmp_type='echo-request'
firewall.@rule[1].family='ipv4'
firewall.@rule[1].target='ACCEPT'
firewall.@rule[2]=rule
firewall.@rule[2].name='Allow-IGMP'
firewall.@rule[2].src='wan'
firewall.@rule[2].proto='igmp'
firewall.@rule[2].family='ipv4'
firewall.@rule[2].target='ACCEPT'
firewall.@rule[3]=rule
firewall.@rule[3].name='Allow-DHCPv6'
firewall.@rule[3].src='wan'
firewall.@rule[3].proto='udp'
firewall.@rule[3].dest_port='546'
firewall.@rule[3].family='ipv6'
firewall.@rule[3].target='ACCEPT'
firewall.@rule[4]=rule
firewall.@rule[4].name='Allow-MLD'
firewall.@rule[4].src='wan'
firewall.@rule[4].proto='icmp'
firewall.@rule[4].src_ip='fe80::/10'
firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.@rule[4].family='ipv6'
firewall.@rule[4].target='ACCEPT'
firewall.@rule[5]=rule
firewall.@rule[5].name='Allow-ICMPv6-Input'
firewall.@rule[5].src='wan'
firewall.@rule[5].proto='icmp'
firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement'
firewall.@rule[5].limit='1000/sec'
firewall.@rule[5].family='ipv6'
firewall.@rule[5].target='ACCEPT'
firewall.@rule[6]=rule
firewall.@rule[6].name='Allow-ICMPv6-Forward'
firewall.@rule[6].src='wan'
firewall.@rule[6].dest='*'
firewall.@rule[6].proto='icmp'
firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type'
firewall.@rule[6].limit='1000/sec'
firewall.@rule[6].family='ipv6'
firewall.@rule[6].target='ACCEPT'
firewall.@rule[7]=rule
firewall.@rule[7].name='Allow-IPSec-ESP'
firewall.@rule[7].src='wan'
firewall.@rule[7].dest='lan'
firewall.@rule[7].proto='esp'
firewall.@rule[7].target='ACCEPT'
firewall.@rule[8]=rule
firewall.@rule[8].name='Allow-ISAKMP'
firewall.@rule[8].src='wan'
firewall.@rule[8].dest='lan'
firewall.@rule[8].dest_port='500'
firewall.@rule[8].proto='udp'
firewall.@rule[8].target='ACCEPT'
firewall.@forwarding[1]=forwarding
firewall.@forwarding[1].src='wan'
firewall.@forwarding[1].dest='lan'
firewall.@zone[2]=zone
firewall.@zone[2].name='captive'
firewall.@zone[2].network='captive'
firewall.@zone[2].input='REJECT'
firewall.@zone[2].output='ACCEPT'
firewall.@zone[2].forward='REJECT'
firewall.@redirect[0]=redirect
firewall.@redirect[0].name='Redirect-unauth-captive-CPD'
firewall.@redirect[0].src='captive'
firewall.@redirect[0].src_dport='80'
firewall.@redirect[0].proto='tcp'
firewall.@redirect[0].target='DNAT'
firewall.@redirect[0].reflection='0'
firewall.@redirect[0].ipset='!uspot'
firewall.@rule[9]=rule
firewall.@rule[9].name='Allow-DHCP-NTP-captive'
firewall.@rule[9].src='captive'
firewall.@rule[9].proto='udp'
firewall.@rule[9].dest_port='67 123'
firewall.@rule[9].target='ACCEPT'
firewall.@rule[10]=rule
firewall.@rule[10].name='Restrict-input-captive'
firewall.@rule[10].src='captive'
firewall.@rule[10].dest_ip='!captive'
firewall.@rule[10].target='DROP'
firewall.@rule[11]=rule
firewall.@rule[11].name='Allow-captive-CPD-WEB-UAM'
firewall.@rule[11].src='captive'
firewall.@rule[11].dest_port='80 443 3990'
firewall.@rule[11].proto='tcp'
firewall.@rule[11].target='ACCEPT'
firewall.@rule[12]=rule
firewall.@rule[12].name='Forward-auth-captive'
firewall.@rule[12].src='captive'
firewall.@rule[12].dest='wan'
firewall.@rule[12].proto='any'
firewall.@rule[12].target='ACCEPT'
firewall.@rule[12].ipset='uspot'
firewall.@rule[13]=rule
firewall.@rule[13].name='Allow-DNS-captive'
firewall.@rule[13].src='captive'
firewall.@rule[13].proto='udp' 'tcp'
firewall.@rule[13].dest_port='53'
firewall.@rule[13].target='ACCEPT'
firewall.@rule[14]=rule
firewall.@rule[14].name='Allow-captive-DAE'
firewall.@rule[14].src='wan'
firewall.@rule[14].proto='udp'
firewall.@rule[14].family='ipv4'
firewall.@rule[14].src_ip='10.10.50.107'
firewall.@rule[14].dest_port='3799'
firewall.@rule[14].target='ACCEPT'
firewall.@ipset[0]=ipset
firewall.@ipset[0].name='uspot'
firewall.@ipset[0].match='src_mac'
firewall.@rule[15]=rule
firewall.@rule[15].name='Allow-Whitelist'
firewall.@rule[15].src='captive'
firewall.@rule[15].dest='wan'
firewall.@rule[15].proto='any'
firewall.@rule[15].ipset='wlist'
firewall.@rule[15].target='ACCEPT'

it prompts error when start the firewall:

root@Travaler:~# /etc/init.d/firewall restart
Section @rule[10] (Restrict-input-captive) option 'dest_ip' specifies invalid value '!captive'
Section @rule[10] (Restrict-input-captive) skipped due to invalid options
Section @rule[15] (Allow-Whitelist) references unknown set 'wlist'
  • uci show uhttpd
uhttpd.main=uhttpd
uhttpd.main.listen_http='0.0.0.0:80' '[::]:80'
uhttpd.main.listen_https='0.0.0.0:443' '[::]:443'
uhttpd.main.redirect_https='0'
uhttpd.main.home='/www'
uhttpd.main.rfc1918_filter='1'
uhttpd.main.max_requests='3'
uhttpd.main.max_connections='100'
uhttpd.main.cert='/etc/uhttpd.crt'
uhttpd.main.key='/etc/uhttpd.key'
uhttpd.main.cgi_prefix='/cgi-bin'
uhttpd.main.lua_prefix='/cgi-bin/luci=/usr/lib/lua/luci/sgi/uhttpd.lua'
uhttpd.main.script_timeout='60'
uhttpd.main.network_timeout='30'
uhttpd.main.http_keepalive='20'
uhttpd.main.tcp_keepalive='1'
uhttpd.main.ubus_prefix='/ubus'
uhttpd.defaults=cert
uhttpd.defaults.days='397'
uhttpd.defaults.key_type='ec'
uhttpd.defaults.bits='2048'
uhttpd.defaults.ec_curve='P-256'
uhttpd.defaults.country='ZZ'
uhttpd.defaults.state='Somewhere'
uhttpd.defaults.location='Unknown'
uhttpd.defaults.commonname='OpenWrt'
  • uci show dhcp
dhcp.@dnsmasq[0]=dnsmasq
dhcp.@dnsmasq[0].domainneeded='1'
dhcp.@dnsmasq[0].boguspriv='1'
dhcp.@dnsmasq[0].filterwin2k='0'
dhcp.@dnsmasq[0].localise_queries='1'
dhcp.@dnsmasq[0].rebind_protection='1'
dhcp.@dnsmasq[0].rebind_localhost='1'
dhcp.@dnsmasq[0].local='/lan/'
dhcp.@dnsmasq[0].domain='lan'
dhcp.@dnsmasq[0].expandhosts='1'
dhcp.@dnsmasq[0].nonegcache='0'
dhcp.@dnsmasq[0].cachesize='1000'
dhcp.@dnsmasq[0].authoritative='1'
dhcp.@dnsmasq[0].readethers='1'
dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases'
dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.d/resolv.conf.auto'
dhcp.@dnsmasq[0].nonwildcard='1'
dhcp.@dnsmasq[0].localservice='1'
dhcp.@dnsmasq[0].ednspacket_max='1232'
dhcp.@dnsmasq[0].filter_aaaa='0'
dhcp.@dnsmasq[0].filter_a='0'
dhcp.lan=dhcp
dhcp.lan.interface='lan'
dhcp.lan.start='100'
dhcp.lan.limit='150'
dhcp.lan.leasetime='12h'
dhcp.lan.dhcpv4='server'
dhcp.lan.dhcpv6='server'
dhcp.lan.ra='server'
dhcp.lan.ra_flags='managed-config' 'other-config'
dhcp.wan=dhcp
dhcp.wan.interface='wan'
dhcp.wan.ignore='1'
dhcp.wan.start='100'
dhcp.wan.limit='150'
dhcp.wan.leasetime='12h'
dhcp.odhcpd=odhcpd
dhcp.odhcpd.maindhcp='0'
dhcp.odhcpd.leasefile='/tmp/hosts/odhcpd'
dhcp.odhcpd.leasetrigger='/usr/sbin/odhcpd-update'
dhcp.odhcpd.loglevel='4'
dhcp.odhcpd.piofolder='/tmp/odhcpd-piofolder'

Logs
Please provide the relevant content of logread when the problem occurs. Provide a few dozen lines of context output prior to the the actual error messages if any.

Tue Nov 25 20:47:07 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!
Tue Nov 25 20:47:17 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!
Tue Nov 25 20:47:27 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!
Tue Nov 25 20:47:37 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!
Tue Nov 25 20:47:47 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!
Tue Nov 25 20:47:49 2025 daemon.info hostapd: phy0-ap0: STA 52:c7:04:b5:c2:6c IEEE 802.11: authenticated
Tue Nov 25 20:47:49 2025 daemon.info hostapd: phy0-ap0: STA 52:c7:04:b5:c2:6c IEEE 802.11: associated (aid 2)
Tue Nov 25 20:47:49 2025 daemon.notice hostapd: phy0-ap0: AP-STA-CONNECTED 52:c7:04:b5:c2:6c auth_alg=open
Tue Nov 25 20:47:57 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!
Tue Nov 25 20:48:03 2025 daemon.notice hostapd: phy0-ap0: AP-STA-DISCONNECTED 52:c7:04:b5:c2:6c
Tue Nov 25 20:48:07 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!
Tue Nov 25 20:48:17 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter!

Additional context
Add any other context about the problem here.

Originally created by @a13519 on GitHub (Nov 25, 2025). Original GitHub issue: https://github.com/f00b4r0/uspot/issues/52 **Describe the bug** after start the service client can not get ip addr assigned and no splash page popped **To Reproduce** Steps to reproduce the behavior: 1. after start uSpot 2. try to connect wifi which connects to guest interface from mobile or pc 3. it get connected but no splash page popped up **Expected behavior** A clear and concise description of what you expected to happen. **Configuration** Provide the output of: - `opkg list-installed | grep uspot` ``` root@Travaler:/etc/config# opkg list-installed | grep uspot uspot - 2025.08.07~8599a968-r1 uspotfilter - 2025.08.07~8599a968-r1 ``` - `uci show uspot` (replace passwords with XXXX as needed) ```root@Travaler:/etc/config# uci show uspot uspot.ZWLScp=uspot uspot.ZWLScp.auth_mode='click-to-continue' uspot.ZWLScp.idle_timeout='600' uspot.ZWLScp.session_timeout='0' uspot.ZWLScp.disconnect_delay='0' uspot.ZWLScp.interface='guest' uspot.ZWLScp.setname='uspotcp' uspot.ZWLScp.debug='1' ``` - `uci show network` ``` network.loopback=interface network.loopback.device='lo' network.loopback.proto='static' network.loopback.ipaddr='127.0.0.1' network.loopback.netmask='255.0.0.0' network.globals=globals network.globals.ula_prefix='fdfb:d01:f67d::/48' network.globals.packet_steering='1' network.@device[0]=device network.@device[0].name='br-lan' network.@device[0].type='bridge' network.@device[0].ports='eth1' network.lan=interface network.lan.device='br-lan' network.lan.proto='static' network.lan.ipaddr='10.10.60.1' network.lan.netmask='255.255.255.0' network.lan.ip6assign='60' network.wan=interface network.wan.device='eth0' network.wan.proto='static' network.wan.ipaddr='10.10.50.2' network.wan.netmask='255.255.255.0' network.wan.gateway='10.10.50.1' network.wan.dns='10.10.50.1' '8.8.8.8' network.@device[1]=device network.@device[1].type='bridge' network.@device[1].name='br-guest' network.@device[1].mtu='1500' network.guest=interface network.guest.proto='none' network.guest.device='br-guest' ``` - `uci show firewall` ``` root@Travaler:~# uci show firewall firewall.@defaults[0]=defaults firewall.@defaults[0].input='REJECT' firewall.@defaults[0].output='ACCEPT' firewall.@defaults[0].forward='REJECT' firewall.@defaults[0].synflood_protect='1' firewall.@zone[0]=zone firewall.@zone[0].name='lan' firewall.@zone[0].input='ACCEPT' firewall.@zone[0].output='ACCEPT' firewall.@zone[0].forward='ACCEPT' firewall.@zone[0].network='lan' firewall.@zone[1]=zone firewall.@zone[1].name='wan' firewall.@zone[1].input='ACCEPT' firewall.@zone[1].output='ACCEPT' firewall.@zone[1].forward='ACCEPT' firewall.@zone[1].mtu_fix='1' firewall.@zone[1].network='wan' firewall.@forwarding[0]=forwarding firewall.@forwarding[0].src='lan' firewall.@forwarding[0].dest='wan' firewall.@rule[0]=rule firewall.@rule[0].name='Allow-DHCP-Renew' firewall.@rule[0].src='wan' firewall.@rule[0].proto='udp' firewall.@rule[0].dest_port='68' firewall.@rule[0].target='ACCEPT' firewall.@rule[0].family='ipv4' firewall.@rule[1]=rule firewall.@rule[1].name='Allow-Ping' firewall.@rule[1].src='wan' firewall.@rule[1].proto='icmp' firewall.@rule[1].icmp_type='echo-request' firewall.@rule[1].family='ipv4' firewall.@rule[1].target='ACCEPT' firewall.@rule[2]=rule firewall.@rule[2].name='Allow-IGMP' firewall.@rule[2].src='wan' firewall.@rule[2].proto='igmp' firewall.@rule[2].family='ipv4' firewall.@rule[2].target='ACCEPT' firewall.@rule[3]=rule firewall.@rule[3].name='Allow-DHCPv6' firewall.@rule[3].src='wan' firewall.@rule[3].proto='udp' firewall.@rule[3].dest_port='546' firewall.@rule[3].family='ipv6' firewall.@rule[3].target='ACCEPT' firewall.@rule[4]=rule firewall.@rule[4].name='Allow-MLD' firewall.@rule[4].src='wan' firewall.@rule[4].proto='icmp' firewall.@rule[4].src_ip='fe80::/10' firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0' firewall.@rule[4].family='ipv6' firewall.@rule[4].target='ACCEPT' firewall.@rule[5]=rule firewall.@rule[5].name='Allow-ICMPv6-Input' firewall.@rule[5].src='wan' firewall.@rule[5].proto='icmp' firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement' firewall.@rule[5].limit='1000/sec' firewall.@rule[5].family='ipv6' firewall.@rule[5].target='ACCEPT' firewall.@rule[6]=rule firewall.@rule[6].name='Allow-ICMPv6-Forward' firewall.@rule[6].src='wan' firewall.@rule[6].dest='*' firewall.@rule[6].proto='icmp' firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' firewall.@rule[6].limit='1000/sec' firewall.@rule[6].family='ipv6' firewall.@rule[6].target='ACCEPT' firewall.@rule[7]=rule firewall.@rule[7].name='Allow-IPSec-ESP' firewall.@rule[7].src='wan' firewall.@rule[7].dest='lan' firewall.@rule[7].proto='esp' firewall.@rule[7].target='ACCEPT' firewall.@rule[8]=rule firewall.@rule[8].name='Allow-ISAKMP' firewall.@rule[8].src='wan' firewall.@rule[8].dest='lan' firewall.@rule[8].dest_port='500' firewall.@rule[8].proto='udp' firewall.@rule[8].target='ACCEPT' firewall.@forwarding[1]=forwarding firewall.@forwarding[1].src='wan' firewall.@forwarding[1].dest='lan' firewall.@zone[2]=zone firewall.@zone[2].name='captive' firewall.@zone[2].network='captive' firewall.@zone[2].input='REJECT' firewall.@zone[2].output='ACCEPT' firewall.@zone[2].forward='REJECT' firewall.@redirect[0]=redirect firewall.@redirect[0].name='Redirect-unauth-captive-CPD' firewall.@redirect[0].src='captive' firewall.@redirect[0].src_dport='80' firewall.@redirect[0].proto='tcp' firewall.@redirect[0].target='DNAT' firewall.@redirect[0].reflection='0' firewall.@redirect[0].ipset='!uspot' firewall.@rule[9]=rule firewall.@rule[9].name='Allow-DHCP-NTP-captive' firewall.@rule[9].src='captive' firewall.@rule[9].proto='udp' firewall.@rule[9].dest_port='67 123' firewall.@rule[9].target='ACCEPT' firewall.@rule[10]=rule firewall.@rule[10].name='Restrict-input-captive' firewall.@rule[10].src='captive' firewall.@rule[10].dest_ip='!captive' firewall.@rule[10].target='DROP' firewall.@rule[11]=rule firewall.@rule[11].name='Allow-captive-CPD-WEB-UAM' firewall.@rule[11].src='captive' firewall.@rule[11].dest_port='80 443 3990' firewall.@rule[11].proto='tcp' firewall.@rule[11].target='ACCEPT' firewall.@rule[12]=rule firewall.@rule[12].name='Forward-auth-captive' firewall.@rule[12].src='captive' firewall.@rule[12].dest='wan' firewall.@rule[12].proto='any' firewall.@rule[12].target='ACCEPT' firewall.@rule[12].ipset='uspot' firewall.@rule[13]=rule firewall.@rule[13].name='Allow-DNS-captive' firewall.@rule[13].src='captive' firewall.@rule[13].proto='udp' 'tcp' firewall.@rule[13].dest_port='53' firewall.@rule[13].target='ACCEPT' firewall.@rule[14]=rule firewall.@rule[14].name='Allow-captive-DAE' firewall.@rule[14].src='wan' firewall.@rule[14].proto='udp' firewall.@rule[14].family='ipv4' firewall.@rule[14].src_ip='10.10.50.107' firewall.@rule[14].dest_port='3799' firewall.@rule[14].target='ACCEPT' firewall.@ipset[0]=ipset firewall.@ipset[0].name='uspot' firewall.@ipset[0].match='src_mac' firewall.@rule[15]=rule firewall.@rule[15].name='Allow-Whitelist' firewall.@rule[15].src='captive' firewall.@rule[15].dest='wan' firewall.@rule[15].proto='any' firewall.@rule[15].ipset='wlist' firewall.@rule[15].target='ACCEPT' ``` it prompts error when start the firewall: ``` root@Travaler:~# /etc/init.d/firewall restart Section @rule[10] (Restrict-input-captive) option 'dest_ip' specifies invalid value '!captive' Section @rule[10] (Restrict-input-captive) skipped due to invalid options Section @rule[15] (Allow-Whitelist) references unknown set 'wlist' ``` - `uci show uhttpd` ``` uhttpd.main=uhttpd uhttpd.main.listen_http='0.0.0.0:80' '[::]:80' uhttpd.main.listen_https='0.0.0.0:443' '[::]:443' uhttpd.main.redirect_https='0' uhttpd.main.home='/www' uhttpd.main.rfc1918_filter='1' uhttpd.main.max_requests='3' uhttpd.main.max_connections='100' uhttpd.main.cert='/etc/uhttpd.crt' uhttpd.main.key='/etc/uhttpd.key' uhttpd.main.cgi_prefix='/cgi-bin' uhttpd.main.lua_prefix='/cgi-bin/luci=/usr/lib/lua/luci/sgi/uhttpd.lua' uhttpd.main.script_timeout='60' uhttpd.main.network_timeout='30' uhttpd.main.http_keepalive='20' uhttpd.main.tcp_keepalive='1' uhttpd.main.ubus_prefix='/ubus' uhttpd.defaults=cert uhttpd.defaults.days='397' uhttpd.defaults.key_type='ec' uhttpd.defaults.bits='2048' uhttpd.defaults.ec_curve='P-256' uhttpd.defaults.country='ZZ' uhttpd.defaults.state='Somewhere' uhttpd.defaults.location='Unknown' uhttpd.defaults.commonname='OpenWrt' ``` - `uci show dhcp` ``` dhcp.@dnsmasq[0]=dnsmasq dhcp.@dnsmasq[0].domainneeded='1' dhcp.@dnsmasq[0].boguspriv='1' dhcp.@dnsmasq[0].filterwin2k='0' dhcp.@dnsmasq[0].localise_queries='1' dhcp.@dnsmasq[0].rebind_protection='1' dhcp.@dnsmasq[0].rebind_localhost='1' dhcp.@dnsmasq[0].local='/lan/' dhcp.@dnsmasq[0].domain='lan' dhcp.@dnsmasq[0].expandhosts='1' dhcp.@dnsmasq[0].nonegcache='0' dhcp.@dnsmasq[0].cachesize='1000' dhcp.@dnsmasq[0].authoritative='1' dhcp.@dnsmasq[0].readethers='1' dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases' dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.d/resolv.conf.auto' dhcp.@dnsmasq[0].nonwildcard='1' dhcp.@dnsmasq[0].localservice='1' dhcp.@dnsmasq[0].ednspacket_max='1232' dhcp.@dnsmasq[0].filter_aaaa='0' dhcp.@dnsmasq[0].filter_a='0' dhcp.lan=dhcp dhcp.lan.interface='lan' dhcp.lan.start='100' dhcp.lan.limit='150' dhcp.lan.leasetime='12h' dhcp.lan.dhcpv4='server' dhcp.lan.dhcpv6='server' dhcp.lan.ra='server' dhcp.lan.ra_flags='managed-config' 'other-config' dhcp.wan=dhcp dhcp.wan.interface='wan' dhcp.wan.ignore='1' dhcp.wan.start='100' dhcp.wan.limit='150' dhcp.wan.leasetime='12h' dhcp.odhcpd=odhcpd dhcp.odhcpd.maindhcp='0' dhcp.odhcpd.leasefile='/tmp/hosts/odhcpd' dhcp.odhcpd.leasetrigger='/usr/sbin/odhcpd-update' dhcp.odhcpd.loglevel='4' dhcp.odhcpd.piofolder='/tmp/odhcpd-piofolder' ``` **Logs** Please provide the relevant content of `logread` when the problem occurs. Provide a few dozen lines of context output prior to the the actual error messages if any. ``` Tue Nov 25 20:47:07 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! Tue Nov 25 20:47:17 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! Tue Nov 25 20:47:27 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! Tue Nov 25 20:47:37 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! Tue Nov 25 20:47:47 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! Tue Nov 25 20:47:49 2025 daemon.info hostapd: phy0-ap0: STA 52:c7:04:b5:c2:6c IEEE 802.11: authenticated Tue Nov 25 20:47:49 2025 daemon.info hostapd: phy0-ap0: STA 52:c7:04:b5:c2:6c IEEE 802.11: associated (aid 2) Tue Nov 25 20:47:49 2025 daemon.notice hostapd: phy0-ap0: AP-STA-CONNECTED 52:c7:04:b5:c2:6c auth_alg=open Tue Nov 25 20:47:57 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! Tue Nov 25 20:48:03 2025 daemon.notice hostapd: phy0-ap0: AP-STA-DISCONNECTED 52:c7:04:b5:c2:6c Tue Nov 25 20:48:07 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! Tue Nov 25 20:48:17 2025 daemon.warn uspot: ZWLScp no client list from uspotfilter! ``` **Additional context** Add any other context about the problem here.
kerem 2026-03-04 14:52:33 +03:00
  • closed this issue
  • added the
    invalid
    label
Author
Owner

@f00b4r0 commented on GitHub (Nov 27, 2025):

opkg list-installed | grep uspot
root@Travaler:/etc/config# opkg list-installed | grep uspot
uspot - 2025.08.07~8599a968-r1
uspotfilter - 2025.08.07~8599a968-r1

Missing uspot-www

<!-- gh-comment-id:3587376012 --> @f00b4r0 commented on GitHub (Nov 27, 2025): ``` opkg list-installed | grep uspot root@Travaler:/etc/config# opkg list-installed | grep uspot uspot - 2025.08.07~8599a968-r1 uspotfilter - 2025.08.07~8599a968-r1 ``` Missing `uspot-www`
Author
Owner

@a13519 commented on GitHub (Nov 30, 2025):

installed uspot-www, but it is still not working, no ip address was assigned:

config dhcp 'captive'
        option interface 'captive'
        option start '2'
        option limit '1000'
        option leasetime '2h'
        # add the following for RFC8910 Captive Portal API - DNS name is setup below
        #list dhcp_option '114,https://captive.example.org/api'
        # optionally provide NTP server (if enabled on the device) - recommended for SSL cert validation
        list dhcp_option_force '42,10.0.0.1'

# add a local domain name for HTTPS support, name must match TLS certificate
config domain
        option name 'captive.example.org'
        option ip '10.0.0.1'

# if using optional dynamic hosts whitelist
config ipset
        list name 'wlist'       # match value with whitelist ipset name in config/firewall
        list domain 'my.whitelist1.domain'
        list domain 'my.whitelist2.domain'

logread

Sun Nov 30 23:00:34 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: disassociated
Sun Nov 30 23:00:35 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: deauthenticated due to inactivity (timer DEAUTH/REMOVE)
Sun Nov 30 23:00:36 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: authenticated
Sun Nov 30 23:00:36 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: associated (aid 1)
Sun Nov 30 23:00:36 2025 daemon.notice hostapd: phy0-ap0: AP-STA-CONNECTED 76:a1:a3:e0:64:9d auth_alg=open
Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame
Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame
Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame
Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame
<!-- gh-comment-id:3592646566 --> @a13519 commented on GitHub (Nov 30, 2025): installed uspot-www, but it is still not working, no ip address was assigned: ``` config dhcp 'captive' option interface 'captive' option start '2' option limit '1000' option leasetime '2h' # add the following for RFC8910 Captive Portal API - DNS name is setup below #list dhcp_option '114,https://captive.example.org/api' # optionally provide NTP server (if enabled on the device) - recommended for SSL cert validation list dhcp_option_force '42,10.0.0.1' # add a local domain name for HTTPS support, name must match TLS certificate config domain option name 'captive.example.org' option ip '10.0.0.1' # if using optional dynamic hosts whitelist config ipset list name 'wlist' # match value with whitelist ipset name in config/firewall list domain 'my.whitelist1.domain' list domain 'my.whitelist2.domain' ``` logread ``` Sun Nov 30 23:00:34 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: disassociated Sun Nov 30 23:00:35 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: deauthenticated due to inactivity (timer DEAUTH/REMOVE) Sun Nov 30 23:00:36 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: authenticated Sun Nov 30 23:00:36 2025 daemon.info hostapd: phy0-ap0: STA 76:a1:a3:e0:64:9d IEEE 802.11: associated (aid 1) Sun Nov 30 23:00:36 2025 daemon.notice hostapd: phy0-ap0: AP-STA-CONNECTED 76:a1:a3:e0:64:9d auth_alg=open Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame Sun Nov 30 23:00:40 2025 daemon.err hostapd: IEEE 802.11: Failed to send Action frame ```
Author
Owner

@a13519 commented on GitHub (Nov 30, 2025):

Do you have complete configuration for credential authentication?

<!-- gh-comment-id:3592650837 --> @a13519 commented on GitHub (Nov 30, 2025): Do you have complete configuration for credential authentication?
Author
Owner

@f00b4r0 commented on GitHub (Nov 30, 2025):

  • uci show uspot (replace passwords with XXXX as needed)
uspot.ZWLScp=uspot
uspot.ZWLScp.auth_mode='click-to-continue'
uspot.ZWLScp.idle_timeout='600'
uspot.ZWLScp.session_timeout='0'
uspot.ZWLScp.disconnect_delay='0'
uspot.ZWLScp.interface='guest'
uspot.ZWLScp.setname='uspotcp'
uspot.ZWLScp.debug='1'

Here you set uspot setname to uspotcp, and interface to guest but below you use captive for network and uspot for set in the firewall config. Invalid config.

  • uci show network
network.guest=interface
network.guest.proto='none'
network.guest.device='br-guest'

If proto is none how do you expect an IP address to be assigned by the DHCP?

  • uci show firewall

See comment above.

it prompts error when start the firewall:

root@Travaler:~# /etc/init.d/firewall restart
Section @rule[10] (Restrict-input-captive) option 'dest_ip' specifies invalid value '!captive'
Section @rule[10] (Restrict-input-captive) skipped due to invalid options
Section @rule[15] (Allow-Whitelist) references unknown set 'wlist'

That should have be an indication that your configuration is wrong.

  • uci show uhttpd

uhttpd sections for uspot are missing.

  • uci show dhcp

No DHCP configuration for the guest interface, no IP will be assigned.

installed uspot-www, but it is still not working, no ip address was assigned:

config dhcp 'captive'
        option interface 'captive'
        option start '2'
        option limit '1000'
        option leasetime '2h'
        # add the following for RFC8910 Captive Portal API - DNS name is setup below
        #list dhcp_option '114,https://captive.example.org/api'
        # optionally provide NTP server (if enabled on the device) - recommended for SSL cert validation
        list dhcp_option_force '42,10.0.0.1'

# add a local domain name for HTTPS support, name must match TLS certificate
config domain
        option name 'captive.example.org'
        option ip '10.0.0.1'

# if using optional dynamic hosts whitelist
config ipset
        list name 'wlist'       # match value with whitelist ipset name in config/firewall
        list domain 'my.whitelist1.domain'
        list domain 'my.whitelist2.domain'

Again, network captive doesn't exist in your config and neither does the ipset wlist.

Do you have complete configuration for credential authentication?

The README has the complete configuration. Follow it to the letter or be consistent in your modifications.

<!-- gh-comment-id:3592847841 --> @f00b4r0 commented on GitHub (Nov 30, 2025): > > * `uci show uspot` (replace passwords with XXXX as needed) > > ``` > uspot.ZWLScp=uspot > uspot.ZWLScp.auth_mode='click-to-continue' > uspot.ZWLScp.idle_timeout='600' > uspot.ZWLScp.session_timeout='0' > uspot.ZWLScp.disconnect_delay='0' > uspot.ZWLScp.interface='guest' > uspot.ZWLScp.setname='uspotcp' > uspot.ZWLScp.debug='1' > ``` Here you set uspot `setname` to `uspotcp`, and `interface` to `guest` but below you use `captive` for network and `uspot` for set in the firewall config. Invalid config. > * `uci show network` > > ``` > network.guest=interface > network.guest.proto='none' > network.guest.device='br-guest' > ``` If `proto` is `none` how do you expect an IP address to be assigned by the DHCP? > * `uci show firewall` See comment above. > it prompts error when start the firewall: > > ``` > root@Travaler:~# /etc/init.d/firewall restart > Section @rule[10] (Restrict-input-captive) option 'dest_ip' specifies invalid value '!captive' > Section @rule[10] (Restrict-input-captive) skipped due to invalid options > Section @rule[15] (Allow-Whitelist) references unknown set 'wlist' > ``` That should have be an indication that your configuration is wrong. > * `uci show uhttpd` uhttpd sections for uspot are missing. > * `uci show dhcp` No DHCP configuration for the guest interface, no IP will be assigned. > installed uspot-www, but it is still not working, no ip address was assigned: > > ``` > config dhcp 'captive' > option interface 'captive' > option start '2' > option limit '1000' > option leasetime '2h' > # add the following for RFC8910 Captive Portal API - DNS name is setup below > #list dhcp_option '114,https://captive.example.org/api' > # optionally provide NTP server (if enabled on the device) - recommended for SSL cert validation > list dhcp_option_force '42,10.0.0.1' > > # add a local domain name for HTTPS support, name must match TLS certificate > config domain > option name 'captive.example.org' > option ip '10.0.0.1' > > # if using optional dynamic hosts whitelist > config ipset > list name 'wlist' # match value with whitelist ipset name in config/firewall > list domain 'my.whitelist1.domain' > list domain 'my.whitelist2.domain' > ``` Again, network `captive` doesn't exist in your config and neither does the ipset `wlist`. > Do you have complete configuration for credential authentication? The README has the complete configuration. Follow it to the letter or be consistent in your modifications.
Author
Owner

@a13519 commented on GitHub (Dec 1, 2025):

Thanks for the information, eventually i make the splash page popped up:

Image Image

but the Done button is not shown up at top right corner, from log I can see:

Image

does uspot use mac or ip in ipset? From log I can see mac address is populated, do you know which part has problem?

<!-- gh-comment-id:3595331475 --> @a13519 commented on GitHub (Dec 1, 2025): Thanks for the information, eventually i make the splash page popped up: <img height="1000" alt="Image" src="https://github.com/user-attachments/assets/d66991f8-16e4-4daf-8d6d-4b8fc663b127" /> <img height="1000" alt="Image" src="https://github.com/user-attachments/assets/78896520-eaf8-44ea-ac51-3ee4ab3ef9b5" /> but the Done button is not shown up at top right corner, from log I can see: <img width="886" height="196" alt="Image" src="https://github.com/user-attachments/assets/cd05774d-2665-4468-baf8-96e3a58f6480" /> does uspot use mac or ip in ipset? From log I can see mac address is populated, do you know which part has problem?
Author
Owner

@a13519 commented on GitHub (Dec 1, 2025):

By went through uSpot configuration, does latest uSpot support nft ipset? or only support legacy ipset?

After click Accept button the auth ipset is still empty:

Image
<!-- gh-comment-id:3595355936 --> @a13519 commented on GitHub (Dec 1, 2025): By went through uSpot configuration, does latest uSpot support nft ipset? or only support legacy ipset? After click Accept button the auth ipset is still empty: <img width="484" height="38" alt="Image" src="https://github.com/user-attachments/assets/13d30b2f-e313-4265-a7c7-f84875395c0c" />
Author
Owner

@a13519 commented on GitHub (Dec 1, 2025):

I manually add ip assigned to uspot ipset, but Done button is not shown up:

Image
<!-- gh-comment-id:3595480185 --> @a13519 commented on GitHub (Dec 1, 2025): I manually add ip assigned to uspot ipset, but Done button is not shown up: <img width="295" height="180" alt="Image" src="https://github.com/user-attachments/assets/19f232a1-3f0f-4162-a7a2-bde4f33dae47" />
Author
Owner

@f00b4r0 commented on GitHub (Dec 3, 2025):

If the Done button is not showing up it means the firewall set has not been updated. uspot doesn't use ipset it uses native nftables as supported by firewall4 so your ipset references are useless. Turn on debugging and check what's happening but it's almost certain something is misconfigured.

If you keep abusing the issue system by duplicating this issue I will block you. You are not entitled to a sameday personal support and I don't have time now to deal with your configuration problems.

<!-- gh-comment-id:3605465749 --> @f00b4r0 commented on GitHub (Dec 3, 2025): If the Done button is not showing up it means the firewall set has not been updated. uspot doesn't use ipset it uses native nftables as supported by firewall4 so your ipset references are useless. Turn on debugging and check what's happening but it's almost certain something is misconfigured. If you keep abusing the issue system by duplicating this issue I will block you. You are not entitled to a sameday personal support and I don't have time now to deal with your configuration problems.
Author
Owner

@a13519 commented on GitHub (Dec 4, 2025):

eventually I make it worked. it is ipset issue, now I can see Done button and successfully connected to internet.

Thanks!

<!-- gh-comment-id:3612637292 --> @a13519 commented on GitHub (Dec 4, 2025): eventually I make it worked. it is ipset issue, now I can see Done button and successfully connected to internet. Thanks!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/uspot#33
No description provided.