diff options
Diffstat (limited to 'src/timesync/timesyncd-server.h')
-rw-r--r-- | src/timesync/timesyncd-server.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/timesync/timesyncd-server.h b/src/timesync/timesyncd-server.h index a1312bfe0c..243b44a0eb 100644 --- a/src/timesync/timesyncd-server.h +++ b/src/timesync/timesyncd-server.h @@ -21,24 +21,47 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include "socket-util.h" +#include "list.h" + typedef struct ServerAddress ServerAddress; typedef struct ServerName ServerName; -#include "socket-util.h" -#include "list.h" +typedef enum ServerType { + SERVER_SYSTEM, + SERVER_FALLBACK, + SERVER_LINK, +} ServerType; + +#include "timesyncd-manager.h" struct ServerAddress { + ServerName *name; + union sockaddr_union sockaddr; socklen_t socklen; + LIST_FIELDS(ServerAddress, addresses); }; struct ServerName { + Manager *manager; + + ServerType type; char *string; + + bool marked:1; + LIST_HEAD(ServerAddress, addresses); LIST_FIELDS(ServerName, names); }; +int server_address_new(ServerName *n, ServerAddress **ret, const union sockaddr_union *sockaddr, socklen_t socklen); +ServerAddress* server_address_free(ServerAddress *a); static inline int server_address_pretty(ServerAddress *a, char **pretty) { return sockaddr_pretty(&a->sockaddr.sa, a->socklen, true, pretty); } + +int server_name_new(Manager *m, ServerName **ret, ServerType type,const char *string); +ServerName *server_name_free(ServerName *n); +void server_name_flush_addresses(ServerName *n); |