sensec / ddns-scripts_aliyun

OpenWrt/LEDE DDNS support for aliyun (阿里云)
GNU General Public License v2.0
346 stars 147 forks source link

修复三级域名时候的参数错误 #16

Open crypto75 opened 3 years ago

crypto75 commented 3 years ago

在阿里云上添加了home.xxx.com三级域名,并配置了主机记录为@

配置ddns脚本的时候lookup host为: home.xxx.com,domain为: @home.xxx.com,提示400 error。

检查了发出的request是:http://alidns.aliyuncs.com/?Action=DescribeSubDomainRecords&SubDomain=%40.home.xxx.com ... 里面只指定了SubDomain并没有指定Domain。

阿里的文档发现当Domain为空的时候,home会被作为主机名,而不是@。手动修改脚本添加了Domain以后,成功更新。

Tsuk1ko commented 2 years ago

我也发现了这个问题,但不应该修改公共参数,其他 API 是有做处理的,唯独 DescribeSubDomainRecords 漏了

只需要修改第 200 行即可

- aliyun_transfer "Action=DescribeSubDomainRecords" "SubDomain=${__HOST}.${__DOMAIN}" || write_log 14 "服务器通信失败"
+ aliyun_transfer "Action=DescribeSubDomainRecords" "SubDomain=${__HOST}.${__DOMAIN}" "DomainName=${__DOMAIN}" || write_log 14 "服务器通信失败"