Hi, thanks for your reply. First, please do not forget to keep the mailing list CC'ed. For transparency reasons, we have a policy here stating to keep public conversations public (please refer to https://wiki.ipfire.org/devel/contact for details). Second, your patches _did_ made it into patchwork. They can be found in the "ipfire" section - for your convenience, here is a list of all active patches submitted by you patchwork currently knows about: https://patchwork.ipfire.org/project/ipfire/list/?submitter=93 Once having logged in, you can mark patches as being "superseded", so they won't appear as being active anymore. Third, I have seen your updated patch and will comment on it separately the other day. Thanks, and best regards, Peter Müller > Hello Peter, > > thanks for your reply. Sorry for confusion about the patch. I tried to fullfill the requirements, but due to my low experience on the git process it went accidantely wrong. > > I will improve & resubmit my patch according to your comments. > > What ist the right way to mark patches as obsolete or remove them? My patches doesn‘t seem to enter https://patchwork.ipfire.org. > > Regards, > > Martin Krieger > > Von meinem iPad gesendet > >> Am 17.05.2021 um 21:31 schrieb Peter Müller : >> Hi, >> >> thank you for providing this. >> >> I regret to inform you that >> >> (a) both this patch and it's precursor violate the syntax of patches applicable to git, >> having parts of the description and various tags mangled into the RFC 5322 / MIME >> "Subject" header. >> >> You do not need to use "git send-email" as such (personally, I do not use it either, >> because my development environment cannot establish SMTP connections due to firewall >> policies). However, IPFire's development heavily relies on Git, so please figure out >> how to run the most basic commands such as "git commit" and "git format-patch" in >> order to properly submit your patches. >> >> (b) these patches each success each other, however missing appropriate version tags >> (such as [PATCH v2], [PATCH v3], etc.) in the RFC 5322 "Subject" header of their >> mails. >> >> Since you did not mark the obsoleted patches as being superseded in https://patchwork.ipfire.org/, >> either, this makes it hard to keep track of the latest version of your patch. Eventually, >> we might apply, commend or reject based on the wrong one, because of simply having >> overlooked there is a new, fixed version of it available. >> >> Apart from that, it would be good to see this patch tested with IPv6 and dual-stack scenarios >> as well - please see also my remark(s) on this below. If I understood the documentation of >> that DDNS provider correctly, you do not really need to supply two IP addresses having distinct >> families. Could you at least try executing this snippet with two different IPv4 addresses? >> >>> --- >>> README | 1 + >>> src/ddns/providers.py | 27 +++++++++++++++++++++++++++ >>> 2 files changed, 28 insertions(+) >>> >>> diff --git a/README b/README >>> index b6decb35c338..fa6ce5e598b8 100644 >>> --- a/README >>> +++ b/README >>> @@ -68,6 +68,7 @@ SUPPORTED PROVIDERS: >>> easydns.com >>> enom.com >>> entrydns.net >>> + feste-ip.net >>> freedns.afraid.org >>> inwx.com|de|at|ch|es >>> itsdns.de >>> diff --git a/src/ddns/providers.py b/src/ddns/providers.py >>> index 56e6620c78ab..009e2c9e337d 100644 >>> --- a/src/ddns/providers.py >>> +++ b/src/ddns/providers.py >>> @@ -1179,6 +1179,33 @@ class DDNSProviderEntryDNS(DDNSProvider): >>> raise DDNSUpdateError >>> >>> >>> +class DDNSProviderFesteIPNet(DDNSProtocolDynDNS2, DDNSProvider): >>> + handle = "feste-ip.net" >>> + name = "Feste-IP.Net" >>> + website = "https://www.feste-ip.net/" >>> + >>> + # Information about the format of the request is to be found >>> + # https://forum.feste-ip.net/viewtopic.php?f=13&t=469 >>> + >>> + myips = ("myip","myip2") >> >> Personal comment: Kinda ugly, but given the documentation of that provider, there is no >> other choice to do this here... >> >>> + >>> + url = "https://members.feste-ip.net/nic/update/" >>> + >>> + def update(self): >>> + data = { >>> + "hostname" : self.hostname >>> + } >>> + >>> + for proto in DDNSProvider.protocols: >>> + idx = 0 >>> + tmpip = self.get_address(proto) >>> + if tmpip: >>> + data[self.myips[idx]] = tmpip >>> + idx += 1 >>> + >>> + self.send_request(data) >> >> What is happening here if $tmpip equals a Boolean False? >> >>> + >>> + >>> class DDNSProviderFreeDNSAfraidOrg(DDNSProvider): >>> handle = "freedns.afraid.org" >>> name = "freedns.afraid.org" >> >> Thanks, and best regards, >> Peter Müller >