resolved-dns-transaction.h revision 0d2cd47617b423f37d7425be7a56ae2fca8ff9f6
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering This file is part of systemd.
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering Copyright 2014 Lennart Poettering
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering systemd is free software; you can redistribute it and/or modify it
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering under the terms of the GNU Lesser General Public License as published by
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering the Free Software Foundation; either version 2.1 of the License, or
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering (at your option) any later version.
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering systemd is distributed in the hope that it will be useful, but
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering Lesser General Public License for more details.
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering You should have received a copy of the GNU Lesser General Public License
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
2b442ac87838be7c326c984d8751c96dee7258abLennart Poetteringtypedef struct DnsTransaction DnsTransaction;
2b442ac87838be7c326c984d8751c96dee7258abLennart Poetteringtypedef enum DnsTransactionState DnsTransactionState;
2b442ac87838be7c326c984d8751c96dee7258abLennart Poetteringtypedef enum DnsTransactionSource DnsTransactionSource;
111befce5514d590e9b334a547559bd0ecf8df8dThomas Hindoe Paaboel Andersen DNS_TRANSACTION_ATTEMPTS_MAX_REACHED,
111befce5514d590e9b334a547559bd0ecf8df8dThomas Hindoe Paaboel Andersen DNS_TRANSACTION_INVALID_REPLY,
111befce5514d590e9b334a547559bd0ecf8df8dThomas Hindoe Paaboel Andersen _DNS_TRANSACTION_STATE_INVALID = -1
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering /* The active server */
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering /* the features of the DNS server at time of transaction start */
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering /* TCP connection logic, if we need it */
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering /* Query candidates this transaction is referenced by and that
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering * shall be notified about this specific transaction
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering * completing. */
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering /* Zone items this transaction is referenced by and that shall
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering * be notified about completion. */
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering LIST_FIELDS(DnsTransaction, transactions_by_scope);
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poetteringint dns_transaction_new(DnsTransaction **ret, DnsScope *s, DnsResourceKey *key);
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart PoetteringDnsTransaction* dns_transaction_free(DnsTransaction *t);
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poetteringvoid dns_transaction_gc(DnsTransaction *t);
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poetteringint dns_transaction_go(DnsTransaction *t);
7b50eb2efa122200e39646c19a29abab302f7d24Lennart Poetteringvoid dns_transaction_process_reply(DnsTransaction *t, DnsPacket *p);
0c8570287400ba57d3705a2f62dd26039121ea6fLennart Poetteringvoid dns_transaction_complete(DnsTransaction *t, DnsTransactionState state);
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poetteringconst char* dns_transaction_state_to_string(DnsTransactionState p) _const_;
0c8570287400ba57d3705a2f62dd26039121ea6fLennart PoetteringDnsTransactionState dns_transaction_state_from_string(const char *s) _pure_;
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poetteringconst char* dns_transaction_source_to_string(DnsTransactionSource p) _const_;
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart PoetteringDnsTransactionSource dns_transaction_source_from_string(const char *s) _pure_;
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering/* LLMNR Jitter interval, see RFC 4795 Section 7 */
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering#define LLMNR_JITTER_INTERVAL_USEC (100 * USEC_PER_MSEC)
a3db237b8f1b97867395e1419f39b8ba5749b777Lennart Poettering/* Maximum attempts to send DNS requests, across all DNS servers */
2b442ac87838be7c326c984d8751c96dee7258abLennart Poettering/* Maximum attempts to send LLMNR requests, see RFC 4795 Section 2.7 */