Protocol constants
[D-Bus low-level public API]

D-Bus protocol constantsDefines constants which are part of the D-Bus protocol. More...

Defines

#define DBUS_LITTLE_ENDIAN   ('l')
 LSB first.
#define DBUS_BIG_ENDIAN   ('B')
 MSB first.
#define DBUS_MAJOR_PROTOCOL_VERSION   1
 Protocol version.
#define DBUS_TYPE_INVALID   ((int) '\0')
 Never a legitimate type.
#define DBUS_TYPE_INVALID_AS_STRING   "\0"
#define DBUS_TYPE_BYTE   ((int) 'y')
#define DBUS_TYPE_BYTE_AS_STRING   "y"
#define DBUS_TYPE_BOOLEAN   ((int) 'b')
#define DBUS_TYPE_BOOLEAN_AS_STRING   "b"
#define DBUS_TYPE_INT16   ((int) 'n')
#define DBUS_TYPE_INT16_AS_STRING   "n"
#define DBUS_TYPE_UINT16   ((int) 'q')
#define DBUS_TYPE_UINT16_AS_STRING   "q"
#define DBUS_TYPE_INT32   ((int) 'i')
#define DBUS_TYPE_INT32_AS_STRING   "i"
#define DBUS_TYPE_UINT32   ((int) 'u')
#define DBUS_TYPE_UINT32_AS_STRING   "u"
#define DBUS_TYPE_INT64   ((int) 'x')
#define DBUS_TYPE_INT64_AS_STRING   "x"
#define DBUS_TYPE_UINT64   ((int) 't')
#define DBUS_TYPE_UINT64_AS_STRING   "t"
#define DBUS_TYPE_DOUBLE   ((int) 'd')
#define DBUS_TYPE_DOUBLE_AS_STRING   "d"
#define DBUS_TYPE_STRING   ((int) 's')
#define DBUS_TYPE_STRING_AS_STRING   "s"
#define DBUS_TYPE_OBJECT_PATH   ((int) 'o')
#define DBUS_TYPE_OBJECT_PATH_AS_STRING   "o"
#define DBUS_TYPE_SIGNATURE   ((int) 'g')
#define DBUS_TYPE_SIGNATURE_AS_STRING   "g"
#define DBUS_TYPE_ARRAY   ((int) 'a')
#define DBUS_TYPE_ARRAY_AS_STRING   "a"
#define DBUS_TYPE_VARIANT   ((int) 'v')
#define DBUS_TYPE_VARIANT_AS_STRING   "v"
#define DBUS_TYPE_STRUCT   ((int) 'r')
 STRUCT and DICT_ENTRY are sort of special since their codes can't appear in a type string, instead DBUS_STRUCT_BEGIN_CHAR/DBUS_DICT_ENTRY_BEGIN_CHAR have to appear.
#define DBUS_TYPE_STRUCT_AS_STRING   "r"
#define DBUS_TYPE_DICT_ENTRY   ((int) 'e')
#define DBUS_TYPE_DICT_ENTRY_AS_STRING   "e"
#define DBUS_NUMBER_OF_TYPES   (16)
 Does not count INVALID.
#define DBUS_STRUCT_BEGIN_CHAR   ((int) '(')
#define DBUS_STRUCT_BEGIN_CHAR_AS_STRING   "("
#define DBUS_STRUCT_END_CHAR   ((int) ')')
#define DBUS_STRUCT_END_CHAR_AS_STRING   ")"
#define DBUS_DICT_ENTRY_BEGIN_CHAR   ((int) '{')
#define DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING   "{"
#define DBUS_DICT_ENTRY_END_CHAR   ((int) '}')
#define DBUS_DICT_ENTRY_END_CHAR_AS_STRING   "}"
#define DBUS_MAXIMUM_NAME_LENGTH   255
 Max length in bytes of a bus name, interface, or member (not object path, paths are unlimited).
#define DBUS_MAXIMUM_SIGNATURE_LENGTH   255
 This one is 255 so it fits in a byte.
#define DBUS_MAXIMUM_MATCH_RULE_LENGTH   1024
 Max length of a match rule string; to keep people from hosing the daemon with some huge rule.
#define DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER   63
 Max arg number you can match on in a match rule, e.g.
#define DBUS_MAXIMUM_ARRAY_LENGTH   (67108864)
 Max length of a marshaled array in bytes (64M, 2^26) We use signed int for lengths so must be INT_MAX or less.
