diff --git a/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.php b/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.php
index b0b497080..9432b5062 100644
--- a/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.php
+++ b/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.php
@@ -56,7 +56,7 @@ class DynDNS extends BaseModel
continue;
}
$srv = (string)$node->server;
- if ((string)$node->protocol == 'post') {
+ if (in_array((string)$node->protocol, ['get', 'post', 'put'])) {
if (empty($srv) || filter_var($srv, FILTER_VALIDATE_URL) === false) {
$messages->appendMessage(
new Message(
diff --git a/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml b/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml
index aeeaa9074..62f707d38 100644
--- a/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml
+++ b/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml
@@ -95,7 +95,9 @@
DynDNS 1
DynDNS 2
+ Custom GET
Custom POST
+ Custom PUT
diff --git a/dns/ddclient/src/opnsense/scripts/ddclient/lib/account/dyndns2.py b/dns/ddclient/src/opnsense/scripts/ddclient/lib/account/dyndns2.py
index dfd2ae2aa..34d5feeb3 100755
--- a/dns/ddclient/src/opnsense/scripts/ddclient/lib/account/dyndns2.py
+++ b/dns/ddclient/src/opnsense/scripts/ddclient/lib/account/dyndns2.py
@@ -67,11 +67,12 @@ class DynDNS2(BaseAccount):
def execute(self):
if super().execute():
protocol = self.settings.get('protocol', None)
- if protocol == 'post':
+ if protocol in [ 'get', 'post', 'put' ]:
url = self.settings.get('server')
url = url.replace('__MYIP__', self.current_address)
url = url.replace('__HOSTNAME__', self.settings.get('hostnames'))
- req = requests.post(
+ req = requests.request(
+ method=protocol,
url=url,
headers={'User-Agent': 'OPNsense-dyndns'},
auth=HTTPBasicAuth(self.settings.get('username'), self.settings.get('password'))