chiark / gitweb /
timesyncd: consider too long packets as invalid
[elogind.git] / src / timesync / timesyncd-manager.h
index e6dd711f4850a08fdde392f7413e1e5882bdceba..c7efdc5dfb65209c5175ab5a78e0279c4e5e49aa 100644 (file)
 #include "list.h"
 #include "socket-util.h"
 #include "ratelimit.h"
-#include "timesyncd-server.h"
 
 typedef struct Manager Manager;
 
+#include "timesyncd-server.h"
+
 struct Manager {
         sd_event *event;
         sd_resolve *resolve;
 
+        LIST_HEAD(ServerName, system_servers);
         LIST_HEAD(ServerName, link_servers);
-        LIST_HEAD(ServerName, servers);
         LIST_HEAD(ServerName, fallback_servers);
 
         RateLimit ratelimit;
+        bool exhausted_servers;
 
         /* network */
         sd_event_source *network_event_source;
@@ -51,6 +53,7 @@ struct Manager {
         ServerName *current_server_name;
         ServerAddress *current_server_address;
         int server_socket;
+        int missed_replies;
         uint64_t packet_count;
         sd_event_source *event_timeout;
 
@@ -94,8 +97,9 @@ void manager_free(Manager *m);
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
 
-int manager_parse_config_file(Manager *m);
-int manager_add_server_string(Manager *m, const char *string);
-void manager_flush_names(Manager *m);
+void manager_set_server_name(Manager *m, ServerName *n);
+void manager_set_server_address(Manager *m, ServerAddress *a);
+void manager_flush_server_names(Manager *m, ServerType t);
+
 int manager_connect(Manager *m);
 void manager_disconnect(Manager *m);