Annotation of embedaddon/dnsmasq/dbus/DBus-interface, revision 1.1

1.1     ! misho       1: DBus support must be enabled at compile-time and run-time. Ensure 
        !             2: that src/config.h contains the line
        !             3: 
        !             4: #define HAVE_DBUS.
        !             5: 
        !             6: and that /etc/dnsmasq.conf contains the line
        !             7: 
        !             8: enable-dbus
        !             9: 
        !            10: Because dnsmasq can operate stand-alone from the DBus, and may need to provide
        !            11: service before the dbus daemon is available, it will continue to run
        !            12: if the DBus connection is not available at startup. The DBus will be polled 
        !            13: every 250ms until a connection is established. Start of polling and final
        !            14: connection establishment are both logged. When dnsmasq establishes a
        !            15: connection to the dbus, it sends the signal "Up". Anything controlling
        !            16: the server settings in dnsmasq should re-invoke the SetServers method
        !            17: (q.v.) when it sees this signal. This allows dnsmasq to be restarted
        !            18: and avoids startup races with the provider of nameserver information.
        !            19: 
        !            20: 
        !            21: Dnsmasq provides one service on the DBus: uk.org.thekelleys.dnsmasq
        !            22: and a single object: /uk/org/thekelleys/dnsmasq 
        !            23: The name of the service may be changed by giving an argument to --enable-dbus.
        !            24: 
        !            25: 1. METHODS
        !            26: ----------
        !            27: 
        !            28: Methods are of the form
        !            29: 
        !            30: uk.org.thekelleys.<method>
        !            31: 
        !            32: Available methods are:
        !            33: 
        !            34: GetVersion
        !            35: ----------
        !            36: Returns a string containing the version of dnsmasq running.
        !            37: 
        !            38: ClearCache
        !            39: ----------
        !            40: Returns nothing. Clears the domain name cache and re-reads
        !            41: /etc/hosts. The same as sending dnsmasq a HUP signal.
        !            42: 
        !            43: SetServers
        !            44: ----------
        !            45: Returns nothing. Takes a set of arguments representing the new
        !            46: upstream DNS servers to be used by dnsmasq. IPv4 addresses are
        !            47: represented as a UINT32 (in network byte order) and IPv6 addresses
        !            48: are represented as sixteen BYTEs (since there is no UINT128 type).
        !            49: Each server address may be followed by one or more STRINGS, which are
        !            50: the domains for which the preceding server should be used.
        !            51: 
        !            52: Examples.
        !            53: 
        !            54: UINT32: <address1>
        !            55: UNIT32: <address2>
        !            56: 
        !            57: is equivalent to
        !            58: 
        !            59: --server=<address1> --server=<address2>
        !            60: 
        !            61: 
        !            62: UINT32 <address1>
        !            63: UINT32 <address2>
        !            64: STRING "somedomain.com"
        !            65: 
        !            66: is equivalent to
        !            67: 
        !            68: --server=<address1> --server=/somedomain.com/<address2> 
        !            69: 
        !            70: UINT32 <address1>
        !            71: UINT32 <address2>
        !            72: STRING "somedomain.com"
        !            73: UINT32 <address3>
        !            74: STRING "anotherdomain.com"
        !            75: STRING "thirddomain.com"
        !            76: 
        !            77: is equivalent to
        !            78: 
        !            79: --server=<address1> 
        !            80: --server=/somedomain.com/<address2> 
        !            81: --server=/anotherdomain.com/thirddomain.com/<address3>
        !            82: 
        !            83: Am IPv4 address of 0.0.0.0 is interpreted as "no address, local only",
        !            84: so
        !            85: 
        !            86: UINT32: <0.0.0.0>
        !            87: STRING  "local.domain"
        !            88: 
        !            89: is equivalent to
        !            90: 
        !            91: --local=/local.domain/
        !            92: 
        !            93: 
        !            94: Each call to SetServers completely replaces the set of servers
        !            95: specified by via the DBus, but it leaves any servers specified via the
        !            96: command line or /etc/dnsmasq.conf or /etc/resolv.conf alone.
        !            97: 
        !            98: SetServersEx
        !            99: ------------
        !           100: 
        !           101: This function is more flexible and the SetServers function, in that it can
        !           102: handle address scoping, port numbers, and is easier for clients to use.
        !           103: 
        !           104: Returns nothing. Takes a set of arguments representing the new
        !           105: upstream DNS servers to be used by dnsmasq. All addresses (both IPv4 and IPv6)
        !           106: are represented as STRINGS.  Each server address may be followed by one or more
        !           107: STRINGS, which are the domains for which the preceding server should be used.
        !           108: 
        !           109: This function takes an array of STRING arrays, where each inner array represents
        !           110: a set of DNS servers and domains for which those servers may be used.  Each
        !           111: string represents a list of upstream DNS servers first, and domains second.
        !           112: Mixing of domains and servers within a the string array is not allowed.
        !           113: 
        !           114: Examples.
        !           115: 
        !           116: [
        !           117:   ["1.2.3.4", "foobar.com"],
        !           118:   ["1003:1234:abcd::1%eth0", "eng.mycorp.com", "lab.mycorp.com"]
        !           119: ]
        !           120: 
        !           121: is equivalent to
        !           122: 
        !           123: --server=/foobar.com/1.2.3.4 \
        !           124:   --server=/eng.mycorp.com/lab.mycorp.com/1003:1234:abcd::1%eth0
        !           125: 
        !           126: An IPv4 address of 0.0.0.0 is interpreted as "no address, local only",
        !           127: so
        !           128: 
        !           129: [ ["0.0.0.0", "local.domain"] ]
        !           130: 
        !           131: is equivalent to
        !           132: 
        !           133: --local=/local.domain/
        !           134: 
        !           135: 
        !           136: Each call to SetServersEx completely replaces the set of servers
        !           137: specified by via the DBus, but it leaves any servers specified via the
        !           138: command line or /etc/dnsmasq.conf or /etc/resolv.conf alone.
        !           139: 
        !           140: 
        !           141: SetDomainServers
        !           142: ----------------
        !           143: 
        !           144: Yes another variation for setting DNS servers, with the capability of
        !           145: SetServersEx, but without using arrays of arrays, which are not
        !           146: sendable with dbus-send. The arguments are an array of strings which
        !           147: are identical to the equivalent arguments --server, so the example
        !           148: for SetServersEx is represented as
        !           149: 
        !           150: [
        !           151:   "/foobar.com/1.2.3.4"
        !           152:   "/eng.mycorp.com/lab.mycorp.com/1003:1234:abcd::1%eth0"
        !           153: ]
        !           154: 
        !           155: 
        !           156: 
        !           157: 2. SIGNALS
        !           158: ----------
        !           159: 
        !           160: If dnsmasq's DHCP server is active, it will send signals over DBUS whenever
        !           161: the DHCP lease database changes. Think of these signals as transactions on
        !           162: a database with the IP address acting as the primary key.
        !           163: 
        !           164: Signals are of the form:
        !           165: 
        !           166: uk.org.thekelleys.<signal>
        !           167: 
        !           168: and their parameters are:
        !           169: 
        !           170: STRING "192.168.1.115"
        !           171: STRING "01:23:45:67:89:ab"
        !           172: STRING "hostname.or.fqdn"
        !           173: 
        !           174: 
        !           175: Available signals are:
        !           176: 
        !           177: DhcpLeaseAdded
        !           178: ---------------
        !           179: 
        !           180: This signal is emitted when a DHCP lease for a given IP address is created.
        !           181: 
        !           182: DhcpLeaseDeleted
        !           183: ----------------
        !           184: 
        !           185: This signal is emitted when a DHCP lease for a given IP address is deleted.
        !           186: 
        !           187: DhcpLeaseUpdated
        !           188: ----------------
        !           189: 
        !           190: This signal is emitted when a DHCP lease for a given IP address is updated.
        !           191:  

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>