#define DBUS_MAXIMUM_ARRAY_LENGTH_BITS   26
 Number of bits you need in an unsigned to store the max array size.
#define DBUS_MAXIMUM_MESSAGE_LENGTH   (DBUS_MAXIMUM_ARRAY_LENGTH * 2)
 The maximum total message size including header and body; similar rationale to max array size.
#define DBUS_MAXIMUM_MESSAGE_LENGTH_BITS   27
 Number of bits you need in an unsigned to store the max message size.
#define DBUS_MAXIMUM_TYPE_RECURSION_DEPTH   32
 Depth of recursion in the type tree.
#define DBUS_MESSAGE_TYPE_INVALID   0
#define DBUS_MESSAGE_TYPE_METHOD_CALL   1
#define DBUS_MESSAGE_TYPE_METHOD_RETURN   2
#define DBUS_MESSAGE_TYPE_ERROR   3
#define DBUS_MESSAGE_TYPE_SIGNAL   4
#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED   0x1
#define DBUS_HEADER_FLAG_NO_AUTO_START   0x2
#define DBUS_HEADER_FIELD_INVALID   0
#define DBUS_HEADER_FIELD_PATH   1
#define DBUS_HEADER_FIELD_INTERFACE   2
#define DBUS_HEADER_FIELD_MEMBER   3
#define DBUS_HEADER_FIELD_ERROR_NAME   4
#define DBUS_HEADER_FIELD_REPLY_SERIAL   5
#define DBUS_HEADER_FIELD_DESTINATION   6
#define DBUS_HEADER_FIELD_SENDER   7
#define DBUS_HEADER_FIELD_SIGNATURE   8
#define DBUS_HEADER_FIELD_LAST   DBUS_HEADER_FIELD_SIGNATURE
#define DBUS_HEADER_SIGNATURE
 Header format is defined as a signature: byte byte order byte message type ID byte flags byte protocol version uint32 body length uint32 serial array of struct (byte,variant) (field name, value).
#define DBUS_MINIMUM_HEADER_SIZE   16
 The smallest header size that can occur.
#define DBUS_ERROR_FAILED   "org.freedesktop.DBus.Error.Failed"
#define DBUS_ERROR_NO_MEMORY   "org.freedesktop.DBus.Error.NoMemory"
#define DBUS_ERROR_SERVICE_UNKNOWN   "org.freedesktop.DBus.Error.ServiceUnknown"
#define DBUS_ERROR_NAME_HAS_NO_OWNER   "org.freedesktop.DBus.Error.NameHasNoOwner"
#define DBUS_ERROR_NO_REPLY   "org.freedesktop.DBus.Error.NoReply"
#define DBUS_ERROR_IO_ERROR   "org.freedesktop.DBus.Error.IOError"
#define DBUS_ERROR_BAD_ADDRESS   "org.freedesktop.DBus.Error.BadAddress"
#define DBUS_ERROR_NOT_SUPPORTED   "org.freedesktop.DBus.Error.NotSupported"
#define DBUS_ERROR_LIMITS_EXCEEDED   "org.freedesktop.DBus.Error.LimitsExceeded"
#define DBUS_ERROR_ACCESS_DENIED   "org.freedesktop.DBus.Error.AccessDenied"
#define DBUS_ERROR_AUTH_FAILED   "org.freedesktop.DBus.Error.AuthFailed"
#define DBUS_ERROR_NO_SERVER   "org.freedesktop.DBus.Error.NoServer"
#define DBUS_ERROR_TIMEOUT   "org.freedesktop.DBus.Error.Timeout"
#define DBUS_ERROR_NO_NETWORK   "org.freedesktop.DBus.Error.NoNetwork"
#define DBUS_ERROR_ADDRESS_IN_USE   "org.freedesktop.DBus.Error.AddressInUse"
#define DBUS_ERROR_DISCONNECTED   "org.freedesktop.DBus.Error.Disconnected"
#define DBUS_ERROR_INVALID_ARGS   "org.freedesktop.DBus.Error.InvalidArgs"
#define DBUS_ERROR_FILE_NOT_FOUND   "org.freedesktop.DBus.Error.FileNotFound"
#define DBUS_ERROR_UNKNOWN_METHOD   "org.freedesktop.DBus.Error.UnknownMethod"
#define DBUS_ERROR_TIMED_OUT   "org.freedesktop.DBus.Error.TimedOut"
#define DBUS_ERROR_MATCH_RULE_NOT_FOUND   "org.freedesktop.DBus.Error.MatchRuleNotFound"
#define DBUS_ERROR_MATCH_RULE_INVALID   "org.freedesktop.DBus.Error.MatchRuleInvalid"
#define DBUS_ERROR_SPAWN_EXEC_FAILED   "org.freedesktop.DBus.Error.Spawn.ExecFailed"
#define DBUS_ERROR_SPAWN_FORK_FAILED   "org.freedesktop.DBus.Error.Spawn.ForkFailed"
#define DBUS_ERROR_SPAWN_CHILD_EXITED   "org.freedesktop.DBus.Error.Spawn.ChildExited"
#define DBUS_ERROR_SPAWN_CHILD_SIGNALED   "org.freedesktop.DBus.Error.Spawn.ChildSignaled"
#define DBUS_ERROR_SPAWN_FAILED   "org.freedesktop.DBus.Error.Spawn.Failed"
#define DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN   "org.freedesktop.DBus.Error.UnixProcessIdUnknown"
#define DBUS_ERROR_INVALID_SIGNATURE   "org.freedesktop.DBus.Error.InvalidSignature"
#define DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN   "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown"
#define DBUS_INTROSPECT_1_0_XML_NAMESPACE   "http://www.freedesktop.org/standards/dbus"
#define DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER   "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
#define DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER   "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"
#define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE   "<!DOCTYPE node PUBLIC \""DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER"\"\n\""DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER"\">\n"

