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/invalid-messages/bad-endian.message | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/data/invalid-messages') diff --git a/test/data/invalid-messages/bad-endian.message b/test/data/invalid-messages/bad-endian.message index 7a7b75d1..b1432359 100644 --- a/test/data/invalid-messages/bad-endian.message +++ b/test/data/invalid-messages/bad-endian.message @@ -1,7 +1,7 @@ ## message with invalid endianness tag BYTE 'i' -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/invalid-messages/array-of-nil.message | 9 +++++++-- test/data/invalid-messages/array-with-mixed-types.message | 9 +++++++-- test/data/invalid-messages/bad-boolean-array.message | 9 +++++++-- test/data/invalid-messages/bad-boolean.message | 9 +++++++-- test/data/invalid-messages/bad-endian.message | 14 ++++++++++++-- test/data/invalid-messages/local-namespace.message | 11 ++++++++--- test/data/invalid-messages/no-dot-in-name.message | 13 +++++++++---- test/data/invalid-messages/not-nul-header-padding.message | 10 +++++++++- test/data/invalid-messages/overlong-name.message | 9 +++++++-- .../invalid-messages/too-little-header-padding.message | 10 +++++++++- .../too-much-header-padding-by-far.message | 10 +++++++++- test/data/invalid-messages/too-much-header-padding.message | 10 +++++++++- test/data/invalid-messages/too-short-dict.message | 13 ++++++++++--- 13 files changed, 110 insertions(+), 26 deletions(-) (limited to 'test/data/invalid-messages') diff --git a/test/data/invalid-messages/array-of-nil.message b/test/data/invalid-messages/array-of-nil.message index e86e6a10..4810d318 100644 --- a/test/data/invalid-messages/array-of-nil.message +++ b/test/data/invalid-messages/array-of-nil.message @@ -1,9 +1,14 @@ # Message with an array of NIL (not allowed) -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/invalid-messages/array-with-mixed-types.message b/test/data/invalid-messages/array-with-mixed-types.message index 763a6c29..1bdd549b 100644 --- a/test/data/invalid-messages/array-with-mixed-types.message +++ b/test/data/invalid-messages/array-with-mixed-types.message @@ -1,10 +1,15 @@ # Message with an array of array where the child arrays are of # different 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/invalid-messages/bad-boolean-array.message b/test/data/invalid-messages/bad-boolean-array.message index c045b978..e4df1903 100644 --- a/test/data/invalid-messages/bad-boolean-array.message +++ b/test/data/invalid-messages/bad-boolean-array.message @@ -1,10 +1,15 @@ ## a message with an invalid boolean array ## 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/invalid-messages/bad-boolean.message b/test/data/invalid-messages/bad-boolean.message index 00a29626..7b518d57 100644 --- a/test/data/invalid-messages/bad-boolean.message +++ b/test/data/invalid-messages/bad-boolean.message @@ -1,10 +1,15 @@ ## a message with an invalid boolean value ## 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/invalid-messages/bad-endian.message b/test/data/invalid-messages/bad-endian.message index b1432359..c08f0188 100644 --- a/test/data/invalid-messages/bad-endian.message +++ b/test/data/invalid-messages/bad-endian.message @@ -4,10 +4,20 @@ BYTE 'i' BYTE 1 BYTE 0 BYTE 0 + LENGTH Header LENGTH Body -## client serial -INT32 7 + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + +ALIGN 8 + END_LENGTH Header + START_LENGTH Body END_LENGTH Body diff --git a/test/data/invalid-messages/local-namespace.message b/test/data/invalid-messages/local-namespace.message index ceb3053d..f485d70c 100644 --- a/test/data/invalid-messages/local-namespace.message +++ b/test/data/invalid-messages/local-namespace.message @@ -2,10 +2,15 @@ ## invalid ## 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.Local' +FIELD_NAME mebr TYPE STRING -STRING 'org.freedesktop.Local.Disconnect' +STRING 'Disconnected' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/no-dot-in-name.message b/test/data/invalid-messages/no-dot-in-name.message index 4cde0d1f..53e288d0 100644 --- a/test/data/invalid-messages/no-dot-in-name.message +++ b/test/data/invalid-messages/no-dot-in-name.message @@ -1,10 +1,15 @@ -## a message with dotless name +## a message with dotless interface ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'NoDotInHere' +FIELD_NAME mebr TYPE STRING -STRING 'NoNamespaceHere' +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/not-nul-header-padding.message b/test/data/invalid-messages/not-nul-header-padding.message index 1172af4b..f98812c2 100644 --- a/test/data/invalid-messages/not-nul-header-padding.message +++ b/test/data/invalid-messages/not-nul-header-padding.message @@ -1,7 +1,15 @@ ## has one non-nul byte in header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/overlong-name.message b/test/data/invalid-messages/overlong-name.message index 0fdc7bc9..4108a037 100644 --- a/test/data/invalid-messages/overlong-name.message +++ b/test/data/invalid-messages/overlong-name.message @@ -1,10 +1,15 @@ ## a message with too-long name 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.foo.bar.this.is.really.long 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200' + +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/too-little-header-padding.message b/test/data/invalid-messages/too-little-header-padding.message index cf73be68..f6e7af4b 100644 --- a/test/data/invalid-messages/too-little-header-padding.message +++ b/test/data/invalid-messages/too-little-header-padding.message @@ -1,7 +1,15 @@ ## has one byte missing from header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/too-much-header-padding-by-far.message b/test/data/invalid-messages/too-much-header-padding-by-far.message index a60aca88..6cc5b391 100644 --- a/test/data/invalid-messages/too-much-header-padding-by-far.message +++ b/test/data/invalid-messages/too-much-header-padding-by-far.message @@ -1,7 +1,15 @@ ## has one byte extra header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/too-much-header-padding.message b/test/data/invalid-messages/too-much-header-padding.message index ebf154eb..6cf004b9 100644 --- a/test/data/invalid-messages/too-much-header-padding.message +++ b/test/data/invalid-messages/too-much-header-padding.message @@ -1,7 +1,15 @@ ## has one byte extra header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/too-short-dict.message b/test/data/invalid-messages/too-short-dict.message index ba200461..59621126 100644 --- a/test/data/invalid-messages/too-short-dict.message +++ b/test/data/invalid-messages/too-short-dict.message @@ -1,11 +1,18 @@ # 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' -END_LENGTH Header +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 + +END_LENGTH Header + START_LENGTH Body TYPE DICT LENGTH Dict -- 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/invalid-messages/array-of-nil.message | 7 ++++--- test/data/invalid-messages/array-with-mixed-types.message | 7 ++++--- test/data/invalid-messages/bad-boolean-array.message | 5 +++-- test/data/invalid-messages/bad-boolean.message | 5 +++-- test/data/invalid-messages/bad-endian.message | 5 ++--- test/data/invalid-messages/local-namespace.message | 5 +++-- test/data/invalid-messages/no-dot-in-name.message | 4 ++-- test/data/invalid-messages/not-nul-header-padding.message | 6 +++--- test/data/invalid-messages/overlong-name.message | 4 ++-- test/data/invalid-messages/too-little-header-padding.message | 6 +++--- test/data/invalid-messages/too-much-header-padding-by-far.message | 6 +++--- test/data/invalid-messages/too-much-header-padding.message | 6 +++--- test/data/invalid-messages/too-short-dict.message | 4 ++-- 13 files changed, 37 insertions(+), 33 deletions(-) (limited to 'test/data/invalid-messages') diff --git a/test/data/invalid-messages/array-of-nil.message b/test/data/invalid-messages/array-of-nil.message index 4810d318..7f0ac718 100644 --- a/test/data/invalid-messages/array-of-nil.message +++ b/test/data/invalid-messages/array-of-nil.message @@ -2,15 +2,16 @@ VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -END_LENGTH Header ALIGN 8 +END_LENGTH Header + START_LENGTH Body TYPE ARRAY TYPE NIL diff --git a/test/data/invalid-messages/array-with-mixed-types.message b/test/data/invalid-messages/array-with-mixed-types.message index 1bdd549b..4455c898 100644 --- a/test/data/invalid-messages/array-with-mixed-types.message +++ b/test/data/invalid-messages/array-with-mixed-types.message @@ -3,15 +3,16 @@ VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -END_LENGTH Header ALIGN 8 +END_LENGTH Header + START_LENGTH Body TYPE ARRAY diff --git a/test/data/invalid-messages/bad-boolean-array.message b/test/data/invalid-messages/bad-boolean-array.message index e4df1903..91ad5ef1 100644 --- a/test/data/invalid-messages/bad-boolean-array.message +++ b/test/data/invalid-messages/bad-boolean-array.message @@ -3,15 +3,16 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' ALIGN 8 END_LENGTH Header + START_LENGTH Body TYPE ARRAY TYPE BOOLEAN diff --git a/test/data/invalid-messages/bad-boolean.message b/test/data/invalid-messages/bad-boolean.message index 7b518d57..cd588ad8 100644 --- a/test/data/invalid-messages/bad-boolean.message +++ b/test/data/invalid-messages/bad-boolean.message @@ -3,15 +3,16 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' ALIGN 8 END_LENGTH Header + START_LENGTH Body TYPE BOOLEAN BYTE 3 diff --git a/test/data/invalid-messages/bad-endian.message b/test/data/invalid-messages/bad-endian.message index c08f0188..8d609244 100644 --- a/test/data/invalid-messages/bad-endian.message +++ b/test/data/invalid-messages/bad-endian.message @@ -8,15 +8,14 @@ BYTE 0 LENGTH Header LENGTH Body -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' ALIGN 8 - END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/local-namespace.message b/test/data/invalid-messages/local-namespace.message index f485d70c..dad98a77 100644 --- a/test/data/invalid-messages/local-namespace.message +++ b/test/data/invalid-messages/local-namespace.message @@ -4,14 +4,15 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Local' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Disconnected' ALIGN 8 END_LENGTH Header + START_LENGTH Body END_LENGTH Body diff --git a/test/data/invalid-messages/no-dot-in-name.message b/test/data/invalid-messages/no-dot-in-name.message index 53e288d0..131be05d 100644 --- a/test/data/invalid-messages/no-dot-in-name.message +++ b/test/data/invalid-messages/no-dot-in-name.message @@ -3,10 +3,10 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'NoDotInHere' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' diff --git a/test/data/invalid-messages/not-nul-header-padding.message b/test/data/invalid-messages/not-nul-header-padding.message index f98812c2..a12c0fa7 100644 --- a/test/data/invalid-messages/not-nul-header-padding.message +++ b/test/data/invalid-messages/not-nul-header-padding.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/overlong-name.message b/test/data/invalid-messages/overlong-name.message index 4108a037..4fd7025e 100644 --- a/test/data/invalid-messages/overlong-name.message +++ b/test/data/invalid-messages/overlong-name.message @@ -2,11 +2,11 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.foo.bar.this.is.really.long 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' diff --git a/test/data/invalid-messages/too-little-header-padding.message b/test/data/invalid-messages/too-little-header-padding.message index f6e7af4b..894e4c3e 100644 --- a/test/data/invalid-messages/too-little-header-padding.message +++ b/test/data/invalid-messages/too-little-header-padding.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/too-much-header-padding-by-far.message b/test/data/invalid-messages/too-much-header-padding-by-far.message index 6cc5b391..b74f559b 100644 --- a/test/data/invalid-messages/too-much-header-padding-by-far.message +++ b/test/data/invalid-messages/too-much-header-padding-by-far.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/too-much-header-padding.message b/test/data/invalid-messages/too-much-header-padding.message index 6cf004b9..01111b63 100644 --- a/test/data/invalid-messages/too-much-header-padding.message +++ b/test/data/invalid-messages/too-much-header-padding.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/too-short-dict.message b/test/data/invalid-messages/too-short-dict.message index 59621126..fde88850 100644 --- a/test/data/invalid-messages/too-short-dict.message +++ b/test/data/invalid-messages/too-short-dict.message @@ -2,10 +2,10 @@ VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -- 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. --- .../bad-header-field-alignment.message | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 test/data/invalid-messages/bad-header-field-alignment.message (limited to 'test/data/invalid-messages') diff --git a/test/data/invalid-messages/bad-header-field-alignment.message b/test/data/invalid-messages/bad-header-field-alignment.message new file mode 100644 index 00000000..75776a37 --- /dev/null +++ b/test/data/invalid-messages/bad-header-field-alignment.message @@ -0,0 +1,34 @@ +## last field incorrectly aligned to 4 bytes + +## VALID_HEADER includes a LENGTH Header and LENGTH Body +VALID_HEADER method_call + +HEADER_FIELD INTERFACE +TYPE STRING +STRING 'org.freedesktop.Foo' + +HEADER_FIELD MEMBER +TYPE STRING +STRING 'Bar' + +HEADER_FIELD UNKNOWN +TYPE STRING +STRING 'a' + +ALIGN 4 + +HEADER_FIELD UNKNOWN +TYPE ARRAY +TYPE BYTE +ALIGN 4 +LENGTH ThisByteArray +START_LENGTH ThisByteArray +BYTE 1 +BYTE 2 +END_LENGTH ThisByteArray + + +ALIGN 8 +END_LENGTH Header +START_LENGTH Body +END_LENGTH Body -- cgit