From 9c5d01f0fe1ba855c0f7518c4f27d75a609b8faa Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 2 Aug 2003 03:39:35 +0000 Subject: 2003-08-01 Havoc Pennington * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): implement * dbus/dbus-message.c (dbus_message_get_type): new function * doc/dbus-specification.sgml: add "type" byte to messages --- test/data/valid-messages/simplest-manual.message | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/data/valid-messages') diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index 8eed1e5f..f0ecccdd 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -3,7 +3,7 @@ LITTLE_ENDIAN BYTE 'l' -BYTE 0 +BYTE 1 BYTE 0 BYTE 0 LENGTH Header -- cgit From 68a3c593b9e77b33614726363c7b6fd85d113021 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Mon, 18 Aug 2003 22:43:30 +0000 Subject: 2003-08-18 Havoc Pennington * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix dumb bug created earlier (wrong order of args to decode_header_data()) * tools/dbus-send.c: port * tools/dbus-print-message.c (print_message): port * test/data/*messages: port all messages over * dbus/dbus-message-builder.c: support including message type * bus/driver.c: port over * bus/dispatch.c: port over to new stuff * dbus/dbus-connection.c (_dbus_connection_new_for_transport): rename disconnect signal to "Disconnected" --- test/data/valid-messages/array-of-array-of-uint32.message | 7 +++++-- test/data/valid-messages/dict-simple.message | 7 +++++-- test/data/valid-messages/dict.message | 7 +++++-- test/data/valid-messages/emptiness.message | 7 +++++-- test/data/valid-messages/lots-of-arguments.message | 7 +++++-- test/data/valid-messages/no-padding.message | 7 +++++-- test/data/valid-messages/opposite-endian.message | 11 +++++------ test/data/valid-messages/recursive-types.message | 7 +++++-- test/data/valid-messages/simplest-manual.message | 7 ++++++- test/data/valid-messages/simplest.message | 9 +++++++-- test/data/valid-messages/standard-acquire-service.message | 9 ++++++--- test/data/valid-messages/standard-hello.message | 9 ++++++--- test/data/valid-messages/standard-list-services.message | 9 ++++++--- test/data/valid-messages/standard-service-exists.message | 9 ++++++--- test/data/valid-messages/unknown-header-field.message | 7 +++++-- 15 files changed, 82 insertions(+), 37 deletions(-) (limited to 'test/data/valid-messages') diff --git a/test/data/valid-messages/array-of-array-of-uint32.message b/test/data/valid-messages/array-of-array-of-uint32.message index 82b8273d..4fea3d25 100644 --- a/test/data/valid-messages/array-of-array-of-uint32.message +++ b/test/data/valid-messages/array-of-array-of-uint32.message @@ -1,9 +1,12 @@ # Message with an array of array of uint32 -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict-simple.message b/test/data/valid-messages/dict-simple.message index 34fb47d9..9450ef14 100644 --- a/test/data/valid-messages/dict-simple.message +++ b/test/data/valid-messages/dict-simple.message @@ -1,9 +1,12 @@ # A simple dict -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict.message b/test/data/valid-messages/dict.message index 6b9d004e..6b15c627 100644 --- a/test/data/valid-messages/dict.message +++ b/test/data/valid-messages/dict.message @@ -1,9 +1,12 @@ # Dict with different values -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/emptiness.message b/test/data/valid-messages/emptiness.message index 87196b16..edc7a6cb 100644 --- a/test/data/valid-messages/emptiness.message +++ b/test/data/valid-messages/emptiness.message @@ -1,9 +1,12 @@ # Empty arrays and strings -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/lots-of-arguments.message b/test/data/valid-messages/lots-of-arguments.message index 6549646e..36cad4cd 100644 --- a/test/data/valid-messages/lots-of-arguments.message +++ b/test/data/valid-messages/lots-of-arguments.message @@ -1,9 +1,12 @@ # Message with lots of different argument types -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/no-padding.message b/test/data/valid-messages/no-padding.message index b47dca78..0241c364 100644 --- a/test/data/valid-messages/no-padding.message +++ b/test/data/valid-messages/no-padding.message @@ -1,11 +1,14 @@ ## Message with no header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call -FIELD_NAME name +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' ## this byte array is filled with zeros to the natural length ## of the header diff --git a/test/data/valid-messages/opposite-endian.message b/test/data/valid-messages/opposite-endian.message index f8975b8b..b225f013 100644 --- a/test/data/valid-messages/opposite-endian.message +++ b/test/data/valid-messages/opposite-endian.message @@ -3,15 +3,14 @@ OPPOSITE_ENDIAN ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call -FIELD_NAME rply -TYPE UINT32 -UINT32 10000 - -FIELD_NAME name +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' FIELD_NAME unkn TYPE INT32 diff --git a/test/data/valid-messages/recursive-types.message b/test/data/valid-messages/recursive-types.message index 2ac6ad13..a8ef0441 100644 --- a/test/data/valid-messages/recursive-types.message +++ b/test/data/valid-messages/recursive-types.message @@ -1,11 +1,14 @@ ## Message with recursive types ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call -FIELD_NAME name +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index f0ecccdd..533c1179 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -10,9 +10,14 @@ LENGTH Header LENGTH Body ## client serial INT32 7 -FIELD_NAME name + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest.message b/test/data/valid-messages/simplest.message index 7bb1872d..868d270e 100644 --- a/test/data/valid-messages/simplest.message +++ b/test/data/valid-messages/simplest.message @@ -1,10 +1,15 @@ ## simplest possible valid message ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/standard-acquire-service.message b/test/data/valid-messages/standard-acquire-service.message index 5056d8df..081473f0 100644 --- a/test/data/valid-messages/standard-acquire-service.message +++ b/test/data/valid-messages/standard-acquire-service.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.AcquireService message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.AcquireService' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'AcquireService' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-hello.message b/test/data/valid-messages/standard-hello.message index f3f65961..ed9ff9e7 100644 --- a/test/data/valid-messages/standard-hello.message +++ b/test/data/valid-messages/standard-hello.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.Hello message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.Hello' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'Hello' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-list-services.message b/test/data/valid-messages/standard-list-services.message index 9dfb72e3..9a6f1d87 100644 --- a/test/data/valid-messages/standard-list-services.message +++ b/test/data/valid-messages/standard-list-services.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.ListServices message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.ListServices' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'ListServices' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-service-exists.message b/test/data/valid-messages/standard-service-exists.message index 6755fea6..c53319b6 100644 --- a/test/data/valid-messages/standard-service-exists.message +++ b/test/data/valid-messages/standard-service-exists.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.ServiceExists message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.ServiceExists' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'ServiceExists' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 18ab379c..17ae116a 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -1,10 +1,13 @@ ## message with a 'name' header field and unknown 'unkn' field ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' FIELD_NAME unkn TYPE INT32 INT32 0xfeeb -- cgit From 5fd1e389e1c1c12ad4a55c2af6abdc8e7a2f6d41 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sun, 31 Aug 2003 01:51:44 +0000 Subject: 2003-08-30 Havoc Pennington * test/data/valid-config-files/system.d/test.conf: change to root for the user so warnings don't get printed * dbus/dbus-message.c: add dbus_message_get_path, dbus_message_set_path * dbus/dbus-object-tree.c (do_test_dispatch): add test of dispatching to a path * dbus/dbus-string.c (_dbus_string_validate_path): add * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement (_dbus_marshal_object_path): implement * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field to contain the path to the target object (DBUS_HEADER_FIELD_SENDER_SERVICE): rename DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service --- test/data/valid-messages/array-of-array-of-uint32.message | 7 +------ test/data/valid-messages/dict-simple.message | 7 +------ test/data/valid-messages/dict.message | 7 +------ test/data/valid-messages/emptiness.message | 7 +------ test/data/valid-messages/lots-of-arguments.message | 7 +------ test/data/valid-messages/no-padding.message | 7 +------ test/data/valid-messages/opposite-endian.message | 7 +------ test/data/valid-messages/recursive-types.message | 7 +------ test/data/valid-messages/simplest-manual.message | 3 +++ test/data/valid-messages/simplest.message | 8 +------- test/data/valid-messages/standard-acquire-service.message | 3 +++ test/data/valid-messages/standard-hello.message | 3 +++ test/data/valid-messages/standard-list-services.message | 3 +++ test/data/valid-messages/standard-service-exists.message | 3 +++ test/data/valid-messages/unknown-header-field.message | 7 +------ 15 files changed, 25 insertions(+), 61 deletions(-) (limited to 'test/data/valid-messages') diff --git a/test/data/valid-messages/array-of-array-of-uint32.message b/test/data/valid-messages/array-of-array-of-uint32.message index 4fea3d25..692eca06 100644 --- a/test/data/valid-messages/array-of-array-of-uint32.message +++ b/test/data/valid-messages/array-of-array-of-uint32.message @@ -1,12 +1,7 @@ # Message with an array of array of uint32 VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict-simple.message b/test/data/valid-messages/dict-simple.message index 9450ef14..6986d439 100644 --- a/test/data/valid-messages/dict-simple.message +++ b/test/data/valid-messages/dict-simple.message @@ -1,12 +1,7 @@ # A simple dict VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict.message b/test/data/valid-messages/dict.message index 6b15c627..0f997b1f 100644 --- a/test/data/valid-messages/dict.message +++ b/test/data/valid-messages/dict.message @@ -1,12 +1,7 @@ # Dict with different values VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/emptiness.message b/test/data/valid-messages/emptiness.message index edc7a6cb..dbf531ca 100644 --- a/test/data/valid-messages/emptiness.message +++ b/test/data/valid-messages/emptiness.message @@ -1,12 +1,7 @@ # Empty arrays and strings VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/lots-of-arguments.message b/test/data/valid-messages/lots-of-arguments.message index 36cad4cd..993755ab 100644 --- a/test/data/valid-messages/lots-of-arguments.message +++ b/test/data/valid-messages/lots-of-arguments.message @@ -1,12 +1,7 @@ # Message with lots of different argument types VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/no-padding.message b/test/data/valid-messages/no-padding.message index 0241c364..e6d27d9d 100644 --- a/test/data/valid-messages/no-padding.message +++ b/test/data/valid-messages/no-padding.message @@ -3,12 +3,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS ## this byte array is filled with zeros to the natural length ## of the header diff --git a/test/data/valid-messages/opposite-endian.message b/test/data/valid-messages/opposite-endian.message index b225f013..c638b7b0 100644 --- a/test/data/valid-messages/opposite-endian.message +++ b/test/data/valid-messages/opposite-endian.message @@ -5,12 +5,7 @@ OPPOSITE_ENDIAN ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS FIELD_NAME unkn TYPE INT32 diff --git a/test/data/valid-messages/recursive-types.message b/test/data/valid-messages/recursive-types.message index a8ef0441..192fd9b7 100644 --- a/test/data/valid-messages/recursive-types.message +++ b/test/data/valid-messages/recursive-types.message @@ -3,12 +3,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index 533c1179..9779234b 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -11,6 +11,9 @@ LENGTH Body ## client serial INT32 7 +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/foo' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' diff --git a/test/data/valid-messages/simplest.message b/test/data/valid-messages/simplest.message index 868d270e..b9ddaf6b 100644 --- a/test/data/valid-messages/simplest.message +++ b/test/data/valid-messages/simplest.message @@ -2,13 +2,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call - -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS ALIGN 8 END_LENGTH Header diff --git a/test/data/valid-messages/standard-acquire-service.message b/test/data/valid-messages/standard-acquire-service.message index 081473f0..f313061f 100644 --- a/test/data/valid-messages/standard-acquire-service.message +++ b/test/data/valid-messages/standard-acquire-service.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.AcquireService message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-hello.message b/test/data/valid-messages/standard-hello.message index ed9ff9e7..795ede74 100644 --- a/test/data/valid-messages/standard-hello.message +++ b/test/data/valid-messages/standard-hello.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.Hello message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-list-services.message b/test/data/valid-messages/standard-list-services.message index 9a6f1d87..4c9c7c66 100644 --- a/test/data/valid-messages/standard-list-services.message +++ b/test/data/valid-messages/standard-list-services.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.ListServices message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-service-exists.message b/test/data/valid-messages/standard-service-exists.message index c53319b6..ce14811a 100644 --- a/test/data/valid-messages/standard-service-exists.message +++ b/test/data/valid-messages/standard-service-exists.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.ServiceExists message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 17ae116a..5d95f812 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -2,12 +2,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS FIELD_NAME unkn TYPE INT32 INT32 0xfeeb -- cgit From daf8d6579e1ae0ea748810b63180bd5eea2ab9c4 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Sun, 21 Sep 2003 18:43:20 +0000 Subject: 2003-09-21 Mark McLoughlin * doc/dbus-specification.sgml: Change the header field name to be an enum and update the rest of the spec to reference the fields using the conventinal name. * dbus/dbus-protocol.h: update to reflect the spec. * doc/TODO: add item to remove the 4 byte alignment requirement. * dbus/dbus-message.c: Remove the code to generalise the header/body length and serial number header fields as named header fields so we can reference field names using the protocol values. (append_int_field), (append_uint_field), (append_string_field): Append the field name as a byte rather than four chars. (delete_int_or_uint_field), (delete_string_field): reflect the fact that the field name and typecode now occupy 4 bytes instead of 8. (decode_string_field), (decode_header_data): update to reflect protocol changes and move the field specific encoding from decode_string_field() back into decode_header_data(). * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string): Add utility to aid debugging. * dbus/dbus-message-builder.c: (append_string_field), (_dbus_message_data_load): Update to reflect protocol changes; Change the FIELD_NAME directive to HEADER_FIELD and allow it to take the field's conventional name rather than the actual value. * test/data/*/*.message: Update to use HEADER_FIELD instead of FIELD_NAME; Always align the header on an 8 byte boundary *before* updating the header length. --- test/data/valid-messages/array-of-array-of-uint32.message | 2 +- test/data/valid-messages/dict-simple.message | 2 +- test/data/valid-messages/emptiness.message | 2 +- test/data/valid-messages/lots-of-arguments.message | 2 +- test/data/valid-messages/no-padding.message | 2 +- test/data/valid-messages/opposite-endian.message | 2 +- test/data/valid-messages/recursive-types.message | 1 + test/data/valid-messages/simplest-manual.message | 6 +++--- test/data/valid-messages/standard-acquire-service.message | 8 ++++---- test/data/valid-messages/standard-hello.message | 8 ++++---- test/data/valid-messages/standard-list-services.message | 8 ++++---- test/data/valid-messages/standard-service-exists.message | 8 ++++---- test/data/valid-messages/unknown-header-field.message | 2 +- 13 files changed, 27 insertions(+), 26 deletions(-) (limited to 'test/data/valid-messages') diff --git a/test/data/valid-messages/array-of-array-of-uint32.message b/test/data/valid-messages/array-of-array-of-uint32.message index 692eca06..e12186b1 100644 --- a/test/data/valid-messages/array-of-array-of-uint32.message +++ b/test/data/valid-messages/array-of-array-of-uint32.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE ARRAY diff --git a/test/data/valid-messages/dict-simple.message b/test/data/valid-messages/dict-simple.message index 6986d439..fa6927df 100644 --- a/test/data/valid-messages/dict-simple.message +++ b/test/data/valid-messages/dict-simple.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE DICT LENGTH Dict diff --git a/test/data/valid-messages/emptiness.message b/test/data/valid-messages/emptiness.message index dbf531ca..32042c01 100644 --- a/test/data/valid-messages/emptiness.message +++ b/test/data/valid-messages/emptiness.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE STRING INT32 0 diff --git a/test/data/valid-messages/lots-of-arguments.message b/test/data/valid-messages/lots-of-arguments.message index 993755ab..d3f6a4ee 100644 --- a/test/data/valid-messages/lots-of-arguments.message +++ b/test/data/valid-messages/lots-of-arguments.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE NIL TYPE BYTE diff --git a/test/data/valid-messages/no-padding.message b/test/data/valid-messages/no-padding.message index e6d27d9d..94df4d45 100644 --- a/test/data/valid-messages/no-padding.message +++ b/test/data/valid-messages/no-padding.message @@ -7,7 +7,7 @@ REQUIRED_FIELDS ## this byte array is filled with zeros to the natural length ## of the header -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE ARRAY TYPE BYTE ALIGN 4 diff --git a/test/data/valid-messages/opposite-endian.message b/test/data/valid-messages/opposite-endian.message index c638b7b0..90949dd2 100644 --- a/test/data/valid-messages/opposite-endian.message +++ b/test/data/valid-messages/opposite-endian.message @@ -7,7 +7,7 @@ VALID_HEADER method_call REQUIRED_FIELDS -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE INT32 INT32 0xfeeb diff --git a/test/data/valid-messages/recursive-types.message b/test/data/valid-messages/recursive-types.message index 192fd9b7..e306fd1f 100644 --- a/test/data/valid-messages/recursive-types.message +++ b/test/data/valid-messages/recursive-types.message @@ -5,6 +5,7 @@ VALID_HEADER method_call REQUIRED_FIELDS +ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index 9779234b..5a5b4105 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -11,13 +11,13 @@ LENGTH Body ## client serial INT32 7 -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/foo' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' diff --git a/test/data/valid-messages/standard-acquire-service.message b/test/data/valid-messages/standard-acquire-service.message index f313061f..a42a639c 100644 --- a/test/data/valid-messages/standard-acquire-service.message +++ b/test/data/valid-messages/standard-acquire-service.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.AcquireService message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'AcquireService' -FIELD_NAME srvc +HEADER_FIELD SERVICE TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/standard-hello.message b/test/data/valid-messages/standard-hello.message index 795ede74..50d4e0ff 100644 --- a/test/data/valid-messages/standard-hello.message +++ b/test/data/valid-messages/standard-hello.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.Hello message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Hello' -FIELD_NAME srvc +HEADER_FIELD SERVICE TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/standard-list-services.message b/test/data/valid-messages/standard-list-services.message index 4c9c7c66..10c9a2f7 100644 --- a/test/data/valid-messages/standard-list-services.message +++ b/test/data/valid-messages/standard-list-services.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.ListServices message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'ListServices' -FIELD_NAME srvc +HEADER_FIELD SERVICES TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/standard-service-exists.message b/test/data/valid-messages/standard-service-exists.message index ce14811a..c3b715bc 100644 --- a/test/data/valid-messages/standard-service-exists.message +++ b/test/data/valid-messages/standard-service-exists.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.ServiceExists message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'ServiceExists' -FIELD_NAME srvc +HEADER_FIELD SERVICE TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 5d95f812..973def68 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -3,7 +3,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call REQUIRED_FIELDS -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE INT32 INT32 0xfeeb ALIGN 8 -- cgit From 46c072e1136ca101aefd5fdae35c457899d55bbb Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 25 Sep 2003 08:50:14 +0000 Subject: 2003-09-25 Mark McLoughlin * doc/dbus-specification.sgml: don't require header fields to be 4-byte aligned and specify that fields should be distinguished from padding by the fact that zero is not a valid field name. * doc/TODO: remove re-alignment item and add item to doc the OBJECT_PATH type. * dbus/dbus-message.c: (HeaderField): rename the original member to value_offset and introduce a name_offset member to keep track of where the field actually begins. (adjust_field_offsets): remove. (append_int_field), (append_uint_field), (append_string_field): don't align the start of the header field to a 4-byte boundary. (get_next_field): impl finding the next marhsalled field after a given field. (re_align_field_recurse): impl re-aligning a number of already marshalled fields. (delete_field): impl deleting a field of any type and re-aligning any following fields. (delete_int_or_uint_field), (delete_string_field): remove. (set_int_field), (set_uint_field): no need to re-check that we have the correct type for the field. (set_string_field): ditto and impl re-aligning any following fields. (decode_header_data): update to take into account that the fields aren't 4-byte aligned any more and the new way to distinguish padding from header fields. Also, don't exit when there is too much header padding. (process_test_subdir): print the directory. (_dbus_message_test): add test to make sure a following field is re-aligned correctly after field deletion. * dbus/dbus-string.[ch]: (_dbus_string_insert_bytes): rename from insert_byte and allow the insert of multiple bytes. (_dbus_string_test): test inserting multiple bytes. * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add warning note to docs about having to re-align any marshalled values following the string. * dbus/dbus-message-builder.c: (append_string_field), (_dbus_message_data_load): don't align the header field. * dbus/dbus-auth.c: (process_test_subdir): print the directory. * test/break-loader.c: (randomly_add_one_byte): upd. for insert_byte change. * test/data/invalid-messages/bad-header-field-alignment.message: new test case. * test/data/valid-messages/unknown-header-field.message: shove a dict in the unknown field. --- test/data/valid-messages/unknown-header-field.message | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'test/data/valid-messages') diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 973def68..ac7d624c 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -3,9 +3,16 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call REQUIRED_FIELDS + HEADER_FIELD UNKNOWN +TYPE DICT +LENGTH Dict +START_LENGTH Dict +STRING 'int32' TYPE INT32 -INT32 0xfeeb +INT32 0x12345678 +END_LENGTH Dict + ALIGN 8 END_LENGTH Header START_LENGTH Body -- cgit