From patchwork Thu Nov 28 10:45:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christof Weniger X-Patchwork-Id: 2615 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 47NvYw27Jcz43Tf for ; Thu, 28 Nov 2019 10:50:44 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 47NvYt2pXWz2Lp; Thu, 28 Nov 2019 10:50:42 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 47NvYt0rWfz2yBF; Thu, 28 Nov 2019 10:50:42 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 47NvYq5tnkz2xxq for ; Thu, 28 Nov 2019 10:50:39 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass Class 2 CA" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 47NvYq0X2Xz2Lp for ; Thu, 28 Nov 2019 10:50:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1574938218; bh=r1PSOniZvl9cmsfudw9K8eiPn8GTVl7Gwf/lUc8ahJk=; h=X-UI-Sender-Class:From:Subject:To:Date; b=F6p0FN+L/XS5BnCIvsqTVrcEO8Fn4aMIZ+uL4YsMH3bL9jLbaHBQa89BOZUpK1C0l a05ZLO9PM3HD0g3gtb9yDPeiFD36c2NTcAbqpxHzX3Z3Pbppm6YzE1/3JlIbWzPiLd xJkwpNAlQPHuasmJKYIenBb9GAcsc5K8/7IbkyJ8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [10.50.100.33] ([91.112.5.67]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MkHQh-1i7Ezs38ht-00kgF6 for ; Thu, 28 Nov 2019 11:45:09 +0100 From: Christof Weniger Subject: DDNS: add new Provider key-sytems.net (domaindiscount24) To: development@lists.ipfire.org Message-ID: <81dc1ed3-1179-42c6-784a-15f64a79508c@gmx.at> Date: Thu, 28 Nov 2019 11:45:08 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1 MIME-Version: 1.0 Content-Language: en-US X-Provags-ID: V03:K1:kq1+nlMmZ4XHnfsv/wDPZMyxQDGiUnJEw6PkbRRIxoGCZNlgygs 5jakjvxsIyUgGULnyWQj3T48FGx+q0umg+foTwWcuo3tllF0zXvQjFcxPkGO2YFmigns2Lk 1MCxdrL62orCAvz/Lfs8gtPy6dxIV5TR+R2V2pjX8Br3Ox6qsfsK6OgwGY1OM73M/MVTaRY +OrbU4LovrDeuGmUpqzGg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:pfxJXcmUkHU=:tBPce2PQhXzJuWt8uXjWfy hAPzrOMhepZBEMLe9w/sDrZdj3tJenmzzA7Q5ixKiqLvsRqx1TS10p16ZBsgvQshYlonDPyf9 ymesW4Gg9VM6NJQguE7a497P5XYU2qodCswIHz2EmmRYyMlt+r8eVRKINJIqAmtQe66iDkK+z sFLKbdfF3UQ6eV7eKY96IXYVqMBtwT0mtEgdlHwOCe2WmlDIrrkECHTSOcXkgCQFU3qG54f/Q xRvfk5UVIliT5dKGi8jdnth8I/S2VOk4x8WEJjnU4DjG71xKvcqV3EzdgRvZammgivsuKaGIF Id1/VMvW6WIAy8AxR3mFRXeKYpiEH7+6nAG4EBwKOjdCwniPeb1+TmZ34o9D+UE3vLYv0YxP9 nuUE5z0gLIIREwHbylmnKubGwowUhHPo84ditgP01beWYuhmpsftrMUfAP6DkbxL1VIEDomr/ pUWC3LL3powMDDIyqZXUCT93dowivLzJ1wGBMLfzgqYFFk3NeRpi367QKUrqALxYcw61Yxj7Y ITvtc6BzYQiSd832QVddCzVNAtneeF3CxiukPwkJ6iT8jH6EpXPaqKXy28Sshnnj2oztBJOFM c68LRvdN2vZVa7EYWz3gXsdGx9vaCy1sAlnEcIiDnfN6QX5DpAh+DldLbMeUJjqGtrtNG8FAL dZ0MmMacafQUH3+8qZSk02FNAav7s11a0pH7mSLA3asLcDkOfZXK9RljHoKIW4PP+nn5eszsQ cg3gHAvXfUMg0BExXD8bnkU6zwtlX/OsfWQRs3Kt7G7xjAy1H9H/H4rZMtdDDS2lMn3GYecdw 41CSFkl7SaRzERIwiXPnZIEFGIGvJDSC6FG80zpjPypkcVvf+MBWMrhiyeW15XHnkf32a604L N3BK/oTGnLGf1X89MP/kBJSGd+idDfzjBjvNeF8Wg/bUNFGx8mOo/S+1zkmuTUxuRv3dRMhHI x/CpdSYpQHzQPMrSlpV8NtPklgksVikTVYlLVExV5YxSRud4bV9xDrDzknUGQSRUxCakq6JLx eFJP9skG3fEXnRwaGcy6B3IN/OrqmzNe8ZMXVmGvnhmKK2iOUbLW0WuHAuP3AKl3ukQbrU2vH Wa4dDUdvQnDcfOzhNo6fKThYKAcU/qdnN82unSlan9EdLsqAbjhj0LPe7CYdTnZqfpvszviW8 xSXlb1+Z3CK7GFQlX9f2BnQISTmINcQGNpPaTKrkaSHCqbkYRHXM2LozP8GJSZUeCVBDZb7la TtPpQXBENY0MliOx+fG5yjac2zQ0iPe1AXe8mRHOK7jrwdC7j4svXqU3Ey9I= Authentication-Results: mail01.ipfire.org; dkim=pass header.d=gmx.net header.s=badeba3b8450 header.b=F6p0FN+L; dmarc=none; spf=pass (mail01.ipfire.org: domain of ChristofWeniger@gmx.at designates 212.227.15.15 as permitted sender) smtp.mailfrom=ChristofWeniger@gmx.at X-Rspamd-Queue-Id: 47NvYq0X2Xz2Lp X-Spamd-Result: default: False [-3.40 / 11.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmx.net:s=badeba3b8450]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; FREEMAIL_FROM(0.00)[gmx.at]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain,text/x-patch]; PREVIOUSLY_DELIVERED(0.00)[development@lists.ipfire.org]; TO_DN_NONE(0.00)[]; HAS_ATTACHMENT(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; SENDER_REP_HAM(0.00)[asn: 8560(-0.19), country: DE(-0.01), ip: 212.227.15.15(0.00)]; DMARC_NA(0.00)[gmx.at]; R_SPF_ALLOW(-0.20)[+ip4:212.227.15.0/25]; DKIM_TRACE(0.00)[gmx.net:+]; MX_GOOD(-0.01)[cached: mx00.emig.gmx.net]; BAYES_HAM(-2.89)[99.52%]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; FREEMAIL_ENVFROM(0.00)[gmx.at]; ASN(0.00)[asn:8560, ipnet:212.227.0.0/16, country:DE]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[212.227.15.15:from] X-Rspamd-Server: mail01.haj.ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Hi, I hope this is the correct way to submit this patch. https://www.domaindiscount24.com/ has its own ddns service runnning, which (for me) gets rid of the necessity of having to use an extra service for that. I tested the following patch on my system at home, and attached it to this mail. I started my quest at the community forum: https://community.ipfire.org/t/adding-new-ddns-provider/428/2 Christof diff --git a/README b/README index c75c448..b6decb3 100644 --- a/README +++ b/README @@ -72,6 +72,7 @@ SUPPORTED PROVIDERS: inwx.com|de|at|ch|es itsdns.de joker.com + key-systems.net loopia.se myonlineportal.net namecheap.com diff --git a/src/ddns/providers.py b/src/ddns/providers.py index 661fbcc..ccbf5e5 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -1204,6 +1204,40 @@ class DDNSProviderJoker(DDNSProtocolDynDNS2, DDNSProvider): url = "https://svc.joker.com/nic/update" +class DDNSProviderKEYSYSTEMS(DDNSProvider): + handle = "dynamicdns.key-systems.net" + name = "dynamicdns.key-systems.net" + website = "https://domaindiscount24.com/" + protocols = ("ipv4",) + + # There are only information provided by the domaindiscount24 how to + # perform an update with HTTP APIs + # https://www.domaindiscount24.com/faq/dynamic-dns + # examples: https://dynamicdns.key-systems.net/update.php?hostname=hostname&password=password&ip=auto + # https://dynamicdns.key-systems.net/update.php?hostname=hostname&password=password&ip=213.x.x.x&mx=213.x.x.x + + url = "https://dynamicdns.key-systems.net/update.php" + can_remove_records = False + + def update_protocol(self, proto): + data = { + "hostname" : self.hostname, + "password" : self.password, + "ip" : "auto", + } + + # Send update to the server. + response = self.send_request(self.url, data=data) + + # Handle success messages. + if response.code == 200: + return + + # If we got here, some other update error happened. + raise DDNSUpdateError + + + class DDNSProviderGoogle(DDNSProtocolDynDNS2, DDNSProvider): handle = "domains.google.com" name = "Google Domains"