Code Monkey home page Code Monkey logo

rrthomas / ddclient Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ddclient/ddclient

0.0 3.0 1.0 1.5 MB

(Friendly fork/continuation.) Ddclient is a Perl client used to update dynamic DNS entries for accounts on 'Dynamic DNS Network Services' free DNS service. It currently supports a lot of different routers and a few different services.

License: GNU General Public License v2.0

Shell 2.56% Makefile 0.45% M4 1.73% Perl 95.24% Nix 0.01%
dyndns dyndns-client dyndns-updater

ddclient's Issues

Request for collaboration

The original project at https://github.com/ddclient/ddclient has been archived, so those of us offering to take it over can no longer discuss things on its issue tracker.

As mentioned in ddclient#528 (comment) I am happy to take on the project. Since upstream has now been discontinued, I will definitely maintain the project for my own use short-term. If there's sufficient interest from e.g. packagers and collaborators, I'll be happy to maintain it longer-term too.

Why use my fork? I don't have particular expertise in DNS, but I'm a long-term user of ddclient, and I have a history of taking other unmaintained projects and maintaining them for a long time, e.g.:

The previous maintainer of ddclient rightly pointed out that the code base is not in a great state, and recommended that others use a different dynamic DNS client, so why continue with ddclient?

  • Because it's familiar
  • Because it supports a huge range of dynamic DNS providers.

Others have suggested rewriting ddclient in a more modern language than Perl. I sympathise with this aim; indeed, I have rewritten other projects that I have taken on, but I don't think it's a great idea for ddclient; at least, I don't have the time. Instead, if I find there is interest in my fork, I plan to make some radical simplifications to make ddclient more maintainable long-term:

  • Remove support for finding IP address via many different routers. Quite simply, because I have never needed this myself.
  • Remove duplicate support for internet communication: use curl, rather than WWW::Curl::Easy or the non-Curl code.
  • Remove out-of-date/duplicate providers.

In general, I will concentrate on the core functionality of updating dynamic DNS entries, and tend to remove everything else, while retaining backwards compatibility on the command-line and in config files. In short, I will try to keep things working as well as I can for existing users.

3.11 release plan

A quick backwards-compatible release with essential bug-fixes and functionality enhancements only. To-do list:

  • Fix caching problems (#3)
  • Update changelog
  • Contact downstream package maintainers? (Change of maintainers, change of curl dependency to be required, ...)
  • Merge back into the original repo
  • Set up signed tags (and commits)

Providers: Fix various old caching issues

Some providers have improper implementations with regards to caching. It seems that these implementations never did right in the first place.

These fixes are not required for the v3.11 release, that is handled in #10 .

Providers without proper cache parameter implementation:

  • 1984
  • Njalla
  • nsupdate

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.