Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion net/ddns-scripts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=ddns-scripts
PKG_VERSION:=2.8.2
PKG_RELEASE:=81
PKG_RELEASE:=82

PKG_LICENSE:=GPL-2.0

Expand Down Expand Up @@ -124,6 +124,16 @@ define Package/ddns-scripts-godaddy/description
Dynamic DNS Client scripts extension for 'godaddy.com API v1'.
endef

define Package/ddns-scripts-namesilo
$(call Package/ddns-scripts/Default)
TITLE:=Extension for namesilo.com API v1
DEPENDS:=ddns-scripts +wget-ssl
PROVIDES:=ddns-scripts_namesilo.com-v1
endef

define Package/ddns-scripts-namesilo/description
Dynamic DNS Client scripts extension for 'namesilo.com API v1'.
endef

define Package/ddns-scripts-digitalocean
$(call Package/ddns-scripts/Default)
Expand Down Expand Up @@ -437,6 +447,7 @@ define Package/ddns-scripts-services/install
rm $(1)/usr/share/ddns/default/cloud.google.com-v1.json
rm $(1)/usr/share/ddns/default/freedns.42.pl.json
rm $(1)/usr/share/ddns/default/godaddy.com-v1.json
rm $(1)/usr/share/ddns/default/namesilo.com-v1.json
rm $(1)/usr/share/ddns/default/digitalocean.com-v2.json
rm $(1)/usr/share/ddns/default/ovh.com.json
rm $(1)/usr/share/ddns/default/dnspod.cn.json
Expand Down Expand Up @@ -560,6 +571,23 @@ fi
exit 0
endef

define Package/ddns-scripts-namesilo/install
$(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_namesilo_com_v1.sh \
$(1)/usr/lib/ddns

$(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/default/namesilo.com-v1.json \
$(1)/usr/share/ddns/default
endef

define Package/ddns-scripts-namesilo/prerm
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop
fi
exit 0
endef

define Package/ddns-scripts-digitalocean/install
$(INSTALL_DIR) $(1)/usr/lib/ddns
Expand Down Expand Up @@ -889,6 +917,7 @@ $(eval $(call BuildPackage,ddns-scripts-cloudflare))
$(eval $(call BuildPackage,ddns-scripts-gcp))
$(eval $(call BuildPackage,ddns-scripts-freedns))
$(eval $(call BuildPackage,ddns-scripts-godaddy))
$(eval $(call BuildPackage,ddns-scripts-namesilo))
$(eval $(call BuildPackage,ddns-scripts-digitalocean))
$(eval $(call BuildPackage,ddns-scripts-ovh))
$(eval $(call BuildPackage,ddns-scripts-dnspod))
Expand Down
24 changes: 24 additions & 0 deletions net/ddns-scripts/files/usr/lib/ddns/update_namesilo_com_v1.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
# using following options from /etc/config/ddns
# option username - sub domain
# option password - api key
# option domain - domain
#
# variable __IP already defined with the ip-address to use for update
#

__TTL=3600

# wrap some routines
call_api() {
wget -q -O- "https://www.namesilo.com/api/$1?version=1&type=xml&key=$password&$2"
}
get_rrid() {
grep -o "<record_id>.*$username</host>" | sed 's/.*<record_id>//g;s/<.*//g'
}

# update subdomain record
rrid=$(call_api dnsListRecords "domain=$domain" | get_rrid)
call_api dnsUpdateRecord "domain=$domain&rrid=$rrid&rrhost=$username&rrvalue=$__IP&rrttl=$__TTL" | grep success
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "namesilo.com",
"ipv4": {
"url": "update_namesilo_com_v1.sh"
},
"ipv6": {
"url": "update_namesilo_com_v1.sh"
}
}