2 * @brief DYNDNS Service class header. This class represents the DYNDNS service.
6 * @copyright Intra2net AG
10 #ifndef ServiceDyndns_H
11 #define ServiceDyndns_H
13 #include "service.hpp"
15 #include "httphelper.hpp"
17 #include <boost/shared_ptr.hpp>
21 class ServiceDyndns : public Service
26 friend class boost::serialization::access;
27 template<class Archive>
28 void serialize(Archive & ar, const unsigned int version)
30 ar & boost::serialization::base_object<Service>(*this);
33 std::string AlternativeServer; // Needed for NO-IP
36 HTTPHelper::Ptr HTTPHelp;
38 std::string assemble_base_url(const std::string& fqhn) const;
42 typedef boost::shared_ptr<ServiceDyndns> Ptr;
46 ServiceDyndns(const std::string& _protocol, const std::string& _hostname, const std::string& _login, const std::string& _password, const Logger::Ptr& _logger, const int _update_interval, const int _max_updates_within_interval, const int _max_equal_updates_in_succession, const int dns_cache_ttl, const std::string& proxy, const int proxy_port, const std::string& _alternative_server = "");
50 int perform_update(const std::string& ip);