Detailed Description

D-Bus protocol constantsDefines constants which are part of the D-Bus protocol.


Define Documentation

#define DBUS_HEADER_SIGNATURE

Value:

Header format is defined as a signature: byte byte order byte message type ID byte flags byte protocol version uint32 body length uint32 serial array of struct (byte,variant) (field name, value).

The length of the header can be computed as the fixed size of the initial data, plus the length of the array at the end, plus padding to an 8-boundary.

Definition at line 199 of file dbus-protocol.h.

#define DBUS_MAXIMUM_ARRAY_LENGTH   (67108864)

Max length of a marshaled array in bytes (64M, 2^26) We use signed int for lengths so must be INT_MAX or less.

We need something a bit smaller than INT_MAX because the array is inside a message with header info, etc. so an INT_MAX array wouldn't allow the message overhead. The 64M number is an attempt at a larger number than we'd reasonably ever use, but small enough that your bus would chew through it fairly quickly without locking up forever. If you have data that's likely to be larger than this, you should probably be sending it in multiple incremental messages anyhow.

Definition at line 144 of file dbus-protocol.h.

Referenced by dbus_message_iter_append_fixed_array().

#define DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER   63

Max arg number you can match on in a match rule, e.g.

arg0='hello' is OK, arg3489720987='hello' is not

Definition at line 132 of file dbus-protocol.h.

#define DBUS_MAXIMUM_NAME_LENGTH   255

Max length in bytes of a bus name, interface, or member (not object path, paths are unlimited).

This is limited because lots of stuff is O(n) in this number, plus it would be obnoxious to type in a paragraph-long method name so most likely something like that would be an exploit.

Definition at line 119 of file dbus-protocol.h.

Referenced by _dbus_validate_bus_name(), _dbus_validate_interface(), and _dbus_validate_member().

#define DBUS_MAXIMUM_TYPE_RECURSION_DEPTH   32

Depth of recursion in the type tree.

This is automatically limited to DBUS_MAXIMUM_SIGNATURE_LENGTH since you could only have an array of array of array of ... that fit in the max signature. But that's probably a bit too large.

Definition at line 160 of file dbus-protocol.h.

Referenced by _dbus_validate_signature_with_reason().

#define DBUS_MINIMUM_HEADER_SIZE   16

The smallest header size that can occur.

(It won't be valid due to missing required header fields.) This is 4 bytes, two uint32, an array length. This isn't any kind of resource limit, just the necessary/logical outcome of the header signature.

Definition at line 219 of file dbus-protocol.h.

Referenced by _dbus_message_loader_queue_messages().


Generated on Wed Jan 3 04:58:30 2007 for D-Bus by  doxygen 1.4.7