]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/shared/varlink-io.systemd.Resolve.c
cryptenroll: allow to use a public key on a token
[thirdparty/systemd.git] / src / shared / varlink-io.systemd.Resolve.c
CommitLineData
abef4a7b
LP
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2
3#include "varlink-io.systemd.Resolve.h"
4
5static VARLINK_DEFINE_STRUCT_TYPE(
6 ResolvedAddress,
7 VARLINK_DEFINE_FIELD(ifindex, VARLINK_INT, VARLINK_NULLABLE),
8 VARLINK_DEFINE_FIELD(family, VARLINK_INT, 0),
9 VARLINK_DEFINE_FIELD(address, VARLINK_INT, VARLINK_ARRAY));
10
11static VARLINK_DEFINE_METHOD(
12 ResolveHostname,
13 VARLINK_DEFINE_INPUT(ifindex, VARLINK_INT, VARLINK_NULLABLE),
14 VARLINK_DEFINE_INPUT(name, VARLINK_STRING, 0),
15 VARLINK_DEFINE_INPUT(family, VARLINK_INT, VARLINK_NULLABLE),
16 VARLINK_DEFINE_INPUT(flags, VARLINK_INT, VARLINK_NULLABLE),
17 VARLINK_DEFINE_OUTPUT_BY_TYPE(addresses, ResolvedAddress, VARLINK_ARRAY),
18 VARLINK_DEFINE_OUTPUT(name, VARLINK_STRING, 0),
19 VARLINK_DEFINE_OUTPUT(flags, VARLINK_INT, 0));
20
21static VARLINK_DEFINE_STRUCT_TYPE(
22 ResolvedName,
23 VARLINK_DEFINE_FIELD(ifindex, VARLINK_INT, VARLINK_NULLABLE),
24 VARLINK_DEFINE_FIELD(name, VARLINK_STRING, 0));
25
26static VARLINK_DEFINE_METHOD(
27 ResolveAddress,
28 VARLINK_DEFINE_INPUT(ifindex, VARLINK_INT, VARLINK_NULLABLE),
29 VARLINK_DEFINE_INPUT(family, VARLINK_INT, 0),
30 VARLINK_DEFINE_INPUT(address, VARLINK_INT, VARLINK_ARRAY),
31 VARLINK_DEFINE_INPUT(flags, VARLINK_INT, VARLINK_NULLABLE),
32 VARLINK_DEFINE_OUTPUT_BY_TYPE(names, ResolvedName, VARLINK_ARRAY),
33 VARLINK_DEFINE_OUTPUT(flags, VARLINK_INT, 0));
34
35static VARLINK_DEFINE_ERROR(NoNameServers);
36static VARLINK_DEFINE_ERROR(NoSuchResourceRecord);
37static VARLINK_DEFINE_ERROR(QueryTimedOut);
38static VARLINK_DEFINE_ERROR(MaxAttemptsReached);
39static VARLINK_DEFINE_ERROR(InvalidReply);
40static VARLINK_DEFINE_ERROR(QueryAborted);
41static VARLINK_DEFINE_ERROR(
42 DNSSECValidationFailed,
a72cf22d
YW
43 VARLINK_DEFINE_FIELD(result, VARLINK_STRING, 0),
44 VARLINK_DEFINE_FIELD(extendedDNSErrorCode, VARLINK_INT, VARLINK_NULLABLE),
45 VARLINK_DEFINE_FIELD(extendedDNSErrorMessage, VARLINK_STRING, VARLINK_NULLABLE));
abef4a7b
LP
46static VARLINK_DEFINE_ERROR(NoTrustAnchor);
47static VARLINK_DEFINE_ERROR(ResourceRecordTypeUnsupported);
48static VARLINK_DEFINE_ERROR(NetworkDown);
49static VARLINK_DEFINE_ERROR(NoSource);
50static VARLINK_DEFINE_ERROR(StubLoop);
51static VARLINK_DEFINE_ERROR(
52 DNSError,
a72cf22d
YW
53 VARLINK_DEFINE_FIELD(rcode, VARLINK_INT, 0),
54 VARLINK_DEFINE_FIELD(extendedDNSErrorCode, VARLINK_INT, VARLINK_NULLABLE),
55 VARLINK_DEFINE_FIELD(extendedDNSErrorMessage, VARLINK_STRING, VARLINK_NULLABLE));
abef4a7b
LP
56static VARLINK_DEFINE_ERROR(CNAMELoop);
57static VARLINK_DEFINE_ERROR(BadAddressSize);
58
59VARLINK_DEFINE_INTERFACE(
60 io_systemd_Resolve,
61 "io.systemd.Resolve",
62 &vl_method_ResolveHostname,
63 &vl_method_ResolveAddress,
64 &vl_type_ResolvedAddress,
65 &vl_type_ResolvedName,
66 &vl_error_NoNameServers,
67 &vl_error_NoSuchResourceRecord,
68 &vl_error_QueryTimedOut,
69 &vl_error_MaxAttemptsReached,
70 &vl_error_InvalidReply,
71 &vl_error_QueryAborted,
72 &vl_error_DNSSECValidationFailed,
73 &vl_error_NoTrustAnchor,
74 &vl_error_ResourceRecordTypeUnsupported,
75 &vl_error_NetworkDown,
76 &vl_error_NoSource,
77 &vl_error_StubLoop,
78 &vl_error_DNSError,
79 &vl_error_CNAMELoop,
80 &vl_error_BadAddressSize);