ddns-dnspod_cn_v3: can't use wildcard(*) in domain
Open
Nobody has claimed this yet.
bug
- Dominant language
- Makefile
- Stars
- 4.6k
- Forks
- 4k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 134
Description
Package Name
ddns
Maintainer
@feckert
OpenWrt Version
24.10.2
OpenWrt Target/Subtarget
24.10.2
Steps to Reproduce
- open ddns in Luci app
- select dnspod_cn_v3 as ddns provider
- fill domain in format like *.xxx.yyy
- since the the domain should be url format, so i also tried %2A.xxx.yyy
Actual Behaviour
with *.xxx.yyy
203111 : #> /usr/bin/curl -RsS -o /var/run/ddns/a.dat --stderr /var/run/ddns/a.err --interface br-lan --noproxy '*' --request POST https://dnspod.tencentcloudapi.com --data '{"Domain":"*.xxx.yyy","Offset":0,"Limit":1,"RecordType":"A","Subdomain":"*.xxx.yyy"}' --header 'HOST: dnspod.tencentcloudapi.com' --header 'Content-Type: application/json' --header 'X-TC-Action: DescribeRecordList' --header 'X-TC-Version: 2021-03-23' --header 'X-TC-Timestamp: 1758371469' --header 'Authorization: TC3-HMAC-SHA256 Credential=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/2025-09-20/dnspod/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
203112 ERROR : cURL Response Error: 'InvalidParameter.DomainInvalid'
203112 : {"Response":{"Error":{"Code":"InvalidParameter.DomainInvalid","Message":"u57dfu540du4e0du6b63u786euff0cu8bf7u8f93u5165u4e3bu57dfu540duff0cu5982 dnspod.cnu3002"},"RequestId":"9b778899-22ce-4fd4-8add-f5b9435e0d5c"}}
with %2A.xxx.yyy
204145 : ************ ************** ************** **************
204145 note : PID '21546' started at 2025-09-20 20:41
204145 : ddns version : 2.8.2-49
204145 : uci configuration:
ddns.a.bind_network='lan'
ddns.a.check_unit='minutes'
ddns.a.domain='%2A.xxx.yyy'
ddns.a.enabled='1'
ddns.a.force_unit='minutes'
ddns.a.interface='br-lan'
ddns.a.ip_source='web'
ddns.a.ip_url='http://checkip.dyndns.com'
ddns.a.lookup_host='aa.xxx.yyy'
ddns.a.password='***PW***'
ddns.a.retry_unit='seconds'
ddns.a.service_name='dnspod.cn-v3'
ddns.a.use_ipv6='0'
ddns.a.use_syslog='2'
ddns.a.username='xxxxxxxxxxxxxx'
ddns.a=service
204145 : verbose mode : 0 - run normal, NO console output
204145 CRIT : sanitize on domain found characters outside allowed subset - TERMINATE
I believe the parameter should be sth like:
"Domain":"xxx.yyy","Subdomain":"* (%2A if need url format)"
instead of
"Domain":"*.xxx.yyy","Subdomain":"*.xxx.yyy"
Confirmation Checklist
- The package is maintained in this repository.
- I understand that issues related to the base OpenWrt repository or LuCI repository will be closed.
- I am reporting an issue for OpenWrt, not an unsupported fork.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the ddns provider implementation for dnspod.cn-v3 and trace how the Domain and Subdomain values are built for the DescribeRecordList request. Reproduce with the configurations and curl output in the issue, then verify that wildcard domains pass sanitization and produce the expected Tencent Cloud API parameters.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json, shell
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100