mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
import of dnsmasq-2.31.tar.gz
This commit is contained in:
94
dbus/DBus-interface
Normal file
94
dbus/DBus-interface
Normal file
@@ -0,0 +1,94 @@
|
||||
DBus support must be enabled at compile-time and run-time. Ensure
|
||||
that src/config.h contains the line
|
||||
|
||||
#define HAVE_DBUS.
|
||||
|
||||
and that /etc/dnsmasq.conf contains the line
|
||||
|
||||
enable-dbus
|
||||
|
||||
Because dnsmasq can operate stand-alone from the DBus, and may need to provide
|
||||
service before the dbus daemon is available, it will continue to run
|
||||
if the DBus connection is not available at startup. The DBus will be polled
|
||||
every 250ms until a connection is established. Start of polling and final
|
||||
connection establishment are both logged. When dnsmasq establishes a
|
||||
connection to the dbus, it sends the signal "Up". Anything controlling
|
||||
the server settings in dnsmasq should re-invoke the SetServers method
|
||||
(q.v.) when it sees this signal. This allows dnsmasq to be restarted
|
||||
and avoids startup races with the provider of nameserver information.
|
||||
|
||||
|
||||
Dnsmasq provides one service on the DBus: uk.org.thekelleys.dnsmasq
|
||||
and a single object: /uk/org/thekelleys/dnsmasq
|
||||
|
||||
Methods are of the form
|
||||
|
||||
uk.org.thekelleys.<method>
|
||||
|
||||
Available methods are:
|
||||
|
||||
GetVersion
|
||||
----------
|
||||
Returns a string containing the version of dnsmasq running.
|
||||
|
||||
ClearCache
|
||||
----------
|
||||
Returns nothing. Clears the domain name cache and re-reads
|
||||
/etc/hosts. The same as sending dnsmasq a HUP signal.
|
||||
|
||||
SetServers
|
||||
----------
|
||||
Returns nothing. Takes a set of arguments representing the new
|
||||
upstream DNS servers to be used by dnsmasq. IPv4 addresses are
|
||||
represented as a UINT32 (in network byte order) and IPv6 addresses
|
||||
are represented as sixteen BYTEs (since there is no UINT128 type).
|
||||
Each server address may be followed by one or more STRINGS, which are
|
||||
the domains for which the preceding server should be used.
|
||||
|
||||
Examples.
|
||||
|
||||
UINT32: <address1>
|
||||
UNIT32: <address2>
|
||||
|
||||
is equivalent to
|
||||
|
||||
--server=<address1> --server=<address2>
|
||||
|
||||
|
||||
UINT32 <address1>
|
||||
UINT32 <address2>
|
||||
STRING "somedomain.com"
|
||||
|
||||
is equivalent to
|
||||
|
||||
--server=<address1> --server=/somedomain.com/<address2>
|
||||
|
||||
UINT32 <address1>
|
||||
UINT32 <address2>
|
||||
STRING "somedomain.com"
|
||||
UINT32 <address3>
|
||||
STRING "anotherdomain.com"
|
||||
STRING "thirddomain.com"
|
||||
|
||||
is equivalent to
|
||||
|
||||
--server=<address1>
|
||||
--server=/somedomain.com/<address2>
|
||||
--server=/anotherdomain.com/thirddomain.com/<address3>
|
||||
|
||||
Am IPv4 address of 0.0.0.0 is interpreted as "no address, local only",
|
||||
so
|
||||
|
||||
UINT32: <0.0.0.0>
|
||||
STRING "local.domain"
|
||||
|
||||
is equivalent to
|
||||
|
||||
--local=/local.domain/
|
||||
|
||||
|
||||
Each call to SetServers completely replaces the set of servers
|
||||
specified by via the DBus, but it leaves any servers specified via the
|
||||
command line or /etc/dnsmasq.conf or /etc/resolv.conf alone.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user