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