]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/timesync/timesyncd-server.h
tree-wide: beautify remaining copyright statements
[thirdparty/systemd.git] / src / timesync / timesyncd-server.h
CommitLineData
53e1b683 1/* SPDX-License-Identifier: LGPL-2.1+ */
84e51726
LP
2#pragma once
3
4/***
96b2fb93 5 Copyright © 2014 Kay Sievers
84e51726
LP
6***/
7
874ff7bf 8#include "list.h"
71d35b6b 9#include "socket-util.h"
874ff7bf 10
84e51726
LP
11typedef struct ServerAddress ServerAddress;
12typedef struct ServerName ServerName;
13
874ff7bf
LP
14typedef enum ServerType {
15 SERVER_SYSTEM,
16 SERVER_FALLBACK,
17 SERVER_LINK,
18} ServerType;
19
20#include "timesyncd-manager.h"
84e51726
LP
21
22struct ServerAddress {
874ff7bf
LP
23 ServerName *name;
24
84e51726
LP
25 union sockaddr_union sockaddr;
26 socklen_t socklen;
874ff7bf 27
84e51726
LP
28 LIST_FIELDS(ServerAddress, addresses);
29};
30
31struct ServerName {
874ff7bf
LP
32 Manager *manager;
33
34 ServerType type;
84e51726 35 char *string;
874ff7bf
LP
36
37 bool marked:1;
38
84e51726
LP
39 LIST_HEAD(ServerAddress, addresses);
40 LIST_FIELDS(ServerName, names);
41};
42
874ff7bf
LP
43int server_address_new(ServerName *n, ServerAddress **ret, const union sockaddr_union *sockaddr, socklen_t socklen);
44ServerAddress* server_address_free(ServerAddress *a);
84e51726 45static inline int server_address_pretty(ServerAddress *a, char **pretty) {
3b1c5241 46 return sockaddr_pretty(&a->sockaddr.sa, a->socklen, true, true, pretty);
84e51726 47}
874ff7bf
LP
48
49int server_name_new(Manager *m, ServerName **ret, ServerType type,const char *string);
50ServerName *server_name_free(ServerName *n);
51void server_name_flush_addresses(ServerName *n);