diff options
author | San Mehat <san@google.com> | 2010-01-20 09:56:15 -0800 |
---|---|---|
committer | San Mehat <san@google.com> | 2010-01-20 10:55:09 -0800 |
commit | ffd68729961f7383f2e35494a03ccdef20f86c98 (patch) | |
tree | 25d5c558caaceb322fc3541d922fa56a1adb6d22 /dbus | |
parent | 8d761fe81866f3efe760adf225c57da8ee9cbda8 (diff) | |
download | android_external_dnsmasq-ffd68729961f7383f2e35494a03ccdef20f86c98.tar.gz android_external_dnsmasq-ffd68729961f7383f2e35494a03ccdef20f86c98.tar.bz2 android_external_dnsmasq-ffd68729961f7383f2e35494a03ccdef20f86c98.zip |
dnsmasq: Direct import of version 2.51
Signed-off-by: San Mehat <san@google.com>
Diffstat (limited to 'dbus')
-rwxr-xr-x | dbus/DBus-interface | 131 | ||||
-rwxr-xr-x | dbus/dnsmasq.conf | 14 |
2 files changed, 145 insertions, 0 deletions
diff --git a/dbus/DBus-interface b/dbus/DBus-interface new file mode 100755 index 0000000..8d578ca --- /dev/null +++ b/dbus/DBus-interface @@ -0,0 +1,131 @@ +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 + +1. METHODS +---------- + +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. + +2. SIGNALS +---------- + +If dnsmasq's DHCP server is active, it will send signals over DBUS whenever +the DHCP lease database changes. Think of these signals as transactions on +a database with the IP address acting as the primary key. + +Signals are of the form: + +uk.org.thekelleys.<signal> + +and their parameters are: + +STRING "192.168.1.115" +STRING "01:23:45:67:89:ab" +STRING "hostname.or.fqdn" + + +Available signals are: + +DhcpLeaseAdded +--------------- + +This signal is emitted when a DHCP lease for a given IP address is created. + +DhcpLeaseDeleted +---------------- + +This signal is emitted when a DHCP lease for a given IP address is deleted. + +DhcpLeaseUpdated +---------------- + +This signal is emitted when a DHCP lease for a given IP address is updated. + diff --git a/dbus/dnsmasq.conf b/dbus/dnsmasq.conf new file mode 100755 index 0000000..82b1c76 --- /dev/null +++ b/dbus/dnsmasq.conf @@ -0,0 +1,14 @@ +<!DOCTYPE busconfig PUBLIC + "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<busconfig> + <policy user="root"> + <allow own="uk.org.thekelleys.dnsmasq"/> + <allow send_destination="uk.org.thekelleys.dnsmasq"/> + </policy> + <policy context="default"> + <deny own="uk.org.thekelleys.dnsmasq"/> + <deny send_destination="uk.org.thekelleys.dnsmasq"/> + </policy> +</busconfig> + |