]>
Commit | Line | Data |
---|---|---|
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 |
11 | typedef struct ServerAddress ServerAddress; |
12 | typedef struct ServerName ServerName; | |
13 | ||
874ff7bf LP |
14 | typedef enum ServerType { |
15 | SERVER_SYSTEM, | |
16 | SERVER_FALLBACK, | |
17 | SERVER_LINK, | |
18 | } ServerType; | |
19 | ||
20 | #include "timesyncd-manager.h" | |
84e51726 LP |
21 | |
22 | struct 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 | ||
31 | struct 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 |
43 | int server_address_new(ServerName *n, ServerAddress **ret, const union sockaddr_union *sockaddr, socklen_t socklen); |
44 | ServerAddress* server_address_free(ServerAddress *a); | |
84e51726 | 45 | static 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 | |
49 | int server_name_new(Manager *m, ServerName **ret, ServerType type,const char *string); | |
50 | ServerName *server_name_free(ServerName *n); | |
51 | void server_name_flush_addresses(ServerName *n); |