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