2005-01-28 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2005-01-28  Havoc Pennington  <hp@redhat.com>
2
3         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4         related to authentication protocol
5
6 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7
8         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
9                 - BUS_ACTIVATION -> BUS_STARTER
10                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
11                 - class MessageIter (__init__): Added recursion checking 
12                 so we throw a nice error instead of just disconnecting from the
13                 bus.
14                 (get): Added arg_type parameter for recursion.
15                 Removed the nil type
16                 Added signiture type placeholder (not implemented)
17                 Added struct type placeholder (not implemented)
18                 Added varient type placeholder (not implemented)
19                 Commented out dict type for now     
20                 (get_element_type): renamed from get_array_type
21                 (get_*): changed to use the dbus_message_iter_get_basic API
22                 (get_*_array): removed in favor of recursive get_array method
23                 (get_array): new recursive method which calls get to marshal
24                 the elements of the array
25                 (value_to_dbus_sig): New method returns the corrasponding
26                 dbus signiture to a python value
27                 (append): Comment out dict handling for now
28                 Handle lists with the new recursive API
29                 Comment out None handling for now
30                 (append_nil): removed
31                 (append_*): changed to use dbus_message_iter_append_basic API
32                 (append_*_array): removed in favor of recursive append_array 
33                 method
34                 (__str__): Make it easier to print out recursive iterators
35                 for debugging
36                 - class Message (__str__): moved type inspection to the
37                 MessageIter class' __str__ method
38                 (get_iter): Added an append parameter wich defaults to False
39                 If True use the new API's to create an append iterator
40
41         * python/dbus.py: Update to use new bindings API
42                 - TYPE_ACTIVATION -> TYPE_STARTER
43                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
44                 - class ActivationBus -> class StarterBus
45                 - class RemoteObject (__call__): get an append iterator
46                 - (_dispatch_dbus_method_call): get an append iterator
47                 - class Object (emit_signal): get an append iterator
48
49         * python/examples/: Fixed up the examples to work with the new API
50                 
51 2005-01-28  Joe Shaw  <joeshaw@novell.com>
52
53         * configure.in: Bump version up to 0.30.
54
55         * HACKING: Add a release item to bump the version number up after 
56         a release.
57
58 2005-01-28  Havoc Pennington  <hp@redhat.com>
59
60         * doc/dbus-specification.xml: update to describe 16-bit types and
61         dict entries
62
63         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
64         assertion
65
66         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
67         type
68
69         * dbus/dbus-marshal-recursive.c: implement
70
71 2005-01-27  Havoc Pennington  <hp@redhat.com>
72
73         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
74
75         * configure.in: find the right type for 16 and 32 bit ints as well
76         as 64
77
78         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
79         the 16-bit types so people don't have to stuff them in 32-bit or
80         byte arrays.
81
82 2005-01-27  Havoc Pennington  <hp@redhat.com>
83
84         * dbus/dbus-message.c: byteswap the message if you init an
85         iterator to read/write from it
86         
87         * dbus/dbus-marshal-byteswap.c: new file implementing 
88         _dbus_marshal_byteswap()
89
90         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
91
92 2005-01-26  Havoc Pennington  <hp@redhat.com>
93         
94         * dbus/dbus-marshal-validate-util.c: break this out (and fix
95         build, apparently - nobody noticed?)
96         
97 2005-01-26  Havoc Pennington  <hp@redhat.com>
98
99         * dbus/dbus-marshal-recursive.h: remove todo comment
100
101 2005-01-25  Joe Shaw  <joeshaw@novell.com>
102
103         * Land the mono binding changes to conform to the new APIs.
104
105         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
106         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
107
108         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
109         type code as a string.
110         (InitAppending): Rename dbus_message_append_iter_init() to
111         dbus_message_iter_init_append().
112
113         * mono/BusDriver.cs: Rename ServiceEventHandler to
114         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
115         Rename ServiceOwnerChanged to NameOwnerChanged.
116
117         * mono/Connection.cs: Rename BaseService to UniqueName, and the
118         underlying C call.
119
120         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
121
122         * mono/Service.cs: Rename Exists to HasOwner, internally rename
123         dbus_bus_acquire_service() to dbus_bus_request_name().
124
125         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
126         of Type.UnderlyingSystemType to get the correct element type for
127         the array.
128         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
129         dbus_message_get_{element|arg}_type() instead of
130         dbus_message_iter_init_array_iterator().
131         (Append): Replace dbus_message_iter_append_array() with
132         dbus_message_iter_open_container() and
133         dbus_message_iter_close_container().
134
135         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
136         types have been removed.
137         
138         * mono/DBusType/*.cs: Replace calls of
139         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
140         but specify the type in the DllImport extern declaration.  Ditto
141         for dbus_message_iter_append_[type]() ->
142         dbus_message_iter_append_basic().
143
144         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
145         NameOwnerChangedHandler.
146
147 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
148
149         * python/dbus_bindings.pyx.in: Rename of methods and bindings
150                 - get_base_service -> get_unique_name
151                 - bus_get_base_service -> bus_get_unique_name
152                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
153                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
154                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
155                 - bus_activate_service -> bus_start_service_by_name
156                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
157                 - bus_acquire_service -> bus_request_name
158                 - dbus_bus_acquire_service -> dbus_bus_request_name
159                 - bus_service_exists -> bus_name_has_owner
160                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
161
162         * python/dbus.py: Rename of methods
163                 - activate_service -> start_service_by_name
164                 - bus_acquire_service -> bus_request_name
165                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
166                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
167
168         
169 2005-01-24  Joe Shaw  <joeshaw@novell.com>
170
171         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
172         signature for the method that can't be found.
173
174         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
175         the message has any arguments, we need to call
176         _dbus_type_reader_get_current_type(), not
177         _dbus_type_reader_has_next().
178
179 2005-01-24  Havoc Pennington  <hp@redhat.com>
180
181         * dbus/dbus-message-factory.c: more testing of message validation
182
183         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
184         header
185
186 2005-01-23  Havoc Pennington  <hp@redhat.com>
187
188         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
189         get this all working, not many tests in the framework yet though
190
191 2005-01-22  Havoc Pennington  <hp@redhat.com>
192
193         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
194         tutorial, based on work from David Wheeler.
195
196 2005-01-21  Havoc Pennington  <hp@redhat.com>
197
198         * dbus/dbus-bus.c: add more return_if_fail checks
199
200         * dbus/dbus-message.c (load_message): have the "no validation"
201         mode (have to edit the code to toggle the mode for now though)
202
203         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
204         skips all validation; I want to use this at least for benchmark
205         baseline, I'm not sure if it should be a publicly-available switch.
206
207 2005-01-21  Havoc Pennington  <hp@redhat.com>
208
209         * glib/dbus-gmain.c: don't put the GLib bindings in the same
210         toplevel doxygen group as the low-level API stuff
211
212         * dbus/dbus.h: note that libdbus is the low-level API
213
214 2005-01-20  Havoc Pennington  <hp@redhat.com>
215
216         * update-dbus-docs.sh: script to update docs on the web site, only
217         works for me though. neener.
218
219 2005-01-20  Havoc Pennington  <hp@redhat.com>
220
221         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
222         code can reveal bugs in it
223
224 2005-01-20  Havoc Pennington  <hp@redhat.com>
225
226         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
227         select() version, patches from Tor Lillqvist
228
229 2005-01-20  Havoc Pennington  <hp@redhat.com>
230
231         * doc/dbus-tutorial.xml: replace > with &gt;
232
233         * bus/services.c (bus_registry_acquire_service): validate the name
234         and return a better error if it's no good.
235
236         * doc/dbus-specification.xml: note NO_AUTO_START change
237
238         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
239         from AUTO_START, we're toggling the default
240
241         * bus/dispatch.c: adapt the tests to change of auto-start default
242
243 2005-01-18  Havoc Pennington  <hp@redhat.com>
244
245         * rename dbus-daemon-1 to dbus-daemon throughout
246
247 2005-01-18  Havoc Pennington  <hp@redhat.com>
248
249         * Throughout, grand renaming to strip out the use of "service",
250         just say "name" instead (or "bus name" when ambiguous).  Did not
251         change the internal code of the message bus itself, only the
252         programmer-facing API and messages.
253         
254         * doc/dbus-specification.xml: further update the message bus section
255         
256         * bus/config-parser.c (all_are_equiv): fix bug using freed string
257         in error case
258
259 2005-01-17  Havoc Pennington  <hp@redhat.com>
260
261         * dbus/dbus-types.h: remove 16-bit types since we don't use them
262         ever
263
264         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
265         "invalid name character" not only non-ASCII
266
267         * doc/dbus-specification.xml: further update spec, message bus 
268         parts are still out-of-date but the marshaling etc. stuff is now
269         accurate-ish
270
271 2005-01-17  Havoc Pennington  <hp@redhat.com>
272
273         * doc/dbus-specification.xml: partially update spec
274
275 2005-01-17  Havoc Pennington  <hp@redhat.com>
276
277         * Throughout, align variant bodies according to the contained
278         type, rather than always to 8. Should save a fair bit of space in
279         message headers.
280         
281         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
282         fix handling of case where p == end
283
284         * doc/TODO: remove the dbus_bool_t item and variant alignment items
285
286 2005-01-17  Havoc Pennington  <hp@redhat.com>
287
288         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
289
290         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
291         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
292         are marshaling/unmarshaling a boolean.
293
294 2005-01-16  Havoc Pennington  <hp@redhat.com>
295
296         This is about it on what can be disabled/deleted from libdbus
297         easily, back below 150K anyhow. Deeper cuts are more work than 
298         just turning the code off as I've done here.
299         
300         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
301         signed int convenience funcs
302
303         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
304         verbose mode
305
306         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
307         things out of libdbus
308
309         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
310         
311         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
312         tests-enabled-only, though it should probably be deleted)
313
314         * dbus/dbus-message-util.c: same stuff
315
316         * dbus/dbus-auth-util.c: same stuff
317
318 2005-01-16  Havoc Pennington  <hp@redhat.com>
319
320         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
321
322         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
323         way for stripping down dbus-userdb.c stuff included in libdbus.
324         Rename _dbus_parse_uid for consistency.
325
326 2005-01-16  Havoc Pennington  <hp@redhat.com>
327
328         * dbus/dbus-internals.c (_dbus_real_assert): print the function
329         name the assertion failed in
330
331         * dbus/dbus-internals.h (_dbus_return_if_fail) 
332         (_dbus_return_val_if_fail): assert that the name of the function
333         containing the check doesn't start with '_', since we only want to 
334         use checks on public functions
335         
336         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
337         checks to assertions
338
339         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
340         change checks to asserts for private function
341
342         * dbus/dbus-message.c (_dbus_message_set_serial): checks
343         to asserts for private function
344
345         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
346         broken assertion that was breaking make check
347         (_dbus_type_reader_array_is_empty): remove this rather than fix
348         it, was only used in assertions
349
350 2005-01-16  Havoc Pennington  <hp@redhat.com>
351
352         * test/unused-code-gc.py: hacky script to find code that's used
353         only by the bus (not libdbus) or used only by tests or not used at
354         all. It has some false alarms, but looks like we can clean up a
355         lot of size from libdbus.
356
357         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
358         dbus/Makefile.am: initially move 10K of binary size out of libdbus
359         
360 2005-01-16  Havoc Pennington  <hp@redhat.com>
361
362         * Add and fix docs according to Doxygen warnings throughout
363         source.
364         
365         * dbus/dbus-marshal-recursive.c
366         (_dbus_type_reader_array_is_empty): change this to just call
367         array_reader_get_array_len() and make it static
368
369         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
370         from get_array_type
371         (dbus_message_iter_init_append): rename from append_iter_init
372
373         * dbus/dbus-marshal-recursive.c
374         (_dbus_type_reader_get_element_type): rename from
375         _dbus_type_reader_get_array_type
376
377 2005-01-15  Havoc Pennington  <hp@redhat.com>
378
379         * test/glib/test-profile.c (with_bus_server_filter): fix crash
380
381         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
382         when DBUS_DISABLE_ASSERT
383         (_dbus_marshal_set_basic): be sure we align for the string length
384
385         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
386         this look faster
387
388         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
389         inline macro version
390         (_dbus_string_set_byte): provide inline macro version
391
392 2005-01-15  Havoc Pennington  <hp@redhat.com>
393
394         * Land the new message args API and type system.
395
396         This patch is huge, but the public API change is not 
397         really large. The set of D-BUS types has changed somewhat, 
398         and the arg "getters" are more geared toward language bindings;
399         they don't make a copy, etc.
400
401         There are also some known issues. See these emails for details
402         on this huge patch:
403         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
404         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
405         
406         * dbus/dbus-marshal-*: all the new stuff
407
408         * dbus/dbus-message.c: basically rewritten
409
410         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
411         freed blocks to be all non-nul bytes so using freed memory is less
412         likely to work right
413
414         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
415         DBUS_FAIL_MALLOC=N environment variable, so you can do
416         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
417         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
418         thorough.
419
420         * qt/message.cpp: port to the new message args API
421         (operator<<): use str.utf8() rather than str.unicode()
422         (pretty sure this is right from the Qt docs?)
423
424         * glib/dbus-gvalue.c: port to the new message args API
425
426         * bus/dispatch.c, bus/driver.c: port to the new message args API
427
428         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
429         "locked" flag to TRUE and align_offset to 0; I guess we never
430         looked at these anyhow, but seems cleaner.
431
432         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
433         move allocation padding macro to this header; use it to implement
434         (_DBUS_STRING_STATIC): ability to declare a static string.
435
436         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
437         change to return TRUE if the interface is not set.
438
439         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
440         to dbus-marshal-validate.[hc]
441
442         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
443         dbus-internals.c
444
445         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
446         to dbus-marshal-*.[hc]
447
448         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
449         function here from dbus-marshal.c
450
451 2005-01-12  Joe Shaw  <joeshaw@novell.com>
452
453         * NEWS: Update for 0.23.
454
455         * configure.in: Release 0.23.
456
457 2005-01-12  Joe Shaw  <joeshaw@novell.com>
458
459         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
460         dbus DLL with --debug.  Clean up after the .mdb files this leaves
461         behind.
462
463         * mono/doc/Makefile.am: Need to uninstall the docs on "make
464         uninstall"
465
466         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
467         is an enum, get the enum's underlying type.  Another mono
468         1.1.3 fix.
469
470 2005-01-11  Joe Shaw  <joeshaw@novell.com>
471
472         Patch from Sjoerd Simons <sjoerd@luon.net>
473
474         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
475         DESTDIR.  It breaks stuff.
476
477 2005-01-11  Joe Shaw  <joeshaw@novell.com>
478
479         Patch from Tambet Ingo <tambet@ximian.com>
480
481         * mono/DBusType/Array.cs (Get): Get the underlying element type by
482         calling type.GetElementType().  The code previously depended on
483         broken Mono behavior, which was fixed in Mono 1.1.3.
484
485         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
486         Activator.CreateInstance() so that the class's constructor is
487         called with the right parameters.
488
489 2005-01-11  Joe Shaw  <joeshaw@novell.com>
490
491         Patch from Timo Teräs <ext-timo.teras@nokia.com>
492
493         * dbus/dbus-connection.c
494         (_dbus_connection_queue_received_message_link): Call
495         _dbus_connection_remove_timeout() instead of the _locked()
496         variant, since it's always called from
497         _dbus_connection_handle_watch(), which handles the locking.
498         Removed the _locked() variant since it's no longer used.
499
500 2005-01-03  Havoc Pennington  <hp@redhat.com>
501
502         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
503         return
504         
505 2004-12-26  Havoc Pennington  <hp@redhat.com>
506
507         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
508
509 2005-01-03  Havoc Pennington  <hp@redhat.com>
510
511         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
512         floating point
513
514         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
515
516 2005-01-02  Havoc Pennington  <hp@redhat.com>
517
518         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
519
520 2005-01-01  Havoc Pennington  <hp@redhat.com>
521
522         * configure.in: add -Wfloat-equal
523
524 2005-01-01  Havoc Pennington  <hp@redhat.com>
525
526         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
527         for a variety of reasons '==' doesn't do this.
528
529 2004-12-31  Havoc Pennington  <hp@redhat.com>
530
531         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
532         I keep wishing I had
533
534 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
535
536         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
537
538 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
539
540         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
541         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
542         dbus-protocol.h.  Because they are defines and not enums they are not
543         autogenerated.
544
545 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
546
547         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
548         dbus_bus_activate_service
549
550         * python/dbus.py (Bus.activate_service): activate a service on the
551         bus.
552
553 2004-12-24  Havoc Pennington  <hp@redhat.com>
554
555         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
556         file format has also changed and I haven't adapted to that yet
557         
558         * Makefile.am: load .gcno files from latest gcc
559
560 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
561         * Patch from Rob Taylor <robtaylor@fastmail.fm>
562
563         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
564         lowlevel binding
565
566         * python/dbus.py (get_unix_user): Added binding to 
567         call dbus_bindings.bus_get_unix_user
568
569         * python/extract.py: Modified the proto_pat regex to
570         handle unsigned long
571
572 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
573
574         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
575         better POSIX compliance.
576
577 2004-12-19  Havoc Pennington  <hp@redhat.com>
578
579         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
580         (_dbus_string_insert_8_aligned): new functions
581
582         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
583
584 2004-12-18  Havoc Pennington  <hp@redhat.com>
585
586         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
587         macro
588
589         * dbus/dbus-message.c: fix a comment, and add a still-unused
590         not-implemented function
591
592         * dbus/dbus-marshal.h: fix comment
593
594         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
595
596 2004-12-17  Joe Shaw  <joeshaw@novell.com>
597
598         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
599         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
600         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
601         Type.UnderlyingSystemType to get the actual system type
602         underneath.  This code previously depended on the broken Mono
603         behavior, which was fixed in 1.1.3.
604
605 2004-11-27  Havoc Pennington  <hp@redhat.com>
606
607         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
608         are disabled
609         (_dbus_string_get_const_data): inline when asserts are disabled
610
611         * dbus/dbus-message.c: record the _dbus_current_generation of
612         creation so we can complain if dbus_shutdown() is used improperly.
613         Do this only if checks are enabled.
614
615         * dbus/dbus-connection.c: ditto
616         
617 2004-11-26  Havoc Pennington  <hp@redhat.com>
618
619         * test/glib/test-profile.c: add with_bus mode to profile echoes
620         that go through the bus.
621
622         * test/glib/run-test.sh: add ability to run test-profile
623
624         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
625         config file reload.
626
627 2004-11-26  Havoc Pennington  <hp@redhat.com>
628
629         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
630         thing was implemented
631
632 2004-11-26  Havoc Pennington  <hp@redhat.com>
633
634         * test/glib/test-profile.c: tweak a bit, add support for some
635         made-up minimal malloc overhead with plain sockets, since in 
636         real life some sort of buffers are unavoidable thus we could 
637         count them in the theoretical best case
638
639 2004-11-26  Havoc Pennington  <hp@redhat.com>
640
641         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
642         where I was trying to cache one too many messages
643
644 2004-11-26  Havoc Pennington  <hp@redhat.com>
645
646         * dbus/dbus-message.c: reimplement message cache as an array which 
647         makes the cache about twice as fast and saves maybe 1.5% overall
648
649 2004-11-26  Havoc Pennington  <hp@redhat.com>
650
651         * dbus/dbus-threads.c (init_global_locks): forgot to put the
652         message cache lock here
653
654 2004-11-26  Havoc Pennington  <hp@redhat.com>
655
656         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
657         the "char byte_order" next to each other to save 4 bytes
658         (dbus_message_new_empty_header): reduce preallocation, since the
659         message cache should achieve a similar effect
660         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
661         message cache that keeps a few DBusMessage around in a pool,
662         another 8% speedup or so.
663
664         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
665
666 2004-11-25  Havoc Pennington  <hp@redhat.com>
667
668         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
669         to write, without reading or blocking, try it before the poll()
670         and skip the poll() if nothing remains to write. This is about a
671         3% speedup in the echo client/server
672
673 2004-11-25  Havoc Pennington  <hp@redhat.com>
674
675         The primary change here is to always write() once before adding
676         the write watch, which gives us about a 10% performance increase.
677         
678         * dbus/dbus-transport-unix.c: a number of modifications to cope
679         with removing messages_pending
680         (check_write_watch): properly handle
681         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
682         messages_pending stuff
683         (check_read_watch): properly handle WAITING_FOR_MEMORY and
684         AUTHENTICATED cases
685         (unix_handle_watch): after writing, see if the write watch can be
686         removed
687         (unix_do_iteration): assert that write_watch/read_watch are
688         non-NULL rather than testing that they aren't, since they 
689         aren't allowed to be NULL. check_write_watch() at the end so 
690         we add the watch if we did not finish writing (e.g. got EAGAIN)
691
692         * dbus/dbus-transport-protected.h: remove messages_pending call,
693         since it resulted in too much inefficient watch adding/removing; 
694         instead we now require that the transport user does an iteration 
695         after queueing outgoing messages, and after trying the first
696         write() we add a write watch if we got EAGAIN or exceeded our 
697         max bytes to write per iteration setting
698
699         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
700         function
701
702         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
703         freed and then accessed, valgrind flagged this bug, fix it
704
705         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
706         as the last valid field plus 1, where really it is equal to the
707         last valid field. Corrects some message corruption issues.
708
709         * dbus/dbus-mainloop.c: verbosity changes
710
711         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
712         instead of aborting in one of the test codepaths
713
714         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
715         caused not printing the pid ever again if a verbose was missing
716         the newline at the end
717         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
718
719         * dbus/dbus-connection.c: verbosity changes; 
720         (dbus_connection_has_messages_to_send): new function
721         (_dbus_connection_message_sent): no longer call transport->messages_pending
722         (_dbus_connection_send_preallocated_unlocked): do one iteration to
723         try to write() immediately, so we can avoid the write watch. This
724         is the core purpose of this patchset
725         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
726         dump the outgoing message queue, so nobody will get confused
727         trying to send them or thinking stuff is pending to be sent
728
729         * bus/test.c: verbosity changes
730
731         * bus/driver.c: verbosity/assertion changes
732
733         * bus/dispatch.c: a bunch of little tweaks to get it working again
734         because this patchset changes when/where you need to block.
735
736 2004-11-23  Havoc Pennington  <hp@redhat.com>
737
738         * test/glib/test-profile.c: modify to accept a plain_sockets
739         argument in which case it will bench plain sockets instead of
740         libdbus, for comparison purposes.
741
742 2004-11-22  Havoc Pennington  <hp@redhat.com>
743
744         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
745         threads for more time, so sysprof can get a grip on it.
746
747         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
748         pointless variable
749
750 2004-11-13  Havoc Pennington  <hp@redhat.com>
751
752         * test/glib/test-profile.c: fix this thing up a bit
753
754         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
755         preallocation sizes by a fair bit; not sure if this will be an
756         overall performance win or not, but it does reduce reallocs.
757
758         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
759         the test hack that forced constant realloc if asserts are
760         disabled, so we can profile sanely. Sprinkle in some
761         _DBUS_UNLIKELY() which are probably pointless, but before I
762         noticed the real performance problem I put them in.
763         (_dbus_string_validate_utf8): micro-optimize this thing a little
764         bit, though callgrind says it didn't help; then special-case
765         ascii, which did help a lot; then be sure we detect nul bytes as
766         invalid, which is a bugfix.
767         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
768         superstition; use memset to nul the padding instead of a manual
769         loop.
770         (_dbus_string_get_length): inline this as a
771         macro; it showed up in the profile because it's used for loop
772         tests and so forth
773
774 2004-11-10  Colin Walters  <walters@verbum.org>
775
776         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
777         for extra paranoia.
778
779 2004-11-09  Colin Walters  <walters@verbum.org>
780
781         * dbus/dbus-string.c (_dbus_string_get_length): New
782         function, writes DBusString to C buffer.
783
784         * dbus/dbus-string.h: Prototype it.
785
786         * dbus/dbus-message.c (dbus_message_type_to_string): New
787         function, converts message type into C string.
788
789         * dbus/dbus-message.h: Prototype it.
790
791         * bus/selinux.c (bus_selinux_check): Take source pid,
792         target pid, and audit data.  Pass audit data to
793         avc_has_perm.
794         (log_audit_callback): New function, appends extra
795         audit information.
796         (bus_selinux_allows_acquire_service): Also take
797         service name, add it to audit data.
798         (bus_selinux_allows_send): Also take message
799         type, interface, method member, error name,
800         and destination, and add them to audit data.
801         (log_cb): Initialize func_audit.
802         
803         * bus/selinux.h (bus_selinux_allows_acquire_service)
804         (bus_selinux_allows_send): Update prototypes 
805
806         * bus/services.c (bus_registry_acquire_service): Pass
807         service name to bus_selinux_allows_acquire_service.
808
809         * bus/bus.c (bus_context_check_security_policy): Pass
810         additional audit data.  Move assignment of dest
811         to its own line.
812
813 2004-11-07  Colin Walters  <walters@verbum.org>
814
815         * dbus/dbus-transport-unix.c (do_authentication): Always
816         initialize auth_completed.
817         
818 2004-11-07  Colin Walters  <walters@verbum.org>
819
820         * bus/bus.c (load_config): Break into three
821         separate functions: process_config_first_time_only,
822         process_config_every_time, and process_config_postinit.
823         (process_config_every_time): Move call of
824         bus_registry_set_service_context_table into
825         process_config_postinit.
826         (process_config_postinit): New function, does
827         any processing that needs to happen late
828         in initialization (and also on reload).
829         (bus_context_new): Instead of calling load_config,
830         open config parser here and call process_config_first_time_only
831         and process_config_every_time directly.  Later, after
832         we have forked but before changing UID,
833         invoke bus_selinux_full_init, and then call
834         process_config_postinit.
835         (bus_context_reload_config): As in bus_context_new,
836         load parse file inside here, and call process_config_every_time
837         and process_config_postinit.
838
839         * bus/services.h, bus/services.c
840         (bus_registry_set_service_context_table): Rename
841         from bus_registry_set_sid_table.  Take string hash from config
842         parser, and convert them here into SIDs.
843
844         * bus/config-parser.c (struct BusConfigParser): Have
845         config parser only store a mapping of service->context
846         string.
847         (merge_service_context_hash): New function.
848         (merge_included): Merge context string hashes instead
849         of using bus_selinux_id_table_union.
850         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
851         simply create a new string hash.
852         (bus_config_parser_unref): Unref it.
853         (start_selinux_child): Simply insert strings into hash,
854         don't call bus_selinux_id_table_copy_over.
855
856         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
857         (bus_selinux_id_table_copy_over): Delete.
858
859 2004-11-03  Colin Walters  <walters@verbum.org>
860
861         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
862         variables.
863         
864 2004-11-03  Colin Walters  <walters@verbum.org>
865
866         * bus/test-main.c (test_pre_hook): Fix test logic,
867         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
868
869 2004-11-02  Colin Walters  <walters@redhat.com>
870
871         * bus/selinux.c (bus_selinux_init): Split into two functions,
872         bus_selinux_pre_init and bus_selinux_post_init.
873         (bus_selinux_pre_init): Just determine whether SELinux is
874         enabled.
875         (bus_selinux_post_init): Do everything else.
876
877         * bus/main.c (main): Call bus_selinux_pre_init before parsing
878         config file, and bus_selinux_post_init after.  This ensures that
879         we don't lose the policyreload notification thread that
880         bus_selinux_init created before forking previously.
881         
882         * bus/test-main.c (test_pre_hook): Update for split.
883
884 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
885
886         Patch from Johan Fischer <linux@fischaz.com>
887         
888         * mono/doc/Makefile.am (install-data-local): Added directory
889         install for DESTDIR
890
891 2004-10-29  Colin Walters  <walters@redhat.com>
892
893         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
894         parameter for fd to write pid to.       
895
896         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
897         
898         * bus/bus.c (bus_context_new): Pass print_pid_fd
899         to _dbus_become_daemon (bug #1720)
900
901 2004-10-29  Colin Walters  <walters@redhat.com>
902
903         Patch from Ed Catmur <ed@catmur.co.uk>
904
905         * mono/doc/Makefile.am (install-data-local): Handle
906         DESTDIR.
907
908 2004-10-29  Colin Walters  <walters@redhat.com>
909
910         * bus/.cvsignore, qt/.cvsignore: Update.
911
912 2004-10-29  Colin Walters  <walters@redhat.com>
913
914         Patch from Kristof Vansant <de_lupus@pandora.be>
915
916         * configure.in: Detect Slackware.
917         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
918         * bus/rc.messagebus.in: New file.
919
920 2004-10-29  Colin Walters  <walters@redhat.com>
921
922         * tools/dbus-monitor.c (filter_func): Return
923         DBUS_HANDLER_RESULT_HANDLED in filter function
924         for now.  See:
925         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
926
927 2004-10-29  Colin Walters  <walters@redhat.com>
928
929         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
930
931         * bus/services.c (bus_registry_acquire_service): 
932         Correctly retrieve service name from DBusString
933         for printing.
934
935 2004-10-29  Colin Walters  <walters@redhat.com>
936
937         * dbus/dbus-glib.h: Update documentation to not
938         refer to internal APIs.
939
940 2004-10-27  Joe Shaw  <joeshaw@novell.com>
941
942         * mono/Arguments.cs (GetDBusTypeConstructor):
943         type.UnderlyingSystemType will return "System.Byte" if you do it
944         on "byte[]", which is not what we want.  So check the type.IsArray
945         property and use System.Array instead.
946
947 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
948
949         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
950         the DBusUserInfo structure since this is passed into the function.
951         This would cause a double free when the function that allocated
952         the structure would try to free it when an error occured.
953
954         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
955         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
956         for service activation to avoid 32bit/64bit parallel install issues
957
958 2004-10-21  Colin Walters  <walters@verbum.org>
959
960         * AUTHORS: Fix my email address, the @gnu.org one
961         has been bouncing for some time.  Also add J5.
962         
963 2004-10-21  Colin Walters  <walters@verbum.org>
964
965         * dbus/dbus-transport-unix.c (do_authentication): Return
966         authentication status to callers.
967         (unix_handle_watch): If we completed authentication this round,
968         don't do another read.  Instead wait until the next iteration,
969         after we've read any pending data in the auth buffer.
970         (unix_do_iteration): Ditto.
971         (unix_handle_watch): Updated for new do_authentication prototype.
972
973 2004-10-18  Colin Walters  <walters@verbum.org>
974
975         * bus/selinux.c (bus_selinux_enabled): Handle
976         --disable-selinux case.
977         
978 2004-10-18  Colin Walters  <walters@verbum.org>
979
980         * bus/selinux.h: Add bus_selinux_enabled.
981         
982         * bus/selinux.c (bus_selinux_enabled): Implement it.
983         
984         * bus/config-parser.c (struct include): Add
985         if_selinux_enabled member.
986         (start_busconfig_child): Parse if_selinux_enabled
987         attribute for include.
988         (bus_config_parser_content): Handle it.
989
990         * bus/session.conf.in, bus/system.conf.in: Add
991         inclusion of context mapping to default config files;
992         conditional on SELinux being enabled.
993         
994         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
995         
996         * test/data/invalid-config-files/badselinux-1.conf, 
997         test/data/invalid-config-files/badselinux-2.conf:
998         Test files for bad syntax.
999         
1000 2004-10-17  Colin Walters  <walters@verbum.org>
1001
1002         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
1003         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
1004         format specifier mismatches.
1005
1006 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1007
1008         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
1009         format string.
1010
1011         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
1012         pointer (bug #1540, Leonardo Boiko).
1013
1014 2004-09-28  Jon Trowbridge  <trow@ximian.com>
1015
1016         * mono/BusDriver.cs: Changed BusDriver struct to remove
1017         the ServiceCreated and ServiceDeleted events and replace them
1018         with the new ServiceOwnerChanged event.
1019
1020         * mono/example/BusListener.cs: Added a new example program,
1021         which listens for and reports any ServiceOwnerChanged events
1022         on the bus driver.
1023
1024         * mono/example/Makefile.am (DESTDIR): Build changes for the
1025         new BusListener.cs example.
1026
1027 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1028
1029         * bus/signals.c (bus_match_rule_parse): validate the components of
1030         match rules (bug #1439).
1031
1032         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
1033
1034 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1035
1036         * doc/dbus-specification.xml: document ServiceOwnerChanged
1037         signal.
1038         
1039         * bus/driver.c, bus/driver.h, bus/services.c: Use
1040         ServiceOwnerChanged signal instead of ServiceCreated and
1041         ServiceDeleted.
1042         
1043         * bus/dispatch.c: update testcase for the new signal.
1044
1045 2004-09-20  Jon Trowbridge  <trow@ximian.com>
1046
1047         Patch from Nat Friedman <nat@novell.com>
1048
1049         * mono/Makefile.am: A number of small build fixes to allow "make
1050         distcheck" to succeed.
1051
1052         * mono/example/Makefile.am: "make distcheck" fixes.
1053
1054         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
1055         key in @srcdir@.
1056
1057         * test/Makefile.am: "make distcheck" fixes.
1058
1059 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1060
1061         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
1062
1063         * doc/busconfig.dtd: update the DTD for the at_console attribute.
1064
1065         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
1066         messages after the first one (bug #1389).
1067         
1068         * bus/dispatch.c (check_double_hello_message): add a test case for
1069         the double hello message bug.
1070         (check_existent_service_activation): fix check of spawning error.
1071         
1072 2004-09-16  David Zeuthen  <david@fubar.dk>
1073
1074         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
1075
1076 2004-09-12  David Zeuthen  <david@fubar.dk>
1077
1078         Patch from Kay Sievers <kay.sievers@vrfy.org>
1079
1080         * bus/bus.c (bus_context_new):
1081         * bus/bus.h:
1082         * bus/main.c (usage)
1083         (main):
1084         Add commandline option --nofork to override configuration file
1085         setting.
1086
1087 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1088
1089         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
1090         compilers don't like it (bug #974).
1091
1092 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
1093
1094         * qt/connection.*: Applied patch by Jérôme Lodewyck
1095         <lodewyck@clipper.ens.fr> to integrate an existing
1096         connection into the Qt eventloop
1097
1098 2004-08-30  Jon Trowbridge  <trow@ximian.com>
1099
1100         * mono/BusDriver.cs: Added.  This is a class for interacting with
1101         the org.freedesktop.DBus service.
1102
1103         * mono/Message.cs: Added a mechanism to expose the message that is
1104         currently being dispatched via the static Message.Current
1105         property.  Added Message.Sender and Message.Destination
1106         properties.
1107
1108         * mono/Handler.cs: Expose the dispatched message via
1109         Message.Current when handling method calls.
1110
1111         * mono/Service.cs: Expose the dispatched message via
1112         Message.Current when handling signal emissions.
1113         
1114         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
1115         Connection.BaseService property.
1116
1117 2004-08-28  Havoc Pennington  <hp@redhat.com>
1118
1119         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
1120
1121         More fixes from Steve Grubb
1122         
1123         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
1124         (_dbus_listen_tcp_socket): fix fd leak
1125
1126         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
1127         EINTR to a bit lower in the code
1128
1129 2004-08-26  Jon Trowbridge  <trow@ximian.com>
1130
1131         * bus/driver.c (bus_driver_handle_service_exists): Respond with
1132         TRUE if we are inquiring about the existence of the built-in
1133         org.freedesktop.DBus service.
1134
1135 2004-08-25  John Palmieri  <johnp@redhat.com>
1136         * bus/config-parser.c:
1137         (struct PolicyType): Add POLICY_CONSOLE
1138         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
1139         (start_busconfig_child): Sets up console element when
1140         <policy at_console=""> is encountered in a policy file
1141         (append_rule_from_element): Convert console elements to console
1142         rules.
1143
1144         * bus/policy.c: 
1145         (bus_policy_create_client_policy): Add console rules to the client
1146         policy based on if the client is at the console
1147         (bus_policy_append_console_rule): New function for adding a
1148         console rule to a policy
1149         (bus_policy_merge): Handle console rule merging
1150
1151         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
1152         where we check for console user files
1153         
1154         * dbus/dbus-sysdeps.c:
1155         (_dbus_file_exists): New function which checks if the given
1156         file exists
1157         (_dbus_user_at_console): New function which does the system
1158         specific process of checking if the user is at the console
1159
1160         * dbus/dbus-userdb.c:
1161         (_dbus_is_console_user): New function converts a UID to user name
1162         and then calls the system specific _dbus_user_at_console to 
1163         see if the user is at the console and therefor a console user
1164
1165 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1166
1167         * bus/config-parser.c (set_limit):
1168         * bus/dbus-daemon-1.1.in:
1169         * test/data/valid-config-files/many-rules.conf: set the
1170         max_match_rules_per_connection limt from the config file. 
1171
1172         * doc/busconfig.dtd: update the DTD.
1173
1174         * bus/driver.c: remove some unused variables.
1175
1176 2004-08-24  Mikael Hallendal  <micke@imendio.com>
1177
1178         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
1179         it's been replaced by dbus_g_bus_get
1180
1181 2004-08-23  Colin Walters  <walters@redhat.com>
1182
1183         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1184
1185         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
1186
1187         * bus/selinux.c: Create a thread for policy reload notification.
1188         (bus_selinux_get_policy_root): Implement.
1189
1190         * bus/config-parser.c (start_busconfig_child)
1191         (bus_config_parser_content): Support SELinux-root relative
1192         inclusion.
1193
1194         * configure.in <HAVE_SELINUX>: Add -lpthread.
1195         
1196         * bus/test-main.c (test_pre_hook, test_post_hook): New.
1197         (test_post_hook): Move memory checking into here.
1198         (test_pre_hook, test_post_hook): Move SELinux checks in
1199         here, but conditional on a DBUS_TEST_SELINUX environment
1200         variable.  Unfortunately we can't run the SELinux checks
1201         as a normal user, since they won't have any permissions
1202         for /selinux.  So this will have to be tested manually
1203         for now, until we have virtualization for most of
1204         libselinux.
1205         
1206 2004-08-23  Havoc Pennington  <hp@redhat.com>
1207
1208         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
1209         drop supplementary groups, suggested by Steve Grubb
1210
1211 2004-08-20  Colin Walters  <walters@redhat.com>
1212
1213         * bus/config-parser.c (start_busconfig_child): Remove some unused
1214         variables.
1215         
1216         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
1217         warning.
1218
1219 2004-08-17  Joe Shaw  <joeshaw@novell.com>
1220
1221         * configure.in: If --enable-mono is passed in, if we can't find
1222         mono error out.
1223
1224         * mono/Makefile.am: Use /gacutil to install assemblies into the
1225         GAC and not /root.
1226
1227 2004-08-12  Havoc Pennington  <hp@redhat.com>
1228
1229         * NEWS: update for 0.22
1230
1231         * configure.in: release 0.22
1232
1233 2004-08-11  Colin Walters  <walters@redhat.com>
1234
1235         * tools/dbus-send.c (main, usage): Add --reply-timeout
1236         argument.
1237
1238 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1239
1240         * bus/bus.c (process_config_first_time_only): get rid of an unused
1241         DBusError that was causing a memoy leak (bug #989).
1242
1243         * dbus/dbus-keyring.c, dbus/dbus-message.c:
1244         fix compilation on Solaris/Forte C (bug #974)
1245
1246         * bus/main.c (main): plug two minuscule memleaks.
1247
1248 2004-08-10  Havoc Pennington  <hp@redhat.com>
1249
1250         * doc/dbus-tutorial.xml: add some more info on GLib bindings
1251
1252 2004-08-09  Havoc Pennington  <hp@redhat.com>
1253
1254         * COPYING: switch to Academic Free License version 2.1 instead of
1255         2.0, to resolve complaints about patent termination clause.
1256
1257 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
1258
1259         * README: added documentation for the --enable-python 
1260         configure switch.
1261
1262 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1263
1264         * bus/config-parser.c (bus_config_parser_new): fix an invalid
1265         _unref in the SELinux support.
1266
1267         * doc/busconfig.dtd: update DTD for SELinux support.
1268
1269         * bus/config-loader-libxml.c: fix error handler and parser
1270         initialisation/cleanup. OOM test now works with libxml2 HEAD.
1271
1272         * configure.in: remove the warning about libxml2.
1273
1274         * dbus/dbus-bus.c: silence doxygen warning.
1275
1276 2004-07-31  Colin Walters  <walters@redhat.com>
1277
1278         * configure.in: Move #error in SELinux check to its own line.
1279
1280 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1281
1282         * dbus/dbus-internals.h (_DBUS_SET_OOM):
1283         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
1284         dbus_error_set.
1285
1286         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
1287         broken by the change in the _SET_OOM macros.
1288
1289 2004-07-31  Colin Walters  <walters@redhat.com>
1290
1291         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
1292         BUS_SET_OOM.
1293
1294 2004-07-31  Colin Walters  <walters@redhat.com>
1295
1296         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
1297         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
1298         AC_MSG_CHECKING.
1299
1300 2004-07-24  Havoc Pennington  <hp@redhat.com>
1301
1302         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1303
1304         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
1305         functionality
1306
1307         * configure.in: add --enable-selinux
1308         
1309         * bus/policy.c (bus_policy_merge): add FIXME to a comment
1310
1311         * bus/main.c (main): initialize and shut down selinux
1312
1313         * bus/connection.c: store SELinux ID on each connection, to avoid 
1314         repeated getting of the string context and converting it into 
1315         an ID
1316
1317         * bus/bus.c (bus_context_get_policy): new accessor, though it
1318         isn't used
1319         (bus_context_check_security_policy): check whether the security
1320         context of sender connection can send to the security context of
1321         recipient connection
1322
1323         * bus/config-parser.c: add parsing for <selinux> and <associate>
1324         
1325         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
1326         implement dbus_connection_get_unix_fd()
1327
1328         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
1329         function, used by the selinux stuff
1330         
1331 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1332
1333         * bus/config-loader-libxml.c: complete the implementation of
1334         libxml backend for config file loader. Doesn't work with full OOM
1335         test yet. 
1336         
1337         * configure.in: change error when selecting libxml into a warning.
1338         
1339         * test/data/invalid-config-files: add two non-well-formed XML
1340         files. 
1341         
1342         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
1343         
1344         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
1345         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
1346         be necessary to read all the buffer. (bug #894)
1347
1348         * bus/activation.c (bus_activation_activate_service): fix a
1349         potential assertion failure (bug #896). Small optimization in the
1350         case of auto-activation messages.
1351
1352         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
1353         add test case for byte-through-vararg bug (#901). patch by Kimmo
1354         Hämäläinen. 
1355
1356 2004-07-28  Anders Carlsson  <andersca@gnome.org>
1357
1358         * python/dbus.py:
1359         * python/dbus_bindings.pyx.in:
1360         Add dbus.init_gthreads (), allow emit_signal to pass
1361         arguments to the signal.
1362         
1363 2004-07-24  Havoc Pennington  <hp@redhat.com>
1364
1365         * AUTHORS: add some people, not really comprehensively, let me
1366         know if I missed you
1367
1368 2004-07-24  Havoc Pennington  <hp@redhat.com>
1369
1370         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
1371         Owen
1372
1373         * test/Makefile.am (DIST_SUBDIRS): here also
1374
1375 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1376
1377         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
1378         breaking build on Solaris, reported by Farhad Saberi on the ML.
1379
1380         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
1381         va_arg invocation to account for integer promotion in the case of
1382         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
1383
1384         * bus/services.c (bus_service_remove_owner): fix bug #902, use
1385         _dbus_list_get_first_link, not _dbus_list_get_first.
1386
1387         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
1388
1389         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
1390         handler functions so that the asserts in _dbus_object_subtree_unref
1391         do not fail.
1392
1393         * dbus/dbus-transport-unix.c (do_reading):
1394         _dbus_transport_queue_messages return value is of type
1395         dbus_bool_t, not DBusDispatchStatus.
1396         
1397 2004-07-19  David Zeuthen  <david@fubar.dk>
1398
1399         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
1400
1401         * bus/dispatch.c:
1402         (check_get_connection_unix_user): Debug says GetProperty; but the
1403         method is called GetConnectionUnixUser
1404         (check_get_connection_unix_process_id): New function
1405         (bus_dispatch_test): Actually call check_get_connection_unix_user();
1406         also call check_get_connection_unix_process_id()
1407         
1408         * bus/driver.c:
1409         (bus_driver_handle_get_connection_unix_process_id): New function,
1410         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
1411         interface
1412         
1413         * dbus/dbus-auth.c:
1414         (handle_server_data_external_mech): Set pid from the credentials
1415         obtained from the socket
1416         
1417         * dbus/dbus-connection.c:
1418         (dbus_connection_get_unix_process_id): New function
1419         
1420         * dbus/dbus-connection.h: 
1421         Add prototype for dbus_connection_get_unix_process_id
1422         
1423         * dbus/dbus-transport.c:
1424         (_dbus_transport_get_unix_process_id): New function
1425         
1426         * dbus/dbus-transport.h:
1427         Add prototype for _dbus_transport_get_unix_process_id
1428         
1429 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1430
1431         * dbus/dbus-message.c: Message counter fix, patch by Christian
1432         Hammond <chipx86@gnupdate.org>
1433
1434 2004-07-18  Seth Nickell  <seth@gnome.org>
1435
1436         * python/dbus.py:
1437         * python/dbus_bindings.pyx.in:
1438         * python/tests/test-client.py:
1439
1440         Add dbus.ByteArray and dbus_bindings.ByteArray
1441         types so that byte streams can be passed back.
1442
1443         Give jdahlin the heaps of credit that are so
1444         rightfully his.
1445         
1446 2004-07-12  Seth Nickell  <seth@gnome.org>
1447
1448         * python/dbus.py:
1449
1450         Add message argument to the default object_method_handler
1451         function.
1452         
1453         * python/dbus_bindings.pyx.in:
1454
1455         Automatically return NIL when passed an empty list
1456         (we can't pass back a list since lists are typed
1457         and we don't have any idea what type the the client
1458         intended the list to be... :-( )
1459         
1460 2004-07-10  Seth Nickell  <seth@gnome.org>
1461
1462         * python/examples/Makefile.am:
1463
1464         Fix distcheck breakage caused by new examples.
1465
1466 2004-07-10  Seth Nickell  <seth@gnome.org>
1467
1468         * python/dbus.py:
1469
1470         Add "message" argument to service-side dbus.Object
1471         methods. This will break existing services written
1472         using the python bindings, but will allow extraction
1473         of all the message information (e.g. who its from).
1474
1475         Add improved "object oriented" signal handling/emission.
1476         
1477         * python/examples/example-service.py:
1478
1479         Nix this example.
1480         
1481         * python/examples/example-signal-emitter.py:
1482         * python/examples/example-signal-recipient.py:
1483
1484         Two new examples that show how to emit and receive
1485         signals using the new APIs.
1486         
1487         * python/examples/example-signals.py:
1488         * python/examples/gconf-proxy-service.py:
1489         * python/examples/gconf-proxy-service2.py:
1490
1491         Add "message" argument to service methods.
1492
1493 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
1494
1495         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
1496         * dbus/bus.c (dbus_bus_get_unix_user)
1497         * doc/dbus-specification.xml: implement GetConnectionUnixUser
1498         method of org.freedesktop.DBus interface.
1499
1500         * bus/dispatch.c: test case
1501
1502 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
1503
1504         * python/Makefile.am: switched include directory from glib/ to dbus/
1505         since dbus-glib.h moved
1506  
1507 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1508
1509         * configure.in: prevent building the gcj stuff and libxml loader
1510         since they are broken.
1511
1512 2004-06-20  Havoc Pennington  <hp@redhat.com>
1513
1514         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
1515         codes from the dbus error names
1516         
1517         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
1518         as dbus/dbus-glib.h and that breakage is now visible due to 
1519         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
1520         
1521         * glib/dbus-glib.h: s/gproxy/g_proxy/
1522
1523         * dbus/dbus-shared.h: new header to hold stuff shared with
1524         binding APIs
1525         
1526         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1527         than dbus-errors.h
1528
1529         * glib/dbus-glib.h (dbus_set_g_error): move to
1530         dbus-glib-lowlevel.h
1531
1532         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1533         of stuff to enable this
1534
1535         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1536
1537         * a bunch of other changes with the same basic "separate glib 
1538         bindings from dbus.h" theme
1539         
1540 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
1541
1542         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1543
1544         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1545
1546 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1547
1548         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1549         the reply value of the ServiceExists message.
1550
1551 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
1552
1553         * python/dbus_bindings.pyx.in: No longer need to parse path
1554         elements and pass them as arrays of strings.  The C API now
1555         accepts plain path strings.
1556         (_build_parsed_path): removed 
1557
1558 2004-06-07  Havoc Pennington  <hp@redhat.com>
1559
1560         * doc/TODO: remove auto-activation item since it's done; sort
1561         items by importance/milestone
1562
1563 2004-06-07  Havoc Pennington  <hp@redhat.com>
1564
1565         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1566         random signature when using REQUIRED_FIELDS (this hack won't work
1567         in the long term)
1568
1569         * dbus/dbus-message.c: change the signature to be a header field,
1570         instead of message->signature special-case string. Incremental
1571         step forward. Then we can fix up code to send the signature in the
1572         message, then fix up code to validate said signature, then fix up
1573         code to not put the typecodes inline, etc.
1574         (load_one_message): don't make up the signature after the fact
1575         (decode_header_data): require signature field for the known
1576         message types
1577
1578         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1579
1580         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1581
1582 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
1583
1584         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1585
1586         * mono/Handler.cs: Updated to follow new path argument for
1587         (un-)registering objects.
1588
1589         * mono/example/Makefile.am:
1590         * mono/Makefile.am:
1591         * configure.in: Bumped required version for mono and use new -pkg
1592         syntax for deps
1593
1594 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1595
1596         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1597         registration functions take the path argument as char* instead of
1598         char**.
1599
1600         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1601         split off the path decompostion part of
1602         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1603         warnings. 
1604
1605         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1606         
1607 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
1608  
1609         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1610         machine approach.  A state is implemented as a function that
1611         handles incoming events as specified for that state.
1612         
1613         * doc/dbus-specification.xml: Update auth protocol state machine
1614         specification to match implementation.  Remove some leftover
1615         base64 examples.
1616
1617 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
1618
1619         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1620         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1621         quiet doxygen.
1622
1623         * Doxyfile.in: remove deprecated options.
1624
1625         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1626         glib/test-thread.h, glib/test-thread-client.c,
1627         glib/test-thread-server.c, glib/test-profile.c,
1628         glib/test-dbus-glib.c: remove these unused files.
1629
1630 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1631
1632         * dbus/dbus-object-tree.c
1633         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1634         non-fallback handlers (bug #684).
1635         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1636         (find_subtree_recurse): report wether the returned subtree is an
1637         exact match or a "fallback" match higher up in the tree.
1638         (object_tree_test_iteration): update test case.
1639
1640 2004-06-01  Seth Nickell  <seth@gnome.org>
1641
1642         * python/dbus_bindings.pyx.in:
1643         * python/tests/test-client.py:
1644
1645         Round off basic type support. Add dicts (yay!), and 
1646         remaining array types.
1647
1648         Make MessageIter more general so it works for dicts too.
1649
1650         Mark all loop variables as C integers.
1651         
1652 2004-05-31  Havoc Pennington  <hp@redhat.com>
1653
1654         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1655         "in" before "out"
1656
1657         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1658
1659         * glib/dbus-glib-tool.c (main): set up to have a --self-test
1660         option that runs the tests, and start filling in some code
1661         including for starters just dumping the interfaces to stdout
1662
1663         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1664
1665         * test/data/valid-introspection-files/lots-of-types.xml: test of
1666         an example introspection file
1667
1668         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1669         "node" (I think...)
1670
1671 2004-05-31  Seth Nickell  <seth@gnome.org>
1672
1673         * python/dbus_bindings.pyx.in:
1674         * python/tests/test-client.py:
1675
1676         Test Suite: 1
1677         Python Bindings: 0
1678
1679         Fix string array memory trashing bug... oops...
1680
1681 2004-05-30  Seth Nickell  <seth@gnome.org>
1682
1683         * python/dbus.py:
1684
1685         Add a nicer-but-less-flexible alternate API for handling 
1686         calls to virtual objects in dbus.ObjectTree.
1687
1688         Screw up the argument order to the dbus.Object constructor
1689         for consistency with dbus.ObjectTree (and to make dbus_methods
1690         optional for future extension)
1691         
1692         * python/examples/Makefile.am:
1693         * python/examples/gconf-proxy-service.py:
1694         * python/examples/gconf-proxy-service2.py:
1695
1696         Alternate implementation of gconf-proxy-service using the
1697         nicer dbus.ObjectTree API.
1698         
1699         * python/examples/example-service.py:
1700         * python/tests/test-server.py
1701
1702         Reverse the argument order to deal with dbus.Object constructor
1703         changes.
1704         
1705 2004-05-30  Seth Nickell  <seth@gnome.org>
1706
1707         * python/examples/example-client.py:
1708         * python/examples/example-service.py:
1709
1710         Take it back. Lists seem to work but they're broken
1711         in the test suite. Make the base examples use
1712         lists (works fine).
1713
1714 2004-05-30  Seth Nickell  <seth@gnome.org>
1715
1716         * python/dbus_bindings.pyx.in:
1717         * python/tests/test-client.py:
1718
1719         Add some more tests and fix errors that crop up.
1720         Unfortunately, currently it seems like marshalling
1721         and unmarshalling of lists is completely broken :-(
1722
1723 2004-05-30  Seth Nickell  <seth@gnome.org>
1724
1725         * python/dbus_bindings.pyx.in:
1726
1727         Add support for ObjectPath type.
1728
1729         * python/dbus.py:
1730
1731         Refactor message handling code to a common function.
1732         
1733         * python/tests/test-client.py:
1734         * python/tests/test-server.py:
1735
1736         Add tests that check to make sure values of all types
1737         can be echoed from a service w/o mangling.
1738         
1739 2004-05-29  Seth Nickell  <seth@gnome.org>
1740
1741         * python/dbus.py:
1742
1743         Add ObjectTree class which allows implementation
1744         of trees of "virtual" objects. Basically the python
1745         wrapper for "register_fallback".
1746         
1747         * python/examples/Makefile.am
1748         * python/examples/gconf-proxy-client.py:
1749         * python/examples/gconf-proxy-service.py:
1750
1751         Implement a simple GConf proxy service that supports
1752         get/set on string and int GConf keys using the ObjectTree.
1753         
1754 2004-05-29  Seth Nickell  <seth@gnome.org>
1755
1756         * python/dbus.py:
1757         * python/examples/example-client.py:
1758         * python/examples/example-service.py:
1759         * python/examples/list-system-services.py:
1760
1761         Add SessionBus, SystemBus and ActivationBus classes
1762         so you don't need to know the special little BUS_TYPE
1763         flag.
1764         
1765 2004-05-29  Havoc Pennington  <hp@redhat.com>
1766
1767         * bus/config-parser.c (process_test_valid_subdir): temporarily
1768         stop testing config parser OOM handling, since expat has issues
1769         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1770
1771         * bus/dbus-daemon-1.1.in: change requested_reply to
1772         send_requested_reply/receive_requested_reply so we can send the
1773         replies, not just receive them.
1774
1775         * bus/config-parser.c: parse the new
1776         send_requested_reply/receive_requested_reply
1777
1778         * bus/policy.c (bus_client_policy_check_can_send): add
1779         requested_reply argument and use it
1780
1781         * bus/bus.c (bus_context_check_security_policy): pass through
1782         requested_reply status to message send check
1783
1784         * bus/system.conf.in: adapt to requested_reply change
1785         
1786 2004-05-28  Havoc Pennington  <hp@redhat.com>
1787
1788         * test/glib/test-service-glib.c (main): remove unused variable
1789
1790         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1791
1792         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1793         from the enum, no longer in use.
1794
1795         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1796         works right.
1797
1798         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1799         whether error_name passed in is a valid error name.
1800
1801 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
1802
1803         * dbus/dbus-message.c (dbus_message_get_args): Added support for
1804         OBJECT_PATH and OBJECT_PATH_ARRAY
1805
1806 2004-05-28  Seth Nickell  <seth@gnome.org>
1807
1808         * python/examples/Makefile.am:
1809
1810         Forget to add Makefile.am. Do not pass go.
1811
1812 2004-05-28  Michael Meeks  <michael@ximian.com>
1813
1814         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
1815         fix no int64 case.
1816
1817         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1818
1819         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1820         (_dbus_message_iter_get_basic_type_array): impl.
1821         drastically simplify ~all relevant _get methods to use these.
1822         (_dbus_message_iter_append_basic_array),
1823         (dbus_message_iter_append_basic): impl
1824         drastically simplify ~all relevant _append methods to use these.
1825
1826         * dbus/dbus-message-builder.c (parse_basic_type) 
1827         (parse_basic_array, lookup_basic_type): impl.
1828         (_dbus_message_data_load): prune scads of duplicate /
1829         cut & paste coding.
1830
1831         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
1832         (_dbus_demarshal_basic_type): implement,
1833         (demarshal_and_validate_len/arg): beef up debug.
1834         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1835
1836 2004-05-27  Seth Nickell  <seth@gnome.org>
1837
1838         * configure.in:
1839         * python/Makefile.am:
1840
1841         Include the example python apps in the tarball.
1842         
1843         * python/examples/list-system-services.py
1844
1845         Add a python new example that fetches the list of services
1846         from the system bus.
1847         
1848 2004-05-27  Seth Nickell  <seth@gnome.org>
1849
1850         * python/dbus.py:
1851         * python/dbus_bindings.pyx.in:
1852
1853         Fix failure to notify that a signal was not handled,
1854         resulted in hung functions.
1855         
1856 2004-05-25  Colin Walters  <walters@redhat.com>
1857
1858         * tools/dbus-monitor.c (main): Monitor all types of messages.
1859
1860 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
1861
1862         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1863         which unregisters the object path and disposes the handler.
1864
1865 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
1866  
1867         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1868          
1869         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1870         operands to && so we call dbus_message_iter_next () for the last
1871         argument also.
1872
1873 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1874
1875         * dbus/dbus-object-tree.c
1876         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1877         children even if the requested path isn't registered.
1878         (object_tree_test_iteration): test object_tree_list_registered.
1879
1880         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1881         it to 0.
1882         
1883 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
1884
1885         * doc/TODO: Remove resolved items.
1886
1887         * bus/expirelist.h (struct BusExpireList): remove unused n_items
1888         field.
1889         
1890         * bus/connection.c (bus_connections_expect_reply): Enforce the
1891         per-connection limit on pending replies.
1892         
1893         Patch from Jon Trowbridge <trow@ximian.com>:
1894  
1895         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
1896         up a watch that triggers a config reload when one end of the pipe
1897         becomes readable.
1898         (signal_handler): Instead of doing the config reload in our SIGHUP
1899         handler, just write to the reload pipe and let the associated
1900         watch handle the reload when control returns to the main loop.
1901  
1902         * bus/driver.c (bus_driver_handle_reload_config): Added.
1903         Implements a ReloadConfig method for requesting a configuration
1904         file reload via the bus driver.
1905  
1906 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
1907
1908         * HACKING: Updated release instructions concerning the wiki page.
1909
1910 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
1911
1912         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1913         filter against auth->allowed_mechs; we only add allowed mechs in
1914         record_mechanisms().
1915  
1916         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1917         ALLOWED_MECHS to auth-script format so we can set the list of
1918         allowed mechanisms.
1919  
1920         * data/auth/client-out-of-mechanisms.auth-script: New test to
1921         check client disconnects when it is out of mechanisms to try.
1922  
1923         * dbus/dbus-auth.c (process_command): Remove check for lines
1924         longer that 1 MB; we only buffer up maximum 16 kB.
1925  
1926         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1927         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1928         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1929         assume there might be unused bytes.
1930  
1931         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1932         client-out-of-mechs, it is handled in process_reject(). Move check
1933         for max failures to send_rejected(), as it's a server-only thing.
1934
1935         * dbus/dbus-auth.c: Factor out protocol reply code into functions
1936         send_auth(), send_data(), send_rejected(), send_error(),
1937         send_ok(), send_begin() and send_cancel().
1938
1939 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
1940
1941         Remove base64 encoding, replace with hex encoding. Original patch
1942         from trow@ximian.com, added error handling.
1943
1944         * dbus/dbus-string.c (_dbus_string_base64_encode)
1945         (_dbus_string_base64_decode): Remove.
1946         (_dbus_string_hex_decode): Add end_return argument so we can
1947         distinguish between OOM and invalid hex encoding.
1948         (_dbus_string_test): Remove base64 tests and add test case for
1949         invalid hex.
1950
1951         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1952         Replace base64 with hex.
1953
1954         * test/data/auth/invalid-hex-encoding.auth-script: New test case
1955         for invalid hex encoded data in auth protocol.
1956
1957 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1958
1959         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1960         leak.
1961
1962 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
1963
1964         * mono/dbus-sharp.dll.config.in: Added for GAC
1965         * mono/dbus-sharp.snk: Added for GAC
1966         * mono/Assembly.cs.in: Added for GAC
1967         * mono/Makefile.am: Changes for GAC installation        
1968         * configure.in: Added refs for dbus-sharp.dll.config.in and
1969         Assembly.cs.in. More fixes for mono testing
1970         * mono/example/Makefile.am: Changed var to CSC
1971         * Makefile.am: Changed flag name to DBUS_USE_CSC
1972
1973 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
1974
1975         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1976         * mono/doc/*: Added documentation framework
1977         * configure.in: Added monodoc check
1978         * README: Added description of mono configure flags
1979
1980 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
1981
1982         * doc/dbus-specification.xml: Added a "Required" column to the 
1983         header fields table and changed the "zero or more" verbage in
1984         the above paragraph to read "The header must contain the required 
1985         named header fields and zero or more of the optional named header 
1986         fields".
1987         * test/data/invalid-messages/*.message: Added the required PATH 
1988         named header field to the tests so that they don't fail on 
1989         'Missing path field'
1990
1991 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
1992
1993         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1994         the stack by implicitly defining variable and parameter types and
1995         removing the hack of defining C pointers as python objects and later
1996         casting them.
1997
1998 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
1999
2000         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
2001
2002 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
2003
2004         * mono/DBusType/Dict.cs: Handle empty dicts
2005         * mono/DBusType/Array.cs: Handle empty arrays
2006         * mono/Arguments.cs: Handle empty arguments
2007
2008 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
2009
2010         * dbus-sharp.pc.in: Modified to include include Libs and Requires
2011         field
2012
2013 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
2014
2015         * test/data/valid-messages/standard-*.message: Update message
2016         test scripts to new header field names.
2017
2018 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
2019
2020         * test/break-loader.c (randomly_do_n_things): tracked down buffer
2021         overflow to times_we_did_each_thing array which would chop off the
2022         first character of the failure_dir string. Increased the size of
2023         the array to 7 to reflect the number of random mutation functions
2024         we have.
2025
2026 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
2027
2028         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
2029         unix_server->watch here, it is unreffed in disconnect.
2030         (_dbus_server_new_for_tcp_socket): convert NULL host to
2031         "localhost" here so we don't append NULL to address.
2032         
2033         * dbus/dbus-server.c (_dbus_server_test): Add test case for
2034         various addresses, including tcp with no explicit host.
2035
2036 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2037
2038         * dbus/dbus-message.c (decode_header_data, decode_string_field):
2039         fix incorrect setting of .name_offset in the HeaderField (it was
2040         off by two bytes, positioned right after the name and typecode)
2041
2042         * bus/bus.c (bus_context_new, bus_context_unref): test before
2043         calling dbus_server_free_data_slot and _dbus_user_database_unref
2044         in case of an error.
2045
2046         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
2047         by libdbus-gtool.
2048
2049 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
2050
2051         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
2052         _dbus_poll() instead of select().
2053
2054 2004-04-15  Jon Trowbridge  <trow@ximian.com>
2055
2056         * bus/main.c (signal_handler): Reload the configuration files
2057         on SIGHUP.
2058         (main): Set up our SIGHUP handler.
2059
2060         * bus/bus.c (struct BusContext): Store the config file, user and
2061         fork flag in the BusContext.
2062         (process_config_first_time_only): Added.  Contains the code
2063         (previously in bus_context_new) for setting up the BusContext from
2064         the BusConfigParser that should only be run the first time the
2065         config files are read.
2066         (process_config_every_time): Added.  Contains the code (previously
2067         in bus_context_new) for setting up the BusContext from the
2068         BusConfigParser that should be run every time the config files are
2069         read.
2070         (load_config): Added.  Builds a BusConfigParser from the config
2071         files and passes the resulting structure off to
2072         process_config_first_time_only (assuming this is the first time)
2073         and process_config_every_time.
2074         (bus_context_new): All of the config-related code has been moved
2075         to process_config_first_time_only and process_config_every_time.
2076         Now this function just does the non-config-related initializations
2077         and calls load_config.
2078         (bus_context_reload_config): Added.
2079
2080 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2081
2082         * bus/driver.c (bus_driver_handle_get_service_owner):
2083         implement a GetServiceOwner method.
2084         * doc/dbus-specification.xml: document it.
2085         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
2086         
2087         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
2088         implement, using the bus GetServiceOwner method.
2089
2090         * test/glib/test-dbus-glib.c:
2091         use dbus_gproxy_new_for_service_owner so that we can receive the
2092         signal. 
2093
2094 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
2095
2096         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2097         dbus/dbus-message.c, dbus/dbus-protocol.h
2098         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
2099
2100         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2101         dbus/dbus-message.c, dbus/dbus-protocol.h
2102         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
2103
2104         * dbus/dbus-internals.c (_dbus_header_field_to_string):
2105         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
2106         DBUS_HEADER_FIELD_SENDER resolves to "sender"
2107
2108         * doc/dbus-specification.xml (Header Fields Table):
2109         s/SERVICE/DESTINATION
2110         s/SENDER_SERVICE/SENDER
2111
2112
2113 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2114
2115         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
2116         a few seconds.
2117
2118 2004-04-13  Michael Meeks  <michael@ximian.com>
2119
2120         * glib/dbus-gobject.c (handle_introspect): split out
2121         (introspect_properties): this.
2122         (handle_introspect): implement this.
2123
2124         * test/glib/Makefile.am: use the absolute path so the bus
2125         daemon's chdir ("/") doesn't kill us dead.
2126
2127         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
2128
2129 2004-04-12  Jon Trowbridge  <trow@ximian.com>
2130
2131         * bus/config-parser.c (struct BusConfigParser): Added
2132         included_files field.
2133         (seen_include): Added.  Checks whether or not a file has already
2134         been included by any parent BusConfigParser.
2135         (bus_config_parser_new): Copy the parent's included_files.
2136         (include_file): Track which files have been included, and fail on
2137         circular inclusions.
2138         (process_test_valid_subdir): Changed printf to report if we are
2139         testing valid or invalid conf files.
2140         (all_are_equiv): Changed printf to be a bit clearer about
2141         what we are actually doing.
2142         (bus_config_parser_test): Test invalid configuration files.
2143
2144 2004-04-09  Jon Trowbridge  <trow@ximian.com>
2145
2146         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
2147         argument.  If non-null, the newly-constructed BusConfigParser will
2148         be initialized with the parent's BusLimits instead of the default
2149         values.
2150         (include_file): When including a config file, pass in
2151         the current parser as the parent and then copy the BusLimits
2152         from the included BusConfigParser pack to the current parser.
2153         (process_test_valid_subdir): Renamed from process_test_subdir.
2154         (process_test_equiv_subdir): Added.  Walks through a directory,
2155         descending into each subdirectory and loading the config files
2156         it finds there.  If any subdirectory contains two config files
2157         that don't produce identical BusConfigParser structs, fail.
2158         For now, the BusConfigParser's BusPolicies are not compared.
2159         (bus_config_parser_test): Call both process_test_valid_subdir and
2160         process_test_equiv_subdir.
2161
2162         * bus/config-loader-libxml.c (bus_config_load): Take a parent
2163         argument and pass it along to the call to bus_config_parser_new.
2164         Also made a few small changes to allow this code to compile.
2165
2166         * bus/config-loader-expat.c (bus_config_load): Take a parent
2167         argument and pass it along to the call to bus_config_parser_new.
2168
2169         * bus/bus.c (bus_context_new): Load the config file
2170         with a NULL parent argument.
2171
2172 2004-03-29  Michael Meeks  <michael@ximian.com>
2173
2174         * glib/dbus-gobject.c (introspect_properties): split
2175         out, fix mangled 'while' flow control.
2176         (introspect_signals): implement.
2177         (handle_introspect): update.
2178
2179 2004-03-29  Michael Meeks  <michael@ximian.com>
2180
2181         * glib/dbus-gobject.c (set_object_property): split out / 
2182         re-work, use the property type, and not the message type(!)
2183         (get_object_property): ditto.
2184
2185         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
2186         (dbus_gvalue_marshal): make this code re-usable, needed
2187         for signals too, also on both proxy and server side.
2188         Re-write for more efficiency / readability.
2189
2190 2004-03-29  Michael Meeks  <michael@ximian.com>
2191
2192         * dbus/dbus-message.c
2193         (dbus_message_new_error_printf): impl.
2194
2195         * dbus/dbus-connection.c
2196         (dbus_connection_unregister_object_path): fix warning.
2197
2198         * configure.in: fix no-mono-installed situation.
2199
2200 2004-03-27  Havoc Pennington  <hp@redhat.com>
2201
2202         Patch from Timo Teräs:
2203         
2204         * tools/dbus-send.c (main): if --print-reply, assume type is
2205         method call; support boolean type args
2206         
2207         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
2208         bunch of memleak and logic bugs
2209         
2210 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
2211
2212         * mono/Arguments.cs:
2213         * mono/Introspector.cs:
2214         * mono/Handler.cs:
2215         * mono/InterfaceProxy.cs:
2216         * mono/Message.cs
2217         * mono/ProxyBuilder.cs:
2218         * mono/Service.cs:
2219         Added InterfaceProxy class to avoid building proxies for every
2220         object.
2221
2222         * dbus-message.h:
2223         * dbus-message.c (dbus_message_append_args_valist)
2224         (dbus_message_iter_get_object_path)
2225         (dbus_message_iter_get_object_path_array)
2226         (dbus_message_iter_append_object_path)
2227         (dbus_message_iter_append_object_path_array):
2228         Added object_path iter functions to handle OBJECT_PATH arguments
2229         
2230 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
2231
2232         First checkin of mono bindings.
2233         * configure.in:
2234         * Makefile.am:
2235         Build stuff for the bindings
2236         * dbus-sharp.pc.in: Added for pkgconfig
2237         
2238 2004-03-21  Havoc Pennington  <hp@redhat.com>
2239
2240         * test/test-service.c (main): remove debug spew
2241
2242 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2243
2244         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
2245         arrays
2246
2247         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
2248         (dbus_message_iter_init_array_iterator)
2249         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
2250         indicate whether the iterator is empty
2251
2252         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
2253         warnings
2254
2255 2004-03-19  Havoc Pennington  <hp@redhat.com>
2256
2257         * NEWS: 0.21 updates
2258
2259         * configure.in: 0.21
2260
2261         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
2262         
2263         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
2264         you don't need pyrex to make dist
2265
2266         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
2267         sources; run moc
2268         
2269 2004-03-18  Richard Hult  <richard@imendio.com>
2270
2271         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
2272         (dbus_message_set_auto_activation): Add doxygen docs.
2273
2274 2004-03-16  Richard Hult  <richard@imendio.com>
2275
2276         * bus/activation.c: (bus_activation_service_created),
2277         (bus_activation_send_pending_auto_activation_messages),
2278         (bus_activation_activate_service):
2279         * bus/activation.h:
2280         * bus/dispatch.c: (bus_dispatch),
2281         (check_nonexistent_service_auto_activation),
2282         (check_service_auto_activated),
2283         (check_segfault_service_auto_activation),
2284         (check_existent_service_auto_activation), (bus_dispatch_test):
2285         * bus/driver.c: (bus_driver_handle_activate_service):
2286         * bus/services.c: (bus_registry_acquire_service):
2287         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
2288         (dbus_message_get_auto_activation):
2289         * dbus/dbus-message.h:
2290         * dbus/dbus-protocol.h: Implement auto-activation.
2291         
2292         * doc/dbus-specification.xml: Add auto-activation to the spec.
2293
2294 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2295
2296         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
2297         fix a bug with CUSTOM types.
2298
2299         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
2300         a unit test for this bug (used to fail).
2301
2302 2004-03-12  Mikael Hallendal  <micke@imendio.com>
2303
2304         * bus/activation.c:
2305         (babysitter_watch_callback): notify all pending activations waiting for
2306           the same exec that the activation failed.
2307         (bus_activation_activate_service): shortcut the activation if we 
2308           already waiting for the same executable to start up.
2309
2310 2004-03-12  Mikael Hallendal  <micke@imendio.com>
2311
2312         * bus/activation.c: 
2313         - Added service file reloading. 
2314           Each service files directory is kept in an hash table in 
2315           BusActivation and each BusActivationEntry knows what .service-file it
2316           was read from. So when you try to activate a service the bus will 
2317           check if it's been updated, removed or if new .service-files has 
2318           been installed.
2319         - Test code at the bottom for the service file reloading.
2320         * bus/test-main.c: (main):
2321         * bus/test.h:
2322         - added service reloading test.
2323         * dbus/dbus-sysdeps.c: 
2324         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
2325
2326 2004-03-08  Michael Meeks  <michael@ximian.com>
2327
2328         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
2329         bail immediately if disconnected, to avoid busy loop.
2330
2331         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
2332         cleanup cut/paste/inefficiency.
2333
2334 2004-03-01  David Zeuthen  <david@fubar.dk>
2335
2336         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
2337         bug where args were used twice. This bug resulted in a segfault
2338         on a Debian/PPC system when starting the messagebus daemon. Include
2339         dbus-sysdeps.h for DBUS_VA_COPY
2340
2341         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
2342
2343         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
2344         appropriate va_copy implementation. From GLib
2345         
2346 2004-02-24  Joe Shaw  <joe@ximian.com>
2347
2348         * bus/services.c (bus_registry_acquire_service): We need to pass
2349         in the service name to dbus_set_error() to prevent a crash.
2350
2351 2003-12-26  Anders Carlsson  <andersca@gnome.org>
2352
2353         * AUTHORS: Reveal my True identity.
2354
2355 2003-12-17  Mikael Hallendal  <micke@imendio.com>
2356
2357         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
2358         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
2359
2360 2003-12-13  Mikael Hallendal  <micke@imendio.com>
2361
2362         * doc/TODO: Added not about better error check of configuration files.
2363
2364 2003-12-02  Richard Hult  <richard@imendio.com>
2365
2366         * Update AFL version to 2.0 throughout the source files to reflect
2367         the update that was done a while ago.
2368
2369 2003-12-02  Richard Hult  <richard@imendio.com>
2370
2371         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
2372         wrote_dict_key to FALSE on the iter that the dict is appended to,
2373         just like when appending other types. Fixes a bug where a dict
2374         couldn't be put inside a dict.
2375         (dbus_message_iter_append_dict_key): Fix typo in warning message.
2376         (message_iter_test, _dbus_message_test): Add test case for dict
2377         inside dict.
2378
2379 2003-12-01  David Zeuthen  <david@fubar.dk>
2380
2381         * python/dbus.py: Add the actual message when calling the reciever
2382         of a signal such that parameters can be inspected. Add the method
2383         remove_signal_receiver
2384         
2385 2003-11-26  Mikael Hallendal  <micke@imendio.com>
2386
2387         * bus/*.[ch]:
2388         * dbus/*.[ch]:
2389         * glib/*.[ch]: Made ref functions return the pointer
2390
2391 2003-11-25  Zack Rusin  <zack@kde.org>
2392
2393         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
2394
2395         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
2396         wrappers,
2397
2398         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
2399         the Integrator and to better fit with the server,
2400
2401 2003-11-24  Zack Rusin  <zack@kde.org>
2402
2403         * qt/connection.h, qt/connection.cpp: removing initDbus method since
2404         the integrator handles it now
2405
2406         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
2407         since QTimer wasn't really meant to be used the way DBusTimeout is
2408
2409 2003-11-24  Zack Rusin  <zack@kde.org>
2410
2411         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
2412         Integrator class which integrates D-BUS with the Qt event loop,
2413
2414         * qt/connection.h, qt/connection.cpp: Move all the code which
2415         was dealing with D-BUS integration to the Integrator class,
2416         and start using Integrator,
2417
2418 2003-11-23  Zack Rusin  <zack@kde.org>
2419
2420         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
2421         wrapper
2422
2423         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
2424         switching namespaces to DBusQt, reworking the class,
2425
2426         * Makefile.cvs: switching dependencies so that it matches KDE 
2427         schematics,
2428         
2429         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
2430         the library
2431
2432 2003-11-19  Havoc Pennington  <hp@redhat.com>
2433
2434         * NEWS: update
2435
2436         * configure.in: bump version to 0.20
2437
2438         * configure.in (have_qt): add yet another place to look for qt
2439         (someone hand trolltech a .pc file...)
2440
2441 2003-11-01  Havoc Pennington  <hp@redhat.com>
2442
2443         * doc/dbus-specification.xml: add state machine docs on the auth
2444         protocol; just a first draft, I'm sure it's wrong.      
2445
2446 2003-10-28  David Zeuthen  <david@fubar.dk>
2447
2448         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
2449         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
2450         
2451 2003-10-28  Havoc Pennington  <hp@redhat.com>
2452
2453         * dbus/dbus-message.c (get_next_field): delete unused function
2454
2455 2003-10-28  Havoc Pennington  <hp@redhat.com>
2456
2457         * bus/expirelist.c (do_expiration_with_current_time): detect
2458         failure of the expire_func due to OOM
2459
2460         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
2461
2462         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
2463         NoReply error that's now created by the bus when the service exits
2464
2465 2003-10-28  Havoc Pennington  <hp@redhat.com>
2466
2467         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
2468         tests for set_path, set_interface, set_member, etc.
2469
2470         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
2471
2472         * dbus/dbus-message.c (set_string_field): always just delete and
2473         re-append the field; accept NULL for deletion
2474         (re_align_fields_recurse): reimplement
2475         
2476 2003-10-26  Havoc Pennington  <hp@redhat.com>
2477
2478         * dbus/dbus-connection.c: fix docs to properly describe the
2479         disconnected message
2480         (_dbus_connection_notify_disconnected): remove this function; 
2481         we can't synchronously add the disconnected message, we have to 
2482         do it after we've queued any remaining real messages
2483         (_dbus_connection_get_dispatch_status_unlocked): queue the
2484         disconnect message only if the transport has finished queueing all
2485         its real messages and is disconnected.
2486         (dbus_connection_disconnect): update the dispatch status here
2487
2488 2003-10-22  Havoc Pennington  <hp@redhat.com>
2489
2490         * bus/bus.c (bus_context_check_security_policy): fix up assertion
2491
2492         * bus/connection.c (bus_transaction_send_from_driver): set the
2493         destination to the connection's base service
2494
2495 2003-10-20  Havoc Pennington  <hp@redhat.com>
2496
2497         hmm, make check is currently not passing.
2498         
2499         * doc/dbus-specification.xml: add requirement that custom type
2500         names follow the same rules as interface names.
2501
2502         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
2503         duplication and allow 'c' to be 'custom'; dict is now 'm' for
2504         'map'
2505
2506         * doc/dbus-specification.xml: update type codes to match
2507         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
2508         CUSTOM. Add type OBJECT_PATH to the spec.
2509
2510 2003-10-17  Havoc Pennington  <hp@redhat.com>
2511
2512         * bus/driver.c (create_unique_client_name): use "." as separator
2513         in base service names instead of '-'
2514
2515         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
2516         byte at the end of the string
2517
2518         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
2519         optimization macros since string validation seems to be a slow
2520         point.
2521         
2522         * doc/dbus-specification.xml: restrict valid
2523         service/interface/member/error names. Add test suite code for the
2524         name validation.
2525
2526         * dbus/dbus-string.c: limit service/interface/member/error names 
2527         to [0-9][A-Z][a-z]_
2528
2529         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2530         format arg to verbose spew
2531
2532         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2533         memory, return instead of g_error
2534
2535         * test/test-service.c (path_message_func): support emitting a
2536         signal on request
2537
2538         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2539         activation bus type if DBUS_BUS_ACTIVATION was set; default to
2540         assuming the activation bus was the session bus so that services
2541         started manually will still register.
2542         (init_connections_unlocked): fix so that in OOM situation we get
2543         the same semantics when retrying the function
2544         
2545         * test/test-service.c (main): change to use path registration, to
2546         test those codepaths; register with DBUS_BUS_ACTIVATION rather
2547         than DBUS_BUS_SESSION
2548
2549 2003-10-16  Havoc Pennington  <hp@redhat.com>
2550
2551         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2552
2553         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2554         coverage of the tests
2555         (coverage-report.txt): don't move the .da and .bbg files around
2556
2557 2003-10-16  Havoc Pennington  <hp@redhat.com>
2558
2559         * bus/bus.c (struct BusContext): remove struct field I didn't mean
2560         to put there
2561
2562 2003-10-16  Havoc Pennington  <hp@redhat.com>
2563
2564         * bus/connection.c (bus_pending_reply_expired): either cancel or
2565         execute, not both
2566         (bus_connections_check_reply): use unlink, not remove_link, as we
2567         don't want to free the link; fixes double free mess
2568
2569         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2570         where no reply was received
2571
2572         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2573         fix a refcount leak
2574
2575         * bus/signals.c (match_rule_matches): add special cases for the
2576         bus driver, so you can match on sender/destination for it.
2577
2578         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2579         DBUS_PRINT_BACKTRACE is set
2580
2581         * dbus/dbus-internals.c: add pid to assertion failure messages
2582
2583         * dbus/dbus-connection.c: add message type code to the debug spew
2584
2585         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2586         sender=foo not service=foo
2587
2588         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2589         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
2590         DBUS_ACTIVATION_ADDRESS instead
2591
2592         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2593         DBUS_SYSTEM_BUS_ADDRESS if appropriate
2594
2595         * bus/bus.c (bus_context_new): handle OOM copying bus type into
2596         context struct
2597
2598         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2599         (dbus_message_iter_get_object_path_array): new function (half
2600         finished, disabled for the moment)
2601         
2602         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2603         DBUS_MESSAGE_TYPE_ERROR
2604
2605         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2606         avoid redirecting stderr to /dev/null
2607         (babysit): close stdin if not doing the "exit_with_session" thing
2608
2609         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2610         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2611         stdout/stdin, so things don't get confused
2612         
2613         * bus/system.conf.in: fix to allow replies, I modified .conf
2614         instead of .conf.in again.
2615
2616 2003-10-14  David Zeuthen  <david@fubar.dk>
2617
2618         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2619         argtype to arg_type when raising unknown arg type exception.
2620         Changed type list to reflect the changes in dbus-protocol.h so 
2621         the bindings actually work.
2622
2623 2003-10-14  Havoc Pennington  <hp@redhat.com>
2624
2625         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2626         to have a bug keeping it from outputting the .da files sometimes
2627         (string_get_string): don't append garbage nul bytes to the string.
2628
2629 2003-10-15  Seth Nickell  <seth@gnome.org>
2630
2631         * python/Makefile.am:
2632
2633         Include dbus_h_wrapper.h in the dist tarball.
2634
2635 2003-10-14  Havoc Pennington  <hp@redhat.com>
2636
2637         * bus/bus.c (bus_context_check_security_policy): revamp this to
2638         work more sanely with new policy-based requested reply setup
2639
2640         * bus/connection.c (bus_transaction_send_from_driver): set bus
2641         driver messages as no reply
2642
2643         * bus/policy.c (bus_client_policy_check_can_receive): handle a
2644         requested_reply attribute on allow/deny rules
2645
2646         * bus/system.conf: add <allow requested_reply="true"/>
2647
2648         * bus/driver.c (bus_driver_handle_message): fix check for replies
2649         sent to the bus driver, which was backward. How did this ever work
2650         at all though? I think I'm missing something.
2651
2652         * dbus/dbus-message.c (decode_header_data): require error and
2653         method return messages to have a reply serial field to be valid
2654         (_dbus_message_loader_queue_messages): break up this function;
2655         validate that reply serial and plain serial are nonzero; 
2656         clean up the OOM/error handling.
2657         (get_uint_field): don't return -1 from this
2658         (dbus_message_create_header): fix signed/unsigned bug
2659
2660         * bus/connection.c (bus_connections_expect_reply): save serial of
2661         the incoming message, not reply serial
2662
2663 2003-10-14  Havoc Pennington  <hp@redhat.com>
2664
2665         * bus/connection.c: implement pending reply tracking using
2666         BusExpireList
2667
2668         * bus/bus.c (bus_context_check_security_policy): verify that a
2669         reply is pending in order to allow a reply to be sent. Deny 
2670         messages of unknown type.
2671
2672         * bus/dbus-daemon-1.1.in: update to mention new resource limits
2673
2674         * bus/bus.c (bus_context_get_max_replies_per_connection): new
2675         (bus_context_get_reply_timeout): new
2676
2677 2003-10-13  Seth Nickell  <seth@gnome.org>
2678
2679         * python/Makefile.am:
2680
2681         Pass "make distcheck": remove a couple files from DIST_FILES
2682         that weren't included in the final version.
2683
2684 2003-10-12  Havoc Pennington  <hp@pobox.com>
2685
2686         Added test code that 1) starts an actual bus daemon and 2) uses
2687         DBusGProxy; fixed bugs that were revealed by the test. Lots 
2688         more testing possible, but this is the basic framework.
2689         
2690         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2691         empty proxy lists from the proxy list hash
2692
2693         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2694         couple of return_if_fail checks
2695
2696         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2697         to allocate, so everything is cleared to NULL as it should be.
2698
2699         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2700         source as data to dbus_connection_set_timeout_functions() as the 
2701         timeout functions expected
2702
2703         * test/glib/run-test.sh: add a little script to start up a message
2704         bus and run tests using it
2705
2706         * tools/dbus-launch.1: updates
2707
2708         * tools/dbus-launch.c (main): add --config-file option
2709
2710         * tools/dbus-launch.c (main): remove confusing else if (runprog)
2711         that could never be reached.
2712
2713         * dbus/dbus-message.c (dbus_message_new_method_return) 
2714         (dbus_message_new_error, dbus_message_new_signal): set the
2715         no-reply-expected flag on all these. Redundant, but may
2716         as well be consistent.
2717
2718 2003-10-11  Havoc Pennington  <hp@pobox.com>
2719
2720         * test/decode-gcov.c (function_solve_graph): make broken block
2721         graph a nonfatal error since it seems to be broken. Need to debug
2722         this.
2723
2724         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2725         can't just check type > INVALID < LAST anymore
2726
2727         * dbus/dbus-message.c (dbus_message_get_signature): new function
2728         (dbus_message_has_signature): new function
2729         (struct DBusMessage): add signature field (right now it isn't sent
2730         over the wire, just generated on the fly)
2731         (dbus_message_copy): copy the signature, and init strings to
2732         proper length to avoid some reallocs
2733         (dbus_message_iter_init_array_iterator): return void, since it
2734         can't fail
2735         (dbus_message_iter_init_dict_iterator): return void since it can't fail
2736         (_dbus_message_loader_queue_messages): add silly temporary hack to
2737         fill in message->signature on load
2738
2739         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2740         characters, so they are relatively human-readable.
2741
2742 2003-10-11  Havoc Pennington  <hp@pobox.com>
2743
2744         * dbus/dbus-message.c (_dbus_message_test): add more test
2745         coverage, but #if 0 for now since they uncover a bug 
2746         not fixed yet; I think in re_align_field_recurse()
2747         (re_align_field_recurse): add FIXME about broken assertion
2748
2749         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2750
2751         * bus/connection.c: share a couple code bits with expirelist.c
2752
2753         * bus/expirelist.h, bus/expirelist.c: implement a generic
2754         expire-items-after-N-seconds facility, was going to share between
2755         expiring connections and replies, decided not to use for expiring
2756         connections for now.
2757
2758         * COPYING: include AFL 2.0 (still need to change all the file headers)
2759
2760 2003-10-09  Havoc Pennington  <hp@redhat.com>
2761
2762         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2763         gcc 3.3. Not that we do anything about it yet.
2764
2765         * bus/signals.c (bus_match_rule_parse): impose max length on the
2766         match rule text
2767
2768         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2769
2770 2003-10-09  Havoc Pennington  <hp@redhat.com>
2771
2772         Make matching rules theoretically work (add parser).
2773         
2774         * bus/bus.c (bus_context_check_security_policy): fix up to handle
2775         the case where destination is explicitly specified as bus driver
2776         and someone else is eavesdropping.
2777         
2778         * bus/policy.c (bus_client_policy_check_can_receive): fix up
2779         definition of eavesdropping and assertion
2780
2781         * tools/dbus-send.c (main): use dbus_message_type_from_string
2782
2783         * bus/signals.c (bus_match_rule_parse): implement
2784
2785         * dbus/dbus-message.c (dbus_message_type_from_string): new
2786
2787         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2788
2789 2003-10-02  Havoc Pennington  <hp@pobox.com>
2790
2791         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2792         dbus_gproxy_oneway_call
2793
2794         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
2795         (dbus_server_setup_with_g_main): fix to allow calling them more
2796         than once on the same args
2797         (dbus_bus_get_with_g_main): new function
2798
2799 2003-10-02  Havoc Pennington  <hp@redhat.com>
2800
2801         * doc/dbus-tutorial.xml: write some stuff
2802
2803 2003-09-29  Havoc Pennington  <hp@pobox.com>
2804
2805         * configure.in: split checks for Doxygen from XML docs, check for
2806         xmlto
2807
2808         * doc/Makefile.am: XML-ify all the docs, and add a blank
2809         dbus-tutorial.xml
2810
2811 2003-09-29  Havoc Pennington  <hp@pobox.com>
2812
2813         * Merge dbus-object-names branch. To see the entire patch 
2814         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2815         it's huuuuge though.
2816         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2817         
2818 2003-09-28  Havoc Pennington  <hp@pobox.com>
2819
2820         * HACKING: update to reflect new server
2821
2822 2003-09-26  Seth Nickell  <seth@gnome.org>
2823
2824         * python/dbus.py:
2825         * python/examples/example-signals.py:
2826
2827         Start implementing some notions of signals. The API
2828         is really terrible, but they sort of work (with the
2829         exception of being able to filter by service, and to
2830         transmit signals *as* a particular service). Need to
2831         figure out how to make messages come from the service
2832         we registered :-(
2833         
2834         * python/dbus_bindings.pyx.in:
2835
2836         Removed duplicate message_handler callbacks.
2837         
2838 2003-09-25  Havoc Pennington  <hp@redhat.com>
2839
2840         * bus/session.conf.in: fix my mess
2841
2842 2003-09-25  Havoc Pennington  <hp@pobox.com>
2843
2844         * bus/session.conf.in: fix security policy, reported by Seth Nickell
2845
2846 2003-09-25  Seth Nickell  <seth@gnome.org>
2847
2848         * python/examples/example-service.py:
2849
2850         Johan notices complete wrong code in example-service, but
2851         completely wrong in a way that works exactly the same (!).
2852         Johan is confused, how could this possibly work? Example
2853         code fails to serve purpose of making things clear.
2854         Seth fixes.
2855
2856 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
2857
2858         * doc/dbus-specification.sgml: don't require header fields
2859         to be 4-byte aligned and specify that fields should be
2860         distinguished from padding by the fact that zero is not
2861         a valid field name.
2862         
2863         * doc/TODO: remove re-alignment item and add item to doc
2864         the OBJECT_PATH type.
2865         
2866         * dbus/dbus-message.c:
2867         (HeaderField): rename the original member to value_offset
2868         and introduce a name_offset member to keep track of where
2869         the field actually begins.
2870         (adjust_field_offsets): remove.
2871         (append_int_field), (append_uint_field),
2872         (append_string_field): don't align the start of the header
2873         field to a 4-byte boundary.
2874         (get_next_field): impl finding the next marhsalled field
2875         after a given field.
2876         (re_align_field_recurse): impl re-aligning a number of
2877         already marshalled fields.
2878         (delete_field): impl deleting a field of any type and
2879         re-aligning any following fields.
2880         (delete_int_or_uint_field), (delete_string_field): remove.
2881         (set_int_field), (set_uint_field): no need to re-check
2882         that we have the correct type for the field.
2883         (set_string_field): ditto and impl re-aligning any
2884         following fields.
2885         (decode_header_data): update to take into account that
2886         the fields aren't 4-byte aligned any more and the new
2887         way to distinguish padding from header fields. Also,
2888         don't exit when there is too much header padding.
2889         (process_test_subdir): print the directory.
2890         (_dbus_message_test): add test to make sure a following
2891         field is re-aligned correctly after field deletion.
2892         
2893         * dbus/dbus-string.[ch]:
2894         (_dbus_string_insert_bytes): rename from insert_byte and
2895         allow the insert of multiple bytes.
2896         (_dbus_string_test): test inserting multiple bytes.
2897
2898         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2899         warning note to docs about having to re-align any
2900         marshalled values following the string.
2901         
2902         * dbus/dbus-message-builder.c:
2903         (append_string_field), (_dbus_message_data_load):
2904         don't align the header field.
2905         
2906         * dbus/dbus-auth.c: (process_test_subdir): print the
2907         directory.
2908         
2909         * test/break-loader.c: (randomly_add_one_byte): upd. for
2910         insert_byte change.
2911         
2912         * test/data/invalid-messages/bad-header-field-alignment.message:
2913         new test case.
2914         
2915         * test/data/valid-messages/unknown-header-field.message: shove
2916         a dict in the unknown field.
2917
2918 2003-09-25  Seth Nickell  <seth@gnome.org>
2919
2920         * python/dbus.py:
2921         * python/dbus_bindings.pyx.in:
2922
2923         Handle return values.
2924         
2925         * python/examples/example-client.py:
2926         * python/examples/example-service.py:
2927
2928         Pass back return values from the service to the client.
2929         
2930 2003-09-24  Seth Nickell  <seth@gnome.org>
2931
2932         * python/dbus.py:
2933
2934         Connect Object methods (when you are sharing an object) up... pass
2935         in a list of methods to be shared. Sharing all the methods just
2936         worked out too weird. You can now create nice Services over the
2937         DBus in Python. :-)
2938         
2939         * python/dbus_bindings.pyx.in:
2940
2941         Keep references to user_data tuples passed into C functions so 
2942         Python doesn't garbage collect on us.
2943
2944         Implement MethodReturn and Error subclasses of Message for creating
2945         DBusMessage's of those types.
2946         
2947         * python/examples/example-client.py:
2948         * python/examples/example-service.py:
2949
2950         Simple example code showing both how create DBus services and objects,
2951         and how to use them.
2952
2953 2003-09-23  Havoc Pennington  <hp@pobox.com>
2954
2955         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2956
2957 2003-09-23  Havoc Pennington  <hp@redhat.com>
2958
2959         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2960         (dbus_gproxy_disconnect_signal): implement
2961         (dbus_gproxy_manager_remove_signal_match): implement
2962         (dbus_gproxy_manager_add_signal_match): implement
2963         (dbus_gproxy_oneway_call): implement
2964
2965 2003-09-23  Havoc Pennington  <hp@pobox.com>
2966
2967         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2968         subclass. This means dropping the transparent thread safety of the
2969         proxy; you now need a separate proxy per-thread, or your own
2970         locking on the proxy. Probably right anyway.
2971         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2972
2973 2003-09-22  Havoc Pennington  <hp@redhat.com>
2974
2975         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2976
2977 2003-09-21  Seth Nickell  <seth@gnome.org>
2978
2979         First checkin of the Python bindings.
2980         
2981         * python/.cvsignore:
2982         * python/Makefile.am:
2983         * python/dbus_bindings.pyx.in:
2984         * python/dbus_h_wrapper.h:
2985
2986         Pieces for Pyrex to operate on, building a dbus_bindings.so
2987         python module for low-level access to the DBus APIs.
2988         
2989         * python/dbus.py:
2990
2991         High-level Python module for accessing DBus objects.
2992
2993         * configure.in:
2994         * Makefile.am:
2995
2996         Build stuff for the python bindings.
2997
2998         * acinclude.m4:
2999
3000         Extra macro needed for finding the Python C header files.
3001
3002 2003-09-21  Havoc Pennington  <hp@pobox.com>
3003
3004         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
3005         implementing the proxy manager, didn't get very far.
3006
3007         * dbus/dbus-bus.c (dbus_bus_add_match): new
3008         (dbus_bus_remove_match): new
3009
3010         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
3011         path_name argument; adjust the other not-yet-implemented 
3012         gproxy constructors to be what I think they should be.
3013
3014 2003-09-21  Havoc Pennington  <hp@pobox.com>
3015
3016         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
3017         by default for message bus connections.
3018
3019         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
3020         exit_on_disconnect flag is set and we process the disconnected
3021         signal.
3022         (dbus_connection_set_exit_on_disconnect): new function
3023
3024 2003-09-21  Havoc Pennington  <hp@pobox.com>
3025
3026         Get matching rules mostly working in the bus; only actually
3027         parsing the rule text remains. However, the client side of
3028         "signal connections" hasn't been started, this patch is only the
3029         bus side.
3030         
3031         * dbus/dispatch.c: fix for the matching rules changes
3032         
3033         * bus/driver.c (bus_driver_handle_remove_match)
3034         (bus_driver_handle_add_match): send an ack reply from these
3035         method calls
3036
3037         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
3038         arguments, reported by Seth Nickell
3039
3040         * bus/config-parser.c (append_rule_from_element): support
3041         eavesdrop=true|false attribute on policies so match rules 
3042         can be prevented from snooping on the system bus.
3043
3044         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
3045         and "destination" in attribute names; fix some docs bugs; 
3046         add eavesdrop=true|false attribute
3047
3048         * bus/driver.c (bus_driver_handle_add_match)
3049         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
3050         messages
3051
3052         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
3053         rid of broadcast service concept, signals are just always broadcast
3054
3055         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
3056         mostly implement matching rules stuff (currently only exposed as signal
3057         connections)
3058
3059 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
3060
3061         * doc/dbus-specification.sgml: Change the header field name
3062         to be an enum and update the rest of the spec to reference
3063         the fields using the conventinal name.
3064
3065         * dbus/dbus-protocol.h: update to reflect the spec.
3066
3067         * doc/TODO: add item to remove the 4 byte alignment requirement.
3068         
3069         * dbus/dbus-message.c: Remove the code to generalise the
3070         header/body length and serial number header fields as named
3071         header fields so we can reference field names using the 
3072         protocol values.
3073         (append_int_field), (append_uint_field), (append_string_field):
3074         Append the field name as a byte rather than four chars.
3075         (delete_int_or_uint_field), (delete_string_field): reflect the
3076         fact that the field name and typecode now occupy 4 bytes instead
3077         of 8.
3078         (decode_string_field), (decode_header_data): update to reflect
3079         protocol changes and move the field specific encoding from
3080         decode_string_field() back into decode_header_data().
3081         
3082         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
3083         Add utility to aid debugging.
3084         
3085         * dbus/dbus-message-builder.c:
3086         (append_string_field), (_dbus_message_data_load): Update to
3087         reflect protocol changes; Change the FIELD_NAME directive
3088         to HEADER_FIELD and allow it to take the field's conventional
3089         name rather than the actual value.
3090         
3091         * test/data/*/*.message: Update to use HEADER_FIELD instead
3092         of FIELD_NAME; Always align the header on an 8 byte boundary
3093         *before* updating the header length.
3094
3095 2003-09-15  Havoc Pennington  <hp@pobox.com>
3096
3097         * dbus/dbus-pending-call.c: add the get/set object data
3098         boilerplate as for DBusConnection, etc. Use generic object data
3099         for the notify callback.
3100
3101         * glib/dbus-gparser.c (parse_node): parse child nodes
3102
3103         * tools/dbus-viewer.c: more hacking on the dbus-viewer
3104         
3105         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
3106         contain functions shared between the convenience lib and the
3107         installed lib
3108
3109         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
3110         -export-symbols-regex to the GLib library
3111
3112         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
3113         fix the locking in here, and add a default handler for
3114         Introspect() that just returns sub-nodes.
3115
3116 2003-09-14  Havoc Pennington  <hp@pobox.com>
3117
3118         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
3119         rather than gfoo consistent
3120
3121         * glib/dbus-gproxy.h: delete for now, move contents to
3122         dbus-glib.h, because the include files don't work right since we
3123         aren't in the dbus/ subdir.
3124         
3125         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
3126         (dbus_gproxy_end_call): finish
3127         (dbus_gproxy_begin_call): finish
3128
3129         * glib/dbus-gmain.c (dbus_set_g_error): new
3130
3131         * glib/dbus-gobject.c (handle_introspect): include information
3132         about child nodes in the introspection
3133
3134         * dbus/dbus-connection.c (dbus_connection_list_registered): new
3135         function to help in implementation of introspection
3136
3137         * dbus/dbus-object-tree.c
3138         (_dbus_object_tree_list_registered_and_unlock): new function
3139
3140 2003-09-12  Havoc Pennington  <hp@pobox.com>
3141
3142         * glib/dbus-gidl.h: add common base class for all the foo_info
3143         types
3144
3145         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
3146         similar to kdcop
3147
3148         * test/Makefile.am: try test srcdir -ef . in addition to test
3149         srcdir = ., one of them should work (yeah lame)
3150         
3151         * glib/Makefile.am: build the "idl" parser stuff as a convenience
3152         library
3153         
3154         * glib/dbus-gparser.h: make description_load routines return
3155         NodeInfo* not Parser*
3156
3157         * Makefile.am (SUBDIRS): build test dir after all library dirs
3158
3159         * configure.in: add GTK+ detection
3160
3161 2003-09-07  Havoc Pennington  <hp@pobox.com>
3162
3163         * Make Doxygen contented.
3164
3165 2003-09-07  Havoc Pennington  <hp@pobox.com>
3166
3167         * doc/dbus-specification.sgml: more updates
3168
3169 2003-09-06  Havoc Pennington  <hp@pobox.com>
3170
3171         * doc/dbus-specification.sgml: partial updates
3172
3173         * bus/dbus-daemon-1.1.in: fix the config file docs for the
3174         zillionth time; hopefully I edited the right file this time.
3175
3176         * bus/config-parser.c (append_rule_from_element): support
3177         send_type, send_path, receive_type, receive_path
3178
3179         * bus/policy.c: add message type and path to the list of things
3180         that can be "firewalled"
3181
3182 2003-09-06  Havoc Pennington  <hp@pobox.com>
3183
3184         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
3185         (dbus_connection_register_object_path): make this not handle
3186         messages to paths below the given path
3187
3188 2003-09-03  Havoc Pennington  <hp@pobox.com>
3189
3190         * test/glib/Makefile.am: add this with random glib-linked test
3191         programs
3192
3193         * glib/Makefile.am: remove the random test programs from here,
3194         leave only the unit tests
3195
3196         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
3197         uscore/javacaps conversion, and fix     
3198         (get_object_property, set_object_property): change to .NET
3199         convention for mapping props to methods, set_FooBar/get_FooBar, 
3200         since one language has such a convention we may as well copy it. 
3201         Plus real methods in either getFooBar or get_foo_bar style won't 
3202         collide with this convention.
3203
3204 2003-09-01  Havoc Pennington  <hp@pobox.com>
3205
3206         * glib/dbus-gparser.c: implement
3207
3208         * glib/dbus-gobject.c: start implementing skeletons support
3209
3210         * configure.in: when disabling checks/assert, also define
3211         G_DISABLE_ASSERT and G_DISABLE_CHECKS
3212
3213 2003-09-01  Havoc Pennington  <hp@pobox.com>
3214
3215         * glib/Makefile.am: rearrange a bunch of files and get "make
3216         check" framework set up
3217
3218 2003-08-31  Havoc Pennington  <hp@pobox.com>
3219
3220         * fix build with --disable-tests
3221
3222 2003-08-30  Havoc Pennington  <hp@pobox.com>
3223
3224         * dbus/dbus-connection.c: purge DBusMessageHandler
3225
3226         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
3227         use callbacks everywhere
3228
3229 2003-08-30  Havoc Pennington  <hp@pobox.com>
3230
3231         * test/data/valid-config-files/system.d/test.conf: change to 
3232         root for the user so warnings don't get printed
3233
3234         * dbus/dbus-message.c: add dbus_message_get_path,
3235         dbus_message_set_path
3236         
3237         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
3238         dispatching to a path
3239
3240         * dbus/dbus-string.c (_dbus_string_validate_path): add
3241
3242         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
3243         (_dbus_marshal_object_path): implement
3244
3245         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
3246         to contain the path to the target object
3247         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
3248         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
3249
3250 2003-08-30  Havoc Pennington  <hp@pobox.com>
3251
3252         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
3253
3254 2003-08-29  Havoc Pennington  <hp@pobox.com>
3255
3256         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
3257         registered
3258         (struct DBusObjectSubtree): shrink this
3259         a lot, since we may have a lot of them
3260         (_dbus_object_tree_free_all_unlocked): implement
3261         (_dbus_object_tree_dispatch_and_unlock): implement
3262
3263 2003-08-29  Havoc Pennington  <hp@pobox.com>
3264
3265         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
3266
3267 2003-08-28  Havoc Pennington  <hp@pobox.com>
3268
3269         purge DBusObjectID
3270         
3271         * dbus/dbus-connection.c: port to no ObjectID, create a
3272         DBusObjectTree, rename ObjectTree to ObjectPath in public API
3273
3274         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
3275         everything except UnregisterFunction and MessageFunction
3276         
3277         * dbus/dbus-marshal.c: port away from DBusObjectID, 
3278         add DBUS_TYPE_OBJECT_PATH
3279         
3280         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
3281         dbus/dbus-objectid.[hc]: remove these, we are moving to 
3282         path-based object IDs
3283
3284 2003-08-25  Havoc Pennington  <hp@pobox.com>
3285
3286         Just noticed that dbus_message_test is hosed, I wonder when I
3287         broke that. I thought make check was passing earlier...
3288         
3289         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
3290         container tree, will replace most of dbus-object-registry
3291
3292         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
3293         screwup
3294
3295 2003-08-19  Havoc Pennington  <hp@pobox.com>
3296
3297         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
3298         (dbus_message_is_error): fix this function
3299
3300         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
3301         match
3302
3303         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
3304         reflect clarified man page
3305         (bus_client_policy_check_can_send): ditto
3306         
3307         * bus/session.conf.in: fixup
3308
3309         * bus/system.conf.in: fixup
3310
3311 2003-08-18  Havoc Pennington  <hp@redhat.com>
3312
3313         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
3314
3315         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3316         dumb bug created earlier (wrong order of args to
3317         decode_header_data())
3318         
3319         * tools/dbus-send.c: port
3320
3321         * tools/dbus-print-message.c (print_message): port
3322
3323         * test/data/*messages: port all messages over
3324         
3325         * dbus/dbus-message-builder.c: support including 
3326         message type
3327         
3328         * bus/driver.c: port over
3329         
3330         * bus/dispatch.c: port over to new stuff
3331
3332         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3333         rename disconnect signal to "Disconnected"
3334
3335 2003-08-17  Havoc Pennington  <hp@pobox.com>
3336
3337         This doesn't compile yet, but syncing up so I can hack on it from
3338         work. What are branches for if not broken code? ;-)
3339         
3340         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
3341         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
3342         DBUS_HEADER_FIELD_ERROR_NAME
3343         
3344         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
3345         for the interface+member pairs
3346         (string_hash): change to use g_str_hash algorithm
3347         (find_direct_function, find_string_function): refactor these to
3348         share most code.
3349         
3350         * dbus/dbus-message.c: port all of this over to support 
3351         interface/member fields instead of name field
3352
3353         * dbus/dbus-object-registry.c: port over
3354         
3355         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
3356         from _dbus_string_validate_name
3357
3358         * bus/dbus-daemon-1.1: change file format for the 
3359         <deny>/<allow> stuff to match new message naming scheme
3360
3361         * bus/policy.c: port over
3362
3363         * bus/config-parser.c: parse new format
3364         
3365 2003-08-16  Havoc Pennington  <hp@pobox.com>
3366
3367         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
3368         broken assertion
3369
3370         * glib/dbus-gproxy.c: some hacking
3371
3372 2003-08-15  Havoc Pennington  <hp@redhat.com>
3373
3374         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
3375
3376         * dbus/dbus-connection.c
3377         (dbus_connection_send_with_reply_and_block): factor out internals;
3378         change to convert any error replies to DBusError instead of 
3379         returning them as a message
3380
3381 2003-08-15  Havoc Pennington  <hp@pobox.com>
3382
3383         * dbus/dbus-connection.c, 
3384         dbus/dbus-pending-call.c: Finish the pending call stuff
3385
3386 2003-08-14  Havoc Pennington  <hp@redhat.com>
3387
3388         * dbus/dbus-pending-call.c: start on new object that will replace
3389         DBusMessageHandler and ReplyHandlerData for tracking outstanding
3390         replies
3391
3392         * dbus/dbus-gproxy.c: start on proxy object used to communicate
3393         with remote interfaces
3394
3395         * dbus/dbus-gidl.c: do the boring boilerplate in here
3396         
3397 2003-08-12  Havoc Pennington  <hp@pobox.com>
3398
3399         * bus/dispatch.c (bus_dispatch): make this return proper 
3400         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
3401
3402         * dbus/dbus-errors.c (dbus_set_error): use
3403         _dbus_string_append_printf_valist
3404
3405         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
3406         (_dbus_string_append_printf): new
3407
3408         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
3409         UNKNOWN_METHOD
3410
3411         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
3412         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
3413         message is unhandled.
3414
3415 2003-08-11  Havoc Pennington  <hp@pobox.com>
3416
3417         * bus/test.c (client_disconnect_handler): change to return
3418         HANDLED (would have been REMOVE_MESSAGE)
3419
3420         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
3421         HANDLED/NOT_YET_HANDLED instead of
3422         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
3423         should be used.
3424
3425 2003-08-10  Havoc Pennington  <hp@pobox.com>
3426
3427         * tools/dbus-send.c (main): add --type argument, for now
3428         supporting only method_call and signal types.
3429
3430         * tools/dbus-print-message.c: print message type
3431
3432         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3433         init connection->objects
3434
3435         * doc/dbus-specification.sgml: fix sgml
3436
3437         * bus/*.c: port over to object-instance API changes
3438
3439         * test/test-service.c: ditto
3440         
3441         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
3442         name, we will have to fix up the rest of the code to also handle
3443         this
3444         (dbus_message_new): generic message-creation call
3445         (set_string_field): allow appending name field
3446
3447 2003-08-06  Havoc Pennington  <hp@pobox.com>
3448
3449         * dbus/dbus-object-registry.c: implement signal connection 
3450         and dispatch
3451
3452         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
3453
3454         * dbus/dbus-internals.c (_dbus_memdup): new function
3455
3456 2003-08-02  Havoc Pennington  <hp@pobox.com>
3457
3458         * dbus/dbus-message.c (dbus_message_get_no_reply)
3459         (dbus_message_set_no_reply): add these and remove
3460         set_is_error/get_is_error
3461
3462         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
3463         remove the ERROR flag, since there's now an ERROR type
3464
3465 2003-08-01  Havoc Pennington  <hp@pobox.com>
3466
3467         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
3468         implement
3469
3470         * dbus/dbus-message.c (dbus_message_get_type): new function
3471
3472         * doc/dbus-specification.sgml: add "type" byte to messages
3473
3474 2003-08-01  Havoc Pennington  <hp@pobox.com>
3475
3476         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
3477         a message type enum to distinguish kinds of message
3478         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
3479         that need not be replied to
3480
3481 2003-08-01  Havoc Pennington  <hp@pobox.com>
3482
3483         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
3484         (unpack_8_octets): fix no-64-bit-int bug
3485
3486         * dbus/dbus-object-registry.c (validate_id): validate the 
3487         connection ID bits, not just the instance ID.
3488
3489         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
3490         the connection-global 33 bits of the object ID
3491
3492         * dbus/dbus-object-registry.c (info_from_entry): fill in 
3493         object ID in the new way
3494
3495         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
3496         define server/client/instance bits.
3497
3498 2003-07-30  Havoc Pennington  <hp@pobox.com>
3499
3500         * dbus/dbus-connection.c (dbus_connection_register_object): fix
3501         build
3502
3503 2003-07-13  Havoc Pennington  <hp@pobox.com>
3504
3505         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
3506         fields to DBusObjectVTable and DBusObjectInfo
3507
3508 2003-07-12  Havoc Pennington  <hp@pobox.com>
3509
3510         * dbus/dbus-object-registry.c: implement unit test,
3511         fix bugs discovered in process
3512
3513         * dbus/dbus-connection.c: remove handler_table and
3514         register_handler(), add DBusObjectRegistry usage
3515
3516         * dbus/dbus-objectid.c (dbus_object_id_is_null)
3517         (dbus_object_id_set_null): new functions
3518
3519 2003-07-08  Havoc Pennington  <hp@pobox.com>
3520
3521         * dbus/dbus-object.c: implement some of this
3522
3523         * dbus/dbus-object-registry.c
3524         (_dbus_object_registry_add_and_unlock): fill in the object_id out
3525         param
3526         (_dbus_object_registry_new): handle OOM
3527
3528 2003-07-08  Havoc Pennington  <hp@pobox.com>
3529
3530         * dbus/dbus-object.h: sketch out an API for registering objects
3531         with a connection, that allows us to use as little as 24 bytes
3532         per object and lets application code represent an object in 
3533         any conceivable way.
3534
3535         * dbus/dbus-object-registry.c: implement the hard bits of the
3536         DBusConnection aspect of object API. Not yet wired up.
3537         
3538 2003-07-06  Havoc Pennington  <hp@pobox.com>
3539
3540         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3541         (_dbus_marshal_object_id): new
3542         (_dbus_demarshal_object_id): new
3543         (_dbus_marshal_get_arg_end_pos): support object ID type, and
3544         consolidate identical switch cases. Don't conditionalize handling
3545         of DBUS_TYPE_UINT64, need to handle the type always.
3546         (_dbus_marshal_validate_arg): consolidate identical cases, and
3547         handle DBUS_TYPE_OBJECT_ID
3548
3549         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3550
3551         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3552
3553 2003-09-28  Havoc Pennington  <hp@pobox.com>
3554
3555         * real 0.13 release
3556
3557 2003-09-28  Havoc Pennington  <hp@pobox.com>
3558
3559         * doc/Makefile.am (dbus-specification.html): testing a funky hack
3560         to work with Debian db2html
3561
3562 2003-09-28  Havoc Pennington  <hp@pobox.com>
3563
3564         * configure.in: 0.13
3565
3566         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3567         stylesheet-images for benefit of Debian
3568         
3569         Change back to using filesystem-linked sockets for the system
3570         bus, so only root can create the default system bus address.
3571         
3572         * bus/system.conf.in: change to use
3573         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3574
3575         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3576         from here.
3577
3578         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3579         here, and AC_DEFINE DBUS_SYSTEM_PATH
3580
3581 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
3582
3583         * doc/TODO:
3584         * doc/busconfig.dtd:
3585         Add busconfig DTD.
3586         
3587 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
3588
3589         * doc/dbus-specification.sgml:
3590         Add activation reply values.
3591         
3592 2003-08-05  Havoc Pennington  <hp@redhat.com>
3593
3594         * configure.in: 0.12
3595
3596 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
3597
3598         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3599         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3600         (add_watch), (remove_watch), (create_source):
3601         Refcount fds, fixes some reentrancy issues.
3602         
3603 2003-07-30  Havoc Pennington  <hp@redhat.com>
3604
3605         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3606         bus address to be abstract if we have abstract sockets
3607
3608         * NEWS: update
3609
3610 2003-07-28  Havoc Pennington  <hp@redhat.com>
3611
3612         * bus/messagebus.in: fix to avoid processname/servicename 
3613         confusion, from Michael Kearey
3614         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3615         
3616 2003-07-23  Havoc Pennington  <hp@pobox.com>
3617
3618         * dbus/dbus-message.c (dbus_message_iter_get_named): 
3619         fix from Andy Hanton to remove broken "+1"
3620
3621 2003-07-16  Havoc Pennington  <hp@pobox.com>
3622
3623         * tools/dbus-launch.c (babysit): close stdout/stderr in the
3624         babysitter process, as suggested by Thomas Leonard, so 
3625         an "eval `dbus-launch --exit-with-session`" will actually 
3626         return
3627
3628 2003-07-16  Havoc Pennington  <hp@pobox.com>
3629
3630         * configure.in: print out EXPANDED_* variables in the summary at
3631         the end; clean up the code that computes EXPANDED_ variables and
3632         get the ones using exec_prefix right. Should make things work
3633         when you build without --prefix
3634
3635 2003-06-29  Havoc Pennington  <hp@pobox.com>
3636
3637         * mono/Test.cs (class Test): fire up a main loop and run it
3638
3639         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3640         done once, the app has to do it
3641
3642 2003-06-26  Havoc Pennington  <hp@pobox.com>
3643
3644         * mono/Connection.cs: set up connection with the glib main loop
3645
3646 2003-07-01  Havoc Pennington  <hp@redhat.com>
3647
3648         * doc/dbus-specification.sgml: clarify the format of a type code,
3649         change suggested by Jim Blandy
3650
3651 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
3652
3653         * doc/Makefile.am:
3654         * tools/Makefile.am: Don't assume srcdir == builddir.
3655
3656         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3657         the allocated block.
3658         (_dbus_memory_test): New function.
3659         * dbus/dbus-test.h: Add _dbus_memory_test ().
3660         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3661
3662         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3663         of %c%c%c%c.
3664         (dbus_message_new): Remove obsolete @todo.
3665
3666         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3667         (_dbus_marshal_set_uint64): Fix comment.
3668
3669         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3670         hardcode FIELD_REPLY_SERIAL.
3671
3672         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3673         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3674
3675         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3676         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3677
3678 2003-06-24  Havoc Pennington  <hp@pobox.com>
3679
3680         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3681
3682 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
3683
3684         * configure.in:
3685         * gcj/.cvsignore:
3686         * gcj/Hello.java:
3687         * gcj/Makefile.am:
3688         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3689         * gcj/org/.cvsignore:
3690         * gcj/org/Makefile.am:
3691         * gcj/org/freedesktop/.cvsignore:
3692         * gcj/org/freedesktop/Makefile.am:
3693         * gcj/org/freedesktop/dbus/.cvsignore:
3694         * gcj/org/freedesktop/dbus/Makefile.am:
3695         * gcj/org/freedesktop/dbus/Message.java: (Message),
3696         (Message.Message):
3697         * gcj/org/freedesktop/dbus/natMessage.cc:
3698         Fix the build system.
3699
3700 2003-06-22  Havoc Pennington  <hp@pobox.com>
3701
3702         * mono/Connection.cs: add more bindings
3703
3704         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3705         more than once.
3706
3707 2003-06-22  Havoc Pennington  <hp@pobox.com>
3708
3709         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3710         Start wrapping more stuff.
3711
3712 2003-06-22  Havoc Pennington  <hp@pobox.com>
3713
3714         * mono/Message.cs: implement Message.Wrap() that ensures we only
3715         have a single C# wrapper per DBusMessage, assuming it works which
3716         it probably doesn't.
3717
3718         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3719         (dbus_message_free_data_slot): new
3720         (dbus_message_set_data): new
3721         (dbus_message_get_data): new
3722
3723 2003-06-22  Havoc Pennington  <hp@pobox.com>
3724
3725         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3726         (_dbus_data_slot_allocator_alloc): rework these to keep a
3727         reference count on each slot and automatically manage a global
3728         slot ID variable passed in by address
3729
3730         * bus/bus.c: convert to new dataslot API
3731
3732         * dbus/dbus-bus.c: convert to new dataslot API
3733
3734         * dbus/dbus-connection.c: convert to new dataslot API
3735
3736         * dbus/dbus-server.c: convert to new dataslot API
3737
3738         * glib/dbus-gmain.c: ditto
3739
3740         * bus/test.c: ditto
3741
3742         * bus/connection.c: ditto
3743
3744 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
3745
3746         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3747         after the gcj checks so that the correct configuration tags
3748         will be added to libtool.
3749
3750         * dbus-glib-1.pc.in: No need to specify any includes since
3751         dbus-1.pc.in has those.
3752
3753 2003-06-22  Havoc Pennington  <hp@pobox.com>
3754
3755         * mono/*, gcj/*, configure.in, Makefile.am:
3756         Check in makefiles and subdirs for mono and gcj bindings.
3757         Neither binding actually exists, just trying to get through
3758         all the build and other boring bits.
3759
3760 2003-06-21  Philip Blundell  <philb@gnu.org>
3761
3762         * tools/dbus-monitor.1: Updated.
3763
3764         * tools/dbus-send.1: Likewise.
3765
3766 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
3767
3768         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3769         for hangup and error after checking read so we won't discard
3770         pending data if both hangup and read are set.
3771
3772 2003-06-19  Philip Blundell  <philb@gnu.org>
3773
3774         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3775
3776         * tools/dbus-send.c: Accept both --system and --session.
3777
3778         * tools/dbus-monitor.c: Same here.
3779
3780 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
3781
3782         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3783         from C++ (Patch by Miloslav Trmac).
3784
3785 2003-06-15  Joe Shaw  <joe@assbarn.com>
3786
3787         * configure.in: Check for socklen_t.
3788
3789         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3790
3791         * test/test-segfault.c: Add #include <sys/time.h>
3792
3793         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3794         dbus-launch needs it.
3795
3796 2003-06-09  Havoc Pennington  <hp@redhat.com>
3797
3798         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3799         SUN_LEN, it breaks abstract socket usage
3800
3801         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3802         starts of lines.
3803
3804 2003-06-04  Havoc Pennington  <hp@pobox.com>
3805
3806         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3807         using unix:abstract=/foo, and when listening in a tmpdir
3808         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3809
3810         * dbus/dbus-transport.c (_dbus_transport_open): support
3811         unix:abstract=/foo
3812
3813         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3814         support abstract sockets
3815
3816         * dbus/dbus-transport-unix.c
3817         (_dbus_transport_new_for_domain_socket): support abstract sockets
3818
3819         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3820         toggle as an argument, implement abstract namespace support
3821         (_dbus_listen_unix_socket): ditto
3822
3823         * configure.in: add --enable-abstract-sockets and implement
3824         a configure check for autodetection of the right value.
3825
3826 2003-06-01  Havoc Pennington  <hp@pobox.com>
3827
3828         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3829         in /tmp (though on Linux this will end up being useless,
3830         when we add abstract namespace support)
3831
3832         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3833         subst'ing it
3834
3835 2003-05-28  Colin Walters  <walters@verbum.org>
3836
3837         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3838
3839 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
3840
3841         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3842
3843 2003-05-17  Colin Walters  <walters@gnu.org>
3844
3845         * tools/dbus-send.c: Don't exit with an error code if --help was
3846         passed.  Default to using the session bus instead of the system
3847         one.
3848
3849         * tools/dbus-launch.c: Ditto.
3850
3851         * tools/dbus-monitor.c: Ditto.
3852
3853         * tools/dbus-send.1: Update with new arguments.
3854
3855         * tools/dbus-launch.c: Emit code to export variables.  New
3856         arguments -s and -c to specify shell syntax, and a bit of code to
3857         autodetect syntax.  Also, allow specifying a program to run.
3858
3859         * tools/dbus-launch.1: Update with new arguments.
3860
3861         * tools/dbus-send.1: Ditto.
3862
3863         * tools/dbus-monitor.1: Ditto.
3864
3865 2003-05-17  Havoc Pennington  <hp@pobox.com>
3866
3867         * bus/config-parser.c (merge_included): merge in policies from
3868         child configuration file.
3869
3870         * bus/policy.c (bus_policy_merge): function to merge two policies
3871         together
3872
3873 2003-05-16  Havoc Pennington  <hp@redhat.com>
3874
3875         * dbus/dbus-connection.c: disable verbose lock spew
3876
3877         * tools/dbus-send.c: add --print-reply command line option
3878
3879         * tools/dbus-print-message.h (print_message): new util function
3880         shared by dbus-send and dbus-monitor
3881
3882         * tools/dbus-monitor.c (handler_func): exit on disconnect
3883
3884         * dbus/dbus-transport-unix.c (do_reading): if the transport is
3885         disconnected, don't try to use the read_watch
3886
3887         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3888         so we can find this bug more easily
3889
3890 2003-05-16  Havoc Pennington  <hp@redhat.com>
3891
3892         * bus/policy.c (free_rule_list_func): avoid a crash when passed
3893         NULL as DBusHashTable is annoyingly likely to do.
3894
3895 2003-05-16  Colin Walters  <walters@verbum.org>
3896
3897         * tools/dbus-monitor.c: Add --session argument and usage()
3898         function.
3899
3900         * tools/dbus-monitor.1: Update with new --session arg.
3901
3902         * bus/Makefile.am (install-data-hook): Create
3903         $(libdir)/dbus-1.0/services so that the session bus is happy.
3904
3905 2003-05-15  Havoc Pennington  <hp@redhat.com>
3906
3907         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3908         on non-x86. ifdef's are evil.
3909
3910 2003-05-15  Havoc Pennington  <hp@redhat.com>
3911
3912         * configure.in: 0.11
3913
3914         * NEWS: update
3915
3916         * bus/Makefile.am (initddir): apparently we are supposed to put
3917         init scripts in /etc/rc.d/init.d not /etc/init.d
3918
3919         * bus/Makefile.am: remove the "you must --enable-tests to make
3920         check" as it broke distcheck
3921
3922         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3923
3924 2003-05-13  James Willcox  <jwillcox@gnome.org>
3925
3926         * configure.in:
3927         * bus/activation.c: (bus_activation_service_created),
3928         (bus_activation_activate_service):
3929         * bus/driver.c: (bus_driver_send_service_deleted),
3930         (bus_driver_send_service_created), (bus_driver_send_service_lost),
3931         (bus_driver_send_service_acquired),
3932         (bus_driver_send_welcome_message),
3933         (bus_driver_handle_list_services):
3934         * bus/session.conf.in:
3935         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3936         (dbus_bus_service_exists), (dbus_bus_activate_service):
3937         * dbus/dbus-bus.h:
3938
3939         Add some convenience API which lets you activate a service, and did a
3940         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3941         and dbus_message_get_args()
3942
3943 2003-05-11  Havoc Pennington  <hp@pobox.com>
3944
3945         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3946         calling _dbus_marshal_validate_arg() for every byte in a byte
3947         array, etc.
3948
3949         * dbus/dbus-message-handler.c: use atomic reference counting to
3950         reduce number of locks slightly; the global lock in here sucks
3951
3952         * dbus/dbus-connection.c
3953         (_dbus_connection_update_dispatch_status_and_unlock): variant of
3954         update_dispatch_status that can be called with lock held; then use
3955         in a couple places to reduce locking/unlocking
3956         (dbus_connection_send): hold the lock over the whole function
3957         instead of acquiring it twice.
3958
3959         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3960
3961         * bus/connection.c (bus_connections_setup_connection): fix access
3962         to already-freed memory.
3963
3964         * dbus/dbus-connection.c: keep a little cache of linked list
3965         nodes, to avoid using the global linked list alloc lock in the
3966         normal send-message case. Instead we just use the connection lock
3967         that we already have to take.
3968
3969         * dbus/dbus-list.c (_dbus_list_find_last): new function
3970
3971         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3972         change to use a struct for the atomic type; fix docs,
3973         they return value before increment, not after increment.
3974
3975         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3976         (_dbus_string_append_8_aligned): new functions to try to
3977         microoptimize this operation.
3978         (reallocate_for_length): break this out of set_length(), to
3979         improve profile info, and also so we can consider inlining the
3980         set_length() part.
3981
3982         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3983         strings with some preallocation, cuts down on our calls to realloc
3984         a fair bit. Though if we can get the "move entire string to empty
3985         string" optimization below to kick in here, it would be better.
3986
3987         * dbus/dbus-string.c (_dbus_string_move): just call
3988         _dbus_string_move_len
3989         (_dbus_string_move_len): add a special case for moving
3990         an entire string into an empty string; we can just
3991         swap the string data instead of doing any reallocs.
3992         (_dbus_string_init_preallocated): new function
3993
3994 2003-05-11  Havoc Pennington  <hp@pobox.com>
3995
3996         Write a "test-profile" that does echo client-server with threads;
3997         profile reveals lock contention, memcpy/realloc of buffers, and
3998         UTF-8 validation as hot spots. 20% of lock contention eliminated
3999         with dbus_atomic_inc/dec implementation on x86.  Much remaining
4000         contention is global mempool locks for GList and DBusList.
4001
4002         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
4003         x86 implementation
4004
4005         * dbus/dbus-connection.c (struct DBusConnection): use
4006         dbus_atomic_t for the reference count
4007
4008         * dbus/dbus-message.c (struct DBusMessage): declare
4009         dbus_atomic_t values as volatile
4010
4011         * configure.in: code to detect ability to use atomic integer
4012         operations in assembly, from GLib patch
4013
4014         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
4015         time, tired of it being wrong in threads and forked processes
4016
4017         * glib/test-profile.c: a little program to bounce messages back
4018         and forth between threads and eat CPU
4019
4020         * dbus/dbus-connection.c: add debug spew macros for debugging
4021         thread locks; include config.h at top; fix deadlock in
4022         dbus_connection_flush()
4023
4024 2003-05-08  Havoc Pennington  <hp@pobox.com>
4025
4026         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
4027         data from getting written, and there wasn't a good reason to
4028         use _exit really.
4029
4030         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
4031         dbus_verbose lines in test coverage
4032         (main): add list of functions sorted by # of untested blocks
4033         to the coverage report
4034
4035         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
4036
4037         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
4038
4039         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
4040         extend test coverage
4041
4042         * test/data/auth/cancel.auth-script: test canceling an
4043         authentication
4044
4045         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
4046         aren't used. in CVS history if we end up needing them.
4047
4048 2003-05-04  Havoc Pennington  <hp@pobox.com>
4049
4050         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
4051         unit test
4052
4053         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
4054         function, which assumed length was in # of strings, not bytes
4055
4056         * dbus/dbus-message.c (_dbus_message_test): add tests for some
4057         missing coverage
4058
4059         * dbus/dbus-connection.c
4060         (_dbus_connection_queue_received_message): disable function for
4061         now, we are only using it in test mode
4062
4063         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
4064         remove a mistaken FIXME
4065
4066 2003-05-04  Havoc Pennington  <hp@pobox.com>
4067
4068         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
4069         unlock mutex on successful return, patch from Anders Gustafsson
4070
4071 2003-05-04  Havoc Pennington  <hp@pobox.com>
4072
4073         * dbus-glib-1.pc.in (Requires): fix dependencies, from
4074         Anders Gustafsson
4075
4076 2003-05-04  Havoc Pennington  <hp@pobox.com>
4077
4078         * tools/dbus-launch.c: implement
4079
4080         * bus/main.c (main), bus/bus.c (bus_context_new):
4081         implement --print-pid and --fork
4082
4083 2003-05-03  Havoc Pennington  <hp@redhat.com>
4084
4085         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
4086         the address had no value, and add to test suite. Fix and
4087         regression test from Miloslav Trmac
4088
4089 2003-05-03  Havoc Pennington  <hp@pobox.com>
4090
4091         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
4092         watch is invalid when handled
4093
4094         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
4095         dbus-launch utility to launch the bus from a shell script.  Didn't
4096         actually implement dbus-launch yet, it's just a placeholder still.
4097
4098 2003-05-03  Havoc Pennington  <hp@pobox.com>
4099
4100         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
4101         daemon; also documents daemon config file, so replaces
4102         doc/config-file.txt. Corrected some stuff from config-file.txt in
4103         the process of moving it.
4104
4105 2003-05-03  Havoc Pennington  <hp@pobox.com>
4106
4107         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
4108         add some man pages
4109
4110 2003-05-03  Colin Walters  <walters@verbum.org>
4111
4112         * dbus/dbus-sysdeps.c (fill_user_info): Test against
4113         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
4114
4115         * Makefile.am: Update to use new .pc versioning scheme.
4116
4117 2003-05-02  Havoc Pennington  <hp@redhat.com>
4118
4119         * bus/system.conf.in: allow send/receive to/from message bus
4120         service
4121
4122 2003-04-30  Havoc Pennington  <hp@redhat.com>
4123
4124         * configure.in: print a note when building with unit tests and
4125         without assertions
4126
4127 2003-04-30  Havoc Pennington  <hp@redhat.com>
4128
4129         * Makefile.am: add a check-local that complains if you didn't
4130         configure with --enable-tests
4131
4132 2003-04-29  Havoc Pennington  <hp@redhat.com>
4133
4134         * glib/dbus-gmain.c: docs cleanups
4135
4136         * dbus/dbus-types.h: add docs on int64 types
4137
4138         * dbus/dbus-memory.c: fix docs to avoid putting private API in
4139         public API docs section
4140
4141 2003-04-29  Havoc Pennington  <hp@redhat.com>
4142
4143         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
4144         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
4145         parallel install API version, not with the D-BUS package version.
4146
4147         * HACKING: move some of README over here
4148
4149         * README: updates, and document API/ABI policy
4150
4151         * configure.in: reindentation
4152
4153 2003-04-29  Havoc Pennington  <hp@redhat.com>
4154
4155         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
4156         to use this library" to be sure people have the right
4157         expectations.
4158
4159 2003-04-28  Havoc Pennington  <hp@redhat.com>
4160
4161         * configure.in: add --enable-docs which by default is auto yes if
4162         doxygen and db2html found, no otherwise; but can be forced on/off
4163
4164         * doc/Makefile.am: conditionalize whether to build docs on
4165         --enable-docs
4166
4167 2003-04-28  Havoc Pennington  <hp@redhat.com>
4168
4169         * configure.in: 0.10
4170
4171         * NEWS: update
4172
4173         * bus/system.conf.in: add <includedir>system.d</includedir>
4174
4175         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
4176         username was provided but not uid
4177
4178         * bus/config-parser.c (struct BusConfigParser): keep track of
4179         whether the parser is toplevel or was included; change some
4180         of the error handling if it's included.
4181
4182 2003-04-27  Havoc Pennington  <hp@pobox.com>
4183
4184         Unbreak my code...
4185
4186         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4187         report correct status if we finish processing authentication
4188         inside this function.
4189
4190         * bus/activation.c (try_send_activation_failure): use
4191         bus_transaction_send_error_reply
4192
4193         * bus/connection.c (bus_connection_get_groups): return an error
4194         explaining the problem
4195
4196         * bus/bus.c (bus_context_check_security_policy): implement
4197         restriction here that inactive connections can only send the
4198         hello message. Also, allow bus driver to send anything to
4199         any recipient.
4200
4201         * bus/connection.c (bus_connection_complete): create the
4202         BusClientPolicy here instead of on-demand.
4203         (bus_connection_get_policy): don't return an error
4204
4205         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
4206         sender field in message being replied to
4207
4208         * bus/bus.c (bus_context_check_security_policy): fix silly typo
4209         causing it to return FALSE always
4210
4211         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
4212         we checked sender rather than destination
4213
4214 2003-04-25  Havoc Pennington  <hp@redhat.com>
4215
4216         test suite is slightly hosed at the moment, will fix soon
4217
4218         * bus/connection.c (bus_connections_expire_incomplete): fix to
4219         properly disable the timeout when required
4220         (bus_connection_set_name): check whether we can remove incomplete
4221         connections timeout after we complete each connection.
4222
4223         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
4224         probably still broken.
4225
4226         * bus/services.c (bus_registry_acquire_service): implement max
4227         number of services owned, and honor allow/deny rules on which
4228         services a connection can own.
4229
4230         * bus/connection.c (bus_connection_get_policy): report errors here
4231
4232         * bus/activation.c: implement limit on number of pending
4233         activations
4234
4235 2003-04-25  Havoc Pennington  <hp@redhat.com>
4236
4237         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
4238         where we used >= 0 instead of != DBUS_UID_UNSET.
4239
4240 2003-04-25  Havoc Pennington  <hp@redhat.com>
4241
4242         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
4243         were toggled without add/remove, fix from Anders Gustafsson
4244
4245 2003-04-24  Havoc Pennington  <hp@redhat.com>
4246
4247         * test/data/valid-config-files/basic.conf: add <limit> tags to
4248         this test
4249
4250         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
4251         <limit> tag in configuration file.
4252
4253 2003-04-24  Havoc Pennington  <hp@redhat.com>
4254
4255         * bus/dispatch.c: somehow missed some name_is
4256
4257         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
4258         (_dbus_timeout_set_interval): new
4259
4260         * bus/connection.c (bus_connections_setup_connection): record time
4261         when each connection is first set up, and expire them after the
4262         auth timeout passes.
4263
4264 2003-04-24  Havoc Pennington  <hp@redhat.com>
4265
4266         * dbus/dbus-message.c (dbus_message_name_is): rename
4267         (dbus_message_service_is): rename
4268         (dbus_message_sender_is): rename
4269         (dbus_message_get_service): rename
4270
4271 2003-04-24  Havoc Pennington  <hp@redhat.com>
4272
4273         * configure.in: add --enable-checks
4274
4275         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
4276
4277         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
4278         to use thread locks.
4279         (_dbus_connection_handler_destroyed_locked): move some private
4280         functions into proper docs group
4281
4282         * dbus/dbus-internals.h: add _dbus_return_if_fail,
4283         _dbus_return_val_if_fail
4284
4285         Throughout: use dbus_return_if_fail
4286
4287 2003-04-23  James Willcox  <jwillcox@gnome.org>
4288
4289         * glib/dbus-glib.h:
4290         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
4291         (dbus_connection_setup_with_g_main),
4292         (dbus_server_setup_with_g_main):
4293         * glib/test-dbus-glib.c: (main):
4294         * glib/test-thread-client.c: (main):
4295         * glib/test-thread-server.c: (new_connection_callback), (main):
4296         * tools/dbus-monitor.c: (main):
4297
4298         Added a GMainContext argument to dbus_connection_setup_with_g_main()
4299         and dbus_server_setup_with_g_main().
4300
4301 2003-04-20  Havoc Pennington  <hp@pobox.com>
4302
4303         * doc/dbus-specification.sgml: document the restrictions on
4304         message and service names
4305
4306 2003-04-22  Havoc Pennington  <hp@redhat.com>
4307
4308         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
4309         support, and do some code cleanups to share more code and
4310         speed up array marshal/demarshal.
4311
4312         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
4313
4314         * configure.in: generate dbus-arch-deps.h
4315
4316         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
4317         64-bit typecodes
4318
4319 2003-04-22  Havoc Pennington  <hp@redhat.com>
4320
4321         * test/data/valid-messages/opposite-endian.message: fix test
4322         to use proper type for rply field
4323
4324         * test/data/invalid-messages: add tests for below validation
4325
4326         * dbus/dbus-message.c (decode_header_data): validate field types,
4327         and validate that named fields are valid names
4328         (decode_name_field): consider messages in the
4329         org.freedesktop.Local. namespace to be invalid.
4330
4331         * dbus/dbus-string.c (_dbus_string_validate_name): new
4332
4333 2003-04-19  Havoc Pennington  <hp@pobox.com>
4334
4335         * bus/driver.c (bus_driver_handle_hello): check limits and
4336         return an error if they are exceeded.
4337
4338         * bus/connection.c: maintain separate lists of active and inactive
4339         connections, and a count of each. Maintain count of completed
4340         connections per user. Implement code to check connection limits.
4341
4342         * dbus/dbus-list.c (_dbus_list_unlink): export
4343
4344         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
4345         number of bytes in the message queue for a connection
4346
4347 2003-04-18  Havoc Pennington  <hp@pobox.com>
4348
4349         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
4350
4351         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
4352         memleaks
4353
4354         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
4355         on realloc be sure to update the pointer in the keyring
4356
4357         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
4358         offset to avoid writing to unallocated memory
4359
4360         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
4361         try the next mechanism, so we properly handle OOM
4362
4363         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
4364         on OOM.
4365         (_dbus_keyring_new): fix OOM bug
4366         (_dbus_keyring_new_homedir): always set error; impose a maximum
4367         number of keys we'll load from the file, mostly to speed up the
4368         test suite and make its OOM checks more useful, but also for
4369         general sanity.
4370
4371         * dbus/dbus-auth.c (process_error_server): reject authentication
4372         if we get an error from the client
4373         (process_cancel): on cancel, send REJECTED, per the spec
4374         (process_error_client): send CANCEL if we get an error from the
4375         server.
4376
4377 2003-04-18  Havoc Pennington  <hp@pobox.com>
4378
4379         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
4380         debug spew
4381
4382         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
4383         handling problem
4384
4385         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
4386         about DBUS_TEST_HOMEDIR once
4387
4388         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
4389         the environment
4390
4391         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
4392         config file so we test the right thing
4393
4394         Throughout: assorted docs improvements
4395
4396 2003-04-18  Havoc Pennington  <hp@pobox.com>
4397
4398         * glib/dbus-gmain.c: adapt to watch changes
4399
4400         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
4401
4402         * dbus/dbus-server.h: remove dbus_server_handle_watch
4403
4404         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
4405
4406         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
4407         like DBusTimeout, so we don't need dbus_connection_handle_watch
4408         etc.
4409
4410 2003-04-17  Havoc Pennington  <hp@redhat.com>
4411
4412         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
4413         database usage so it all goes via the DBusUserDatabase cache.
4414
4415 2003-04-17  Havoc Pennington  <hp@redhat.com>
4416
4417         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
4418         there was an OOM watch we skipped, we always return TRUE so we
4419         iterate again to have a look at it again. Fixes test suite hang.
4420         Code rearrangement also lets us lose some memset and only iterate
4421         over callbacks once.
4422
4423         * bus/driver.c (bus_driver_handle_message): sense of test for
4424         reply was backward
4425
4426 2003-04-16  Havoc Pennington  <hp@pobox.com>
4427
4428         * doc/dbus-specification.sgml: make spec say serials are unsigned
4429
4430         * dbus/dbus-message.h: change message serials to unsigned
4431
4432         * dbus/dbus-connection.c: adapt to message serials being unsigned
4433
4434 2003-04-15  Havoc Pennington  <hp@pobox.com>
4435
4436         * bus/bus.c: create and keep around a shared DBusUserDatabase
4437         object.
4438
4439         * bus/connection.c (bus_connection_get_groups): don't cache
4440         groups for user in the connection object, since user database
4441         object now does that.
4442
4443 2003-04-16  Havoc Pennington  <hp@redhat.com>
4444
4445         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
4446         list of size counters
4447         (_dbus_message_loader_putback_message_link): put back a popped link
4448
4449         * dbus/dbus-connection.c
4450         (dbus_connection_set_max_live_messages_size): rename
4451         max_received_size
4452         (dbus_connection_get_outgoing_size): get size of outgoing
4453         queue
4454         (_dbus_connection_set_connection_counter): remove this cruft
4455
4456 2003-04-14  Havoc Pennington  <hp@redhat.com>
4457
4458         * dbus/dbus-userdb.c: user database abstraction, mostly to get
4459         caching, but at some point we might want to be able to use a
4460         different database.
4461
4462         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
4463         SHA1 conf file to test the sha1 auth mechanism, since the regular
4464         test always uses EXTERNAL when available.
4465
4466         * configure.in,
4467         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
4468         add conf file that requires use of sha1 auth
4469
4470 2003-04-13  Havoc Pennington  <hp@pobox.com>
4471
4472         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
4473         from Philip Blundell to send messages and monitor them.
4474
4475 2003-04-13  Havoc Pennington  <hp@pobox.com>
4476
4477         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
4478         callbacks
4479
4480         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
4481         users
4482
4483         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4484         fix to only recover unused bytes if we're already authenticated
4485         (_dbus_transport_get_is_authenticated): fix to still mark us
4486         authenticated if there are unused bytes.
4487
4488         * bus/dispatch.c: implement security policy checking
4489
4490         * bus/connection.c (bus_transaction_send_from_driver): new
4491
4492         * bus/bus.c (bus_context_check_security_policy): new
4493
4494         * bus/dispatch.c (send_service_nonexistent_error): delete this,
4495         now we just set the DBusError and it gets converted to an error
4496         reply.
4497
4498         * bus/connection.c (allow_user_function): enable code using actual
4499         data from the config file
4500
4501         * bus/policy.c (list_allows_user): handle wildcard rules for
4502         user/group connection perms
4503
4504 2003-04-13  Havoc Pennington  <hp@pobox.com>
4505
4506         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
4507
4508         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
4509
4510         * bus/policy.c (bus_policy_append_mandatory_rule)
4511         (bus_policy_append_default_rule, bus_policy_append_user_rule)
4512         (bus_policy_append_group_rule): new functions
4513
4514 2003-04-12  Havoc Pennington  <hp@pobox.com>
4515
4516         * bus/config-parser.c (bus_config_parser_new): fix a memleak
4517
4518         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
4519         the pid/gid/uid, just for paranoia.
4520
4521         * test/break-loader.c (randomly_do_n_things): find a byte
4522         containing a type code, and randomly change it to a different
4523         type code.
4524
4525 2003-04-12  Havoc Pennington  <hp@pobox.com>
4526
4527         * bus/policy.h: change BusPolicy to be the thing from the config
4528         file, and rename old BusPolicy to BusClientPolicy
4529
4530         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4531         match change in how policy works
4532
4533         * dbus/dbus-internals.h: mark assert_not_reached as
4534         __attribute((noreturn))__
4535
4536 2003-04-11  Havoc Pennington  <hp@redhat.com>
4537
4538         * doc/dbus-specification.sgml: fix a spot with the wrong name for
4539         the broadcast service. Use boolean return for ServiceExists.
4540
4541 2003-04-11  Havoc Pennington  <hp@redhat.com>
4542
4543         * configure.in: add another directory to look for qt in.
4544
4545 2003-04-11  Havoc Pennington  <hp@redhat.com>
4546
4547         * AUTHORS: add Colin Walters
4548
4549 2003-04-11  Havoc Pennington  <hp@redhat.com>
4550
4551         * NEWS: update
4552
4553         * configure.in: 0.9
4554
4555 2003-04-11  Havoc Pennington  <hp@redhat.com>
4556
4557         * bus/messagebus.in: remove pid file when stopping the
4558         message bus, since the bus won't have privileges to remove it
4559         itself.
4560
4561 2003-04-11  Havoc Pennington  <hp@redhat.com>
4562
4563         * bus/bus.c (bus_context_new): move credentials change after
4564         creating pidfile
4565
4566 2003-04-11  Havoc Pennington  <hp@pobox.com>
4567
4568         * test/decode-gcov.c: add "below average functions" to the
4569         coverage report, and change how some of the code works.
4570
4571         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4572         not in the coverage stats.
4573
4574         * test/test-service.c (main): use _dbus_verbose not fprintf in a
4575         couple places so running the test suite doesn't result in megaspam.
4576
4577 2003-04-11  Havoc Pennington  <hp@pobox.com>
4578
4579         * bus/dispatch.c (check_existent_service_activation): accept a no
4580         memory error in a place we didn't before
4581
4582         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4583         in case the first one failed," since the test suite is less
4584         broken now.
4585
4586 2003-04-10  Havoc Pennington  <hp@pobox.com>
4587
4588         * bus/dispatch.c (check_segfault_service_activation): add test
4589         for launching an executable that just crashes.
4590
4591         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4592         don't leave a million cores. We'll see how portable this is.
4593
4594 2003-04-10  Havoc Pennington  <hp@pobox.com>
4595
4596         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4597         the possible parent failures before we fork, so that we don't
4598         fail to create a babysitter after creating the child.
4599
4600         * bus/activation.c (bus_activation_activate_service): kill child
4601         if we don't successfully complete the activation.
4602
4603 2003-04-10  Havoc Pennington  <hp@redhat.com>
4604
4605         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4606         the connection if it's disconnected
4607
4608         * bus/activation.c (bus_activation_service_created): use new
4609         transaction features to roll back removal of pending activation if
4610         we don't successfully create the service after all. Don't remove
4611         pending activation if the function fails.
4612
4613         * dbus/dbus-list.c (_dbus_list_insert_before_link)
4614         (_dbus_list_insert_after_link): new code to facilitate
4615         services.c fixes
4616
4617         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4618         new functionality, so we can preallocate the ability to insert
4619         into a hash table.
4620
4621         * bus/connection.c (bus_transaction_add_cancel_hook): new function
4622         allowing us to put custom hooks in a transaction to be used for
4623         cancelling said transaction
4624
4625         * doc/dbus-specification.sgml: add some discussion of secondary
4626         service owners, and disallow zero-length service names
4627
4628         * bus/services.c (bus_registry_acquire_service): new function,
4629         splits out part of bus_driver_handle_acquire_service() and fixes
4630         a bug where we didn't remove the service doing the acquiring
4631         from the secondary queue if we failed to remove the current owner
4632         from the front of the queue.
4633
4634 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4635
4636         * doc/dbus-specification.sgml:
4637         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4638
4639 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4640
4641         * bus/.cvsignore:
4642         * glib/.cvsignore:
4643         * test/.cvsignore:
4644         Added files to cvsignore
4645
4646         * dbus/dbus-message.h:
4647         * dbus/dbus-message.c: (dbus_message_iter_get_named):
4648         Make get_named() take two out argument and return a boolean.
4649         (dbus_message_iter_get_args_valist):
4650         Update usage of get_named().
4651         (dbus_message_iter_append_byte):
4652         Fix typo
4653         (dbus_message_iter_append_named)
4654         Fix typo
4655         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4656         More tests.
4657
4658 2003-04-10  Alexander Larsson  <alexl@redhat.com>
4659
4660         * dbus/dbus-marshal.[ch]:
4661         Add array_type_pos argument to _dbus_marshal_validate_arg.
4662         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4663
4664         * dbus/dbus-message.[ch]:
4665         Multi-dimensional arrays have full type specification in the
4666         outermost array. Iter code re-arranged to handle this.
4667         Added some more iter tests.
4668
4669         * doc/dbus-specification.sgml:
4670         Add me to authors.
4671         Remove old FIXME.
4672         Update new array encoding description.
4673         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4674
4675         * test/data/invalid-messages/array-with-mixed-types.message:
4676         * test/data/valid-messages/array-of-array-of-uint32.message:
4677         Change to the new array format.
4678
4679         * test/data/invalid-messages/too-short-dict.message:
4680         Fix bug in test.
4681
4682         * test/data/valid-messages/recursive-types.message:
4683         Fix up and extend test.
4684
4685 2003-04-10  Havoc Pennington  <hp@pobox.com>
4686
4687         * bus/dispatch.c: lots of fixes
4688
4689         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4690         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4691         that was crack, broke the test service.
4692
4693         * dbus/dbus-transport.c (_dbus_transport_open): fix error
4694         handling to avoid piling up errors if we get a failure on the
4695         first address.
4696
4697         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4698         pid in assertion failures.
4699
4700         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4701         to some fixed size of file descriptor array. Don't return TRUE
4702         anytime a timeout exists, that led to lots of busy loop silliness
4703         in the tests.
4704
4705 2003-04-09  Havoc Pennington  <hp@redhat.com>
4706
4707         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4708         I'd checked this in earlier but hadn't.
4709
4710 2003-04-09  Havoc Pennington  <hp@redhat.com>
4711
4712         * bus/dispatch.c (bus_dispatch_test): get a bit further through
4713         the activation test (man this is getting old!)
4714
4715 2003-04-09  Havoc Pennington  <hp@redhat.com>
4716
4717         * test/test-utils.c: use dispatch status function to fix this up
4718
4719         * bus/connection.c (connection_watch_callback): don't dispatch
4720         from here
4721         (connection_timeout_callback): don't dispatch from here
4722         (bus_connections_setup_connection): set the dispatch status function
4723         (bus_connection_disconnected): unset it
4724
4725         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4726         used to add a connection to be dispatched
4727         (_dbus_loop_iterate): do the dispatching at the end of each
4728         iteration
4729
4730         * dbus/dbus-connection.c
4731         (dbus_connection_set_dispatch_status_function): new function
4732         allowing us to fix up main loop usage
4733         (_dbus_connection_last_unref): free all the various function
4734         user data
4735         (dbus_connection_dispatch): call the DispatchStatusFunction
4736         whenever this function returns
4737         (dbus_connection_handle_watch): call DispatchStatusFunction
4738         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4739         (reply_handler_timeout): call DispatchStatusFunction
4740         (dbus_connection_flush): call DispatchStatusFunction
4741
4742 2003-04-09  Havoc Pennington  <hp@redhat.com>
4743
4744         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4745         a memory leak
4746
4747         * bus/dispatch.c (check_service_activated): fix bug in test
4748
4749         * dbus/dbus-mainloop.c (check_timeout): fix this up
4750
4751         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4752         verbose output so we can sort out output from different processes,
4753         e.g. in the activation case.
4754
4755 2003-04-08  Colin Walters  <walters@gnu.org>
4756
4757         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4758         the pid file.
4759         (bus_context_new): Set it.
4760         (bus_context_unref): Use it to delete the pid file.
4761
4762 2003-04-08  Havoc Pennington  <hp@redhat.com>
4763
4764         * test/data/invalid-messages/array-with-mixed-types.message:
4765         regression test that fails for the moment
4766
4767         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4768         tests for convenience
4769
4770         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4771         array of nil, it broke things.
4772
4773         * test/data/invalid-messages/array-of-nil.message: regression test
4774
4775         * test/data/valid-messages/array-of-array-of-uint32.message:
4776         happened to write this so added it to suite
4777
4778 2003-04-08  Havoc Pennington  <hp@redhat.com>
4779
4780         * bus/driver.c (bus_driver_handle_acquire_service): init
4781         retval/reply before checking name
4782
4783         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4784         recursion depth argument
4785
4786         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4787         in the public struct for future extension
4788
4789         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4790         typo
4791
4792         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4793         message
4794
4795         * doc/dbus-specification.sgml: fix typo
4796
4797 2003-04-08  Alexander Larsson  <alexl@redhat.com>
4798
4799         Implemented recursive types, named types and new-style iters
4800
4801         * bus/driver.c:
4802         * glib/test-thread-client.c: (thread_func):
4803         * glib/test-thread-server.c: (handle_test_message):
4804         * test/test-service.c: (handle_echo):
4805         Update to new api
4806
4807         * dbus/Makefile.am:
4808         * dbus/dbus-dict.c:
4809         * dbus/dbus-dict.h:
4810         * dbus/dbus.h
4811         Remove DBusDict
4812
4813         * dbus/dbus-internals.c: (_dbus_type_to_string):
4814         Update for new types.
4815
4816         * dbus/dbus-marshal.[ch]:
4817         Implement recursive types and the new marshalling format.
4818         Remove hardcoded dict marshalling.
4819         Marshal named types.
4820
4821         * dbus/dbus-message-builder.c:
4822         Add BYTE_ARRAY.
4823         Remove references to old types
4824
4825         * dbus/dbus-message.[ch]:
4826         New non-refcounted iter API that supports recursive iters.
4827         Use iters for appending, including support for recursive
4828         iters.
4829         Add byte and named type support.
4830         Update everything to new marshalling formats.
4831         Add tests for new API.
4832
4833         * dbus/dbus-protocol.h:
4834         Remove old array types.
4835         Add types: BYTE, ARRAY, DICT, NAMED
4836
4837         * dbus/dbus-string.c:
4838         * dbus/dbus-sysdeps.c:
4839         Make parse_double locale safe.
4840
4841         * dbus/dbus-test-main.c:
4842         Call setlocale.
4843
4844         * dbus/dbus-test.c:
4845         Kill dict test
4846
4847         * doc/dbus-specification.sgml:
4848         Update spec
4849
4850         * test/data/incomplete-messages/missing-body.message:
4851         * test/data/invalid-messages/bad-boolean.message:
4852         * test/data/invalid-messages/bad-boolean-array.message:
4853         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4854         * test/data/invalid-messages/boolean-has-no-value.message-raw:
4855         * test/data/invalid-messages/too-short-dict.message:
4856         * test/data/valid-messages/dict-simple.message:
4857         * test/data/valid-messages/dict.message:
4858         * test/data/valid-messages/emptiness.message:
4859         * test/data/valid-messages/lots-of-arguments.message:
4860         * test/data/valid-messages/no-padding.message:
4861         * test/data/valid-messages/recursive-types.message:
4862         Add missing NAME fields
4863         Fix up dicts & arrays
4864
4865         * test/data/invalid-messages/dict-with-nil-value.message:
4866         Removed, this is not invalid anymore.
4867
4868         * test/data/valid-messages/recursive-types.message:
4869         Add new test for deeply recursive types.
4870
4871 2003-04-07  Havoc Pennington  <hp@pobox.com>
4872
4873         * bus/driver.c (bus_driver_handle_acquire_service): return an
4874         error if you try to acquire a service that starts with ':'
4875
4876 2003-04-07  Havoc Pennington  <hp@redhat.com>
4877
4878         * doc/dbus-specification.sgml: require that base service names
4879         start with ':' and that the base service is created/deleted
4880         as first and last things a connection does on the bus
4881
4882         * bus/dispatch.c (check_existent_service_activation): lots more
4883         work on the activation test; it doesn't fully pass yet...
4884
4885         * test/test-service.c (main): fix so we don't memleak the
4886         connection to the message bus
4887         (filter_func): accept a message asking us to exit
4888
4889 2003-04-06  Havoc Pennington  <hp@pobox.com>
4890
4891         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4892         from Colin Walters
4893
4894         * configure.in: fixes to Qt detection from Colin Walters
4895
4896         * doc/Makefile.am: Only remove generated docbook dirs if they
4897         exist, from Colin Walters
4898
4899         * dbus/dbus-bus.c: change how we set well-known connections to
4900         NULL, so that it works if a single connection is stored in
4901         two well-known array slots.
4902
4903         * test/Makefile.am: remove a lot of stuff that isn't immediately
4904         useful, it's in CVS history if we want it.
4905
4906         * test/test-service.c: use dbus-mainloop instead of that
4907         watch.[hc] crack
4908
4909 2003-04-06  Havoc Pennington  <hp@pobox.com>
4910
4911         * dbus/Makefile.am: split lists of sources into stuff that goes in
4912         the library, util functions that go in the lib and are also used
4913         elsewhere, and util functions that are used in tests/daemon but
4914         don't go in the lib.
4915
4916         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4917         here so it can be used in test binaries also
4918
4919 2003-04-06  Havoc Pennington  <hp@pobox.com>
4920
4921         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4922         here in the parent process, so we can return an error if it
4923         fails. Also, move some of the code into the child so the parent
4924         is less hosed if we fail midway through.
4925
4926         * bus/bus.c (bus_context_new): move pidfile detection further up
4927         in the function, before we start overwriting sockets and such.
4928
4929         * bus/messagebus.in: adjust this a bit, not sure if it will work.
4930
4931         * configure.in: add --with-system-pid-file and --with-system-socket
4932
4933 2003-04-06  Colin Walters  <walters@verbum.org>
4934
4935         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4936
4937         * bus/system.conf.in: Declare a pidfile.
4938
4939         * bus/bus.c (bus_context_new): Test for an existing pid file, and
4940         create one (if appropriate).
4941
4942         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4943         (struct BusConfigParser) [pidfile]: New.
4944         (element_type_to_name, merge_included, start_busconfig_child)
4945         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4946         (bus_config_parser_unref): Free it.
4947         (bus_config_parser_get_pidfile): New function.
4948
4949         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4950
4951         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4952
4953         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4954
4955         * dbus/dbus-sysdeps.h: Prototype it.
4956
4957 2003-04-06  Havoc Pennington  <hp@pobox.com>
4958
4959         * bus/bus.c (bus_context_new): print the address in here, rather
4960         than in main(), because we need to do it before forking the daemon
4961
4962         * bus/dispatch.c (send_service_nonexistent_error): set the sender
4963         on the service nonexistent error
4964
4965         * bus/driver.c (bus_driver_handle_acquire_service): set the
4966         sender on the AcquireService reply
4967
4968         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4969         server also listen on a UNIX socket so services can connect to it.
4970
4971 2003-04-06  Havoc Pennington  <hp@pobox.com>
4972
4973         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4974         so it detects deadlocks and also we actually init threads when
4975         debugging.
4976
4977 2003-04-06  Havoc Pennington  <hp@pobox.com>
4978
4979         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4980         save the domain socket name, and unlink it when we disconnect the
4981         server. Means that at least when we exit normally, we won't leave
4982         a bunch of junk in /tmp
4983
4984         * dbus/dbus-transport-unix.c
4985         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4986         memory management). (I was making a real change here but then
4987         didn't)
4988
4989 2003-04-06  Havoc Pennington  <hp@pobox.com>
4990
4991         * bus/bus.c (bus_context_new): fix wrong handling of
4992         server_data_slot_unref() in the error case.
4993
4994         * dbus/dbus-internals.h (_dbus_assert): change so it passes
4995         "(condition) != 0" to _dbus_real_assert so that
4996         "_dbus_assert (pointer)" doesn't cause a warning
4997
4998         * bus/main.c (main): accept --print-address option to print out
4999         the message bus address
5000
5001         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
5002
5003         * dbus/dbus-transport.c (_dbus_transport_open): special error for
5004         "tmpdir" option to unix: address on client side
5005
5006         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
5007         to unix: address
5008
5009         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
5010         we can use to create sockets in the test suite.
5011
5012         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
5013         cleanly. To be used for testing.
5014
5015         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
5016
5017         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
5018
5019         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5020         handle trying to call this when there's no servers active
5021
5022 2003-04-05  Havoc Pennington  <hp@pobox.com>
5023
5024         * NEWS: update
5025
5026         * configure.in: 0.8
5027
5028 2003-04-05  Havoc Pennington  <hp@pobox.com>
5029
5030         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
5031         crash on startup. Need to get "try starting the daemon"
5032         in the test suite I guess. ;-)
5033
5034         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
5035         tracked the number of open connections; it's better done in
5036         application-specific code as you want it to span all servers etc.
5037
5038 2003-04-05  Havoc Pennington  <hp@pobox.com>
5039
5040         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
5041         patch from Colin Walters
5042
5043 2003-04-05  Havoc Pennington  <hp@pobox.com>
5044
5045         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
5046         reality; in fact multiple mechanisms are allowed.
5047
5048         * dbus/dbus-internals.c (_dbus_real_assert)
5049         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
5050         _dbus_assert_not_reached() into functions, so that they don't show
5051         up in basic block counts for test coverage, and don't use up as
5052         much disk space. Does mean slower execution speed though, so
5053         assumes --disable-asserts is the normal production case.
5054
5055 2003-04-05  Havoc Pennington  <hp@pobox.com>
5056
5057         * test/Makefile.am (dist-hook): also dist *.in files
5058
5059         * NEWS: update
5060
5061         * configure.in: 0.7
5062
5063 2003-04-05  Havoc Pennington  <hp@pobox.com>
5064
5065         * dbus/dbus-string.c: docs warning
5066
5067         * dbus/dbus-spawn.c: missing docs
5068
5069         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
5070
5071 2003-04-05  Havoc Pennington  <hp@pobox.com>
5072
5073         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
5074         magic from GLib
5075
5076         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
5077         to -1 once we've reaped the babysitter
5078         (_dbus_babysitter_handle_watch): do as much work as we can, not
5079         just one go of it
5080
5081         * bus/activation.c: add code using DBusBabysitter so that we
5082         handle it when a service fails to start up properly.
5083         (bus_activation_service_created): don't remove the activation
5084         entries as we go, just let them get removed when we free the pending
5085         activation. Unref reply messages after sending them.
5086
5087 2003-04-05  Havoc Pennington  <hp@pobox.com>
5088
5089         * test/decode-gcov.c (main): print per-directory stats in the report
5090
5091         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
5092
5093 2003-04-05  Havoc Pennington  <hp@pobox.com>
5094
5095         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
5096
5097         * test/decode-gcov.c: hack up a little program to suck data
5098         out of gcov files. Yes this is sort of silly.
5099
5100         * configure.in: define something in config.h and do an
5101         AM_CONDITIONAL when gcov is enabled
5102
5103 2003-04-04  Havoc Pennington  <hp@redhat.com>
5104
5105         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
5106         return a "babysitter" object that is used to monitor the status of
5107         the spawned process and reap it when required.
5108
5109         * test/test-segfault.c, test/test-exit.c,
5110         test/test-sleep-forever.c: binaries that do various lame things,
5111         used in the test suite.
5112
5113         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
5114
5115 2003-04-03  Havoc Pennington  <hp@pobox.com>
5116
5117         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
5118         in preparation for modifying it, dbus-sysdeps is getting
5119         a bit unmanageable.
5120
5121 2003-04-03  Havoc Pennington  <hp@redhat.com>
5122
5123         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
5124         have multiple ones
5125
5126         * bus/*.[hc]: adapt to mainloop change
5127
5128 2003-04-03  Havoc Pennington  <hp@redhat.com>
5129
5130         * bus/activation.c (load_directory): fix up memleaks
5131         (bus_activation_entry_free): free the entry
5132
5133         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
5134         we get one from the message bus; fix memleaks.
5135
5136         * dbus/dbus-message.c (dbus_set_error_from_message): new function
5137
5138 2003-04-03  Havoc Pennington  <hp@pobox.com>
5139
5140         * bus/config-parser.c (bus_config_parser_unref): free
5141         list of mechanisms, bug discovered by test suite enhancements
5142         (putting system.conf and session.conf into suite)
5143
5144         * test/Makefile.am, test/test-service.c: add placeholder for a
5145         test service that we'll activate as part of test suite. Doesn't
5146         do anything yet.
5147
5148         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
5149         setting NULL value, and use system malloc not dbus_malloc()
5150         when we have unavoidable memleakage.
5151
5152         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
5153         didn't work, and support DBUS_BUS_ACTIVATION.
5154
5155         * bus/activation.c (child_setup): pass our well-known bus type to
5156         the child
5157
5158         * bus/config-parser.c: support <type> to specify well-known type
5159
5160         * doc/dbus-specification.sgml: document the env variables to
5161         locate well-known buses and find service activator
5162
5163 2003-04-02  Havoc Pennington  <hp@redhat.com>
5164
5165         * test/Makefile.am (all-local): add a rule to copy tests to
5166         builddir, so we can have generated tests. Use this to remove the
5167         silly hack for testing system.conf and session.conf. Will use this
5168         shortly to generate .service files pointing to test binaries.
5169
5170 2003-04-02  Havoc Pennington  <hp@redhat.com>
5171
5172         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
5173         current alloc and needed new length, not max of the doubled
5174         allocation and needed new length. Also, when building tests,
5175         don't do the double-allocation stuff, just realloc every time.
5176
5177 2003-04-02  Havoc Pennington  <hp@redhat.com>
5178
5179         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
5180         in error messages
5181         (_dbus_string_get_dirname): new
5182         (_dbus_sysdeps_test): new
5183         (_dbus_directory_open): include dirnames in error messages
5184
5185         * bus/config-parser.c: interpret <include> and <includedir> and
5186         <servicedir> relative to config file location if the given
5187         filename is not absolute.
5188
5189         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
5190
5191 2003-04-02  Havoc Pennington  <hp@redhat.com>
5192
5193         * bus/connection.c (bus_transaction_send_error_reply): set sender
5194         service for the error, and unref the reply on success
5195
5196         * bus/activation.c: convert to use BusTransaction so OOM can be
5197         handled correctly
5198         (bus_activation_service_created): set sender of the message
5199
5200 2003-04-01  Havoc Pennington  <hp@redhat.com>
5201
5202         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
5203         <includedir> (at least mostly)
5204
5205         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
5206         first, then the user ID
5207
5208 2003-04-01  Havoc Pennington  <hp@pobox.com>
5209
5210         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
5211         function
5212
5213         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
5214
5215         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
5216
5217         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
5218         socket 0777, and unlink any existing socket.
5219
5220         * bus/bus.c (bus_context_new): change our UID/GID and fork if
5221         the configuration file so specifies; set up auth mechanism
5222         restrictions
5223
5224         * bus/config-parser.c (bus_config_parser_content): add support
5225         for <fork> option and fill in code for <auth>
5226
5227         * bus/system.conf.in: add <fork/> to default configuration,
5228         and limit auth mechanisms to EXTERNAL
5229
5230         * doc/config-file.txt (Elements): add <fork>
5231
5232         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
5233         (_dbus_change_identity): new function
5234
5235 2003-03-31  Havoc Pennington  <hp@redhat.com>
5236
5237         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
5238         (_dbus_listen_unix_socket): fix off-by-one error in null
5239         termination spotted by Nalin
5240
5241 2003-03-31  Havoc Pennington  <hp@redhat.com>
5242
5243         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
5244         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
5245         having a real home directory available.
5246
5247 2003-03-31  Havoc Pennington  <hp@redhat.com>
5248
5249         * bus/Makefile.am (install-data-hook): create /var/run/dbus
5250
5251         * bus/messagebus.in: add init script for Red Hat /etc/init.d
5252
5253         * configure.in: add support for specifying a style of init script
5254         to install
5255
5256 2003-03-31  Havoc Pennington  <hp@redhat.com>
5257
5258         Fix some annoying DBusString API and fix all affected code.
5259
5260         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
5261         max_length argument
5262         (_dbus_string_get_data): change to return string instead of using
5263         an out param
5264         (_dbus_string_get_const_data): ditto
5265         (_dbus_string_get_data_len): ditto
5266         (_dbus_string_get_const_data_len): ditto
5267
5268 2003-03-31  Havoc Pennington  <hp@redhat.com>
5269
5270         * bus/main.c (main): fix up the command line arguments to be nicer
5271
5272 2003-03-31  Havoc Pennington  <hp@redhat.com>
5273
5274         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
5275         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
5276         final location that lands in the config file
5277
5278         * bus/config-loader-expat.c (bus_config_load): fix type of
5279         XML_Parser variable
5280
5281         * doc/TODO: remove TODO item for dbus_bus_get()
5282
5283         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
5284
5285 2003-03-31  Havoc Pennington  <hp@pobox.com>
5286
5287         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
5288         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
5289         argument since they are always client side
5290
5291         * dbus/dbus-server.c (dbus_server_get_address): new function
5292
5293         * bus/main.c (main): take the configuration file as an argument.
5294
5295         * test/data/valid-config-files/debug-allow-all.conf: new file to
5296         use with dispatch.c tests for example
5297
5298         * bus/test-main.c (main): require test data dir
5299
5300         * bus/bus.c (bus_context_new): change this to take a
5301         configuration file name as argument
5302
5303         * doc/config-file.txt (Elements): add <servicedir>
5304
5305         * bus/system.conf, bus/session.conf: new files
5306
5307         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
5308         well-known socket if none set
5309
5310         * configure.in: create system.conf and session.conf
5311
5312 2003-03-30  Havoc Pennington  <hp@pobox.com>
5313
5314         * bus/config-parser.c: hacking
5315
5316         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
5317         to shut down, since it could cause weirdness with the DBusList
5318         lock
5319
5320         * dbus/dbus-list.c (_dbus_list_test): add tests for the
5321         link-oriented stack routines
5322         (alloc_link): free the mempool if the first alloc from it fails
5323
5324         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
5325
5326         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
5327         from GLib
5328         (_dbus_string_skip_white): new
5329
5330         * doc/config-file.txt (Elements): add <includedir>
5331
5332 2003-03-28  Havoc Pennington  <hp@pobox.com>
5333
5334         * dbus/dbus-string.c (_dbus_string_copy_data_len)
5335         (_dbus_string_copy_data): new functions
5336
5337 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
5338
5339         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
5340         * dbus/dbus-bus.h:
5341         Add dbus_bus_get.
5342
5343         * dbus/dbus-memory.c:
5344         Fix a doc comment.
5345
5346 2003-03-28  Havoc Pennington  <hp@pobox.com>
5347
5348         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
5349         I think it may have just been superstition. Not sure.
5350
5351         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
5352         failures that were not being handled.
5353
5354         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
5355
5356         * dbus/dbus-memory.c: add ability to set number of mallocs in a
5357         row that will fail on out-of-memory.
5358
5359         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
5360         function for testing out-of-memory handling.
5361
5362         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
5363         allocation functions, they do map exactly to the expat ones.
5364
5365 2003-03-27  Havoc Pennington  <hp@redhat.com>
5366
5367         * bus/config-loader-libxml.c (bus_config_load): add another error
5368         check
5369
5370 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
5371
5372         * doc/TODO:
5373         Add note about automatic service activation.
5374
5375         * doc/dbus-specification.sgml:
5376         Rename the specification and clarify a few things.
5377
5378 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
5379
5380         * Doxyfile.in:
5381         * dbus/dbus-address.c:
5382         * dbus/dbus-dict.c:
5383         * dbus/dbus-marshal.c:
5384         * dbus/dbus-server-debug-pipe.c:
5385         * dbus/dbus-transport-unix.c:
5386         Fix documentation warnings.
5387
5388 2003-03-26  Havoc Pennington  <hp@pobox.com>
5389
5390         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
5391         after every test so it's quick and easy to see which leaked, and
5392         so we test multiple dbus_shutdown() calls
5393
5394         * configure.in: change configure.in XML stuff to also support
5395         expat
5396
5397         * config-loader-libxml.c: some hacking
5398
5399         * config-loader-expat.c: some hacking
5400
5401         * config-parser.c: some hacking, plus tests
5402
5403 2003-03-25  Havoc Pennington  <hp@redhat.com>
5404
5405         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
5406
5407         * configure.in: add --with-xml option to specify XML library,
5408         right now only libxml is supported.
5409
5410         * bus/config-loader-libxml.c, config-parser.c: sync some minor
5411         nonworking code between home and work, still just stubs
5412
5413 2003-03-24  Havoc Pennington  <hp@redhat.com>
5414
5415         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
5416         file
5417
5418         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
5419         NULL argument for "message" if the error is a well-known one,
5420         fill in a generic message in this case.
5421
5422         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
5423         favor of DBusError
5424
5425         * bus/test.c (bus_test_flush_bus): add
5426
5427         * bus/policy.c (bus_policy_test): test code stub
5428
5429 2003-03-24  Havoc Pennington  <hp@pobox.com>
5430
5431         * bus/connection.c (bus_connections_setup_connection): set up
5432         the "can this user connect" function, but it always returns
5433         TRUE until we have a config file parser so we can have a config
5434         file that allows connections.
5435
5436 2003-03-23  Havoc Pennington  <hp@pobox.com>
5437
5438         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
5439         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
5440         the mutex, so we can check for proper memory management
5441         and OOM handling.
5442
5443         * dbus/dbus-dataslot.c: remove the mutex from
5444         DBusDataSlotAllocator and lock it manually when using it,
5445         to simplify fitting it into the global slots framework.
5446
5447         * dbus/dbus-threads.c (init_static_locks): rework how we're
5448         handling global locks so they are easily shut down.
5449
5450         * bus/policy.c (bus_policy_append_rule): fix
5451
5452         * bus/test-main.c (main): check for memleaks
5453
5454         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
5455         test suite check for memleaks
5456
5457         * dbus/dbus-memory.c: add support in test mode for tracking
5458         number of outstanding blocks
5459
5460 2003-03-23  Havoc Pennington  <hp@pobox.com>
5461
5462         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
5463         policies code
5464
5465         * dbus/dbus-hash.h: add ULONG hash keys
5466
5467         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
5468         (_dbus_get_group_id): new function
5469
5470 2003-03-20  Havoc Pennington  <hp@redhat.com>
5471
5472         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
5473         new function
5474         (dbus_connection_get_unix_user): new function
5475
5476 2003-03-20  Havoc Pennington  <hp@pobox.com>
5477
5478         * bus/connection.c (bus_connection_send_oom_error): assert that
5479         message has a sender
5480         (connection_execute_transaction): ditto
5481         (bus_connection_preallocate_oom_error): fix to set the sender, and
5482         set recipient to the destination service, not the bus driver
5483
5484         * bus/policy.c: hacking
5485
5486         * dbus/dbus-message.c (dbus_message_service_is): new function
5487         (dbus_message_sender_is): new
5488
5489 2003-03-19  Havoc Pennington  <hp@redhat.com>
5490
5491         * bus/policy.c: start sketching code for policy restrictions on
5492         what connections can do.
5493
5494 2003-03-18  Havoc Pennington  <hp@redhat.com>
5495
5496         * doc/TODO: some notes on high-level todo items. Little nitpick
5497         stuff is all in @todo, so no need to add it here.
5498
5499         * doc/config-file.txt: some notes on how config file might look
5500
5501 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
5502
5503         * configure.in: 0.6
5504
5505         * NEWS: Update.
5506
5507 2003-03-17  Havoc Pennington  <hp@redhat.com>
5508
5509         * dbus/dbus-internals.h: add gcc attributes so that
5510         our printf-style functions warn on bad arguments to
5511         format
5512
5513         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
5514         format bug
5515
5516         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5517         printf format bug
5518
5519 2003-03-17  Havoc Pennington  <hp@redhat.com>
5520
5521         * bus/test-main.c (main): make it print something as it runs
5522         so make check doesn't look stuck
5523
5524         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5525         from CVS, now obsolete
5526
5527 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
5528
5529         * bus/dispatch.c: (bus_dispatch):
5530         Refetch the service name since it may have been reallocated
5531         when dbus_message_set_sender was called.
5532
5533         * dbus/dbus-sysdeps.c: (_dbus_accept):
5534         Add address and address length variables and use them to stop
5535         valgrind from complaining.
5536
5537 2003-03-17  Havoc Pennington  <hp@pobox.com>
5538
5539         All tests pass, no memleaks, no valgrind complaints.
5540
5541         * bus/test.c: refcount handler_slot
5542
5543         * bus/connection.c (bus_connections_new): refcount
5544         connection_data_slot
5545
5546         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5547         bytes so that auth scripts pass.
5548
5549         * bus/dispatch.c: init message_handler_slot so it gets allocated
5550         properly
5551
5552         * bus/dispatch.c (message_handler_slot_ref): fix memleak
5553
5554         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5555         dealloc server_pipe_hash when no longer used for benefit of
5556         leak checking
5557
5558         * dbus/dbus-auth.c (process_command): memleak fix
5559
5560         * bus/dispatch.c (check_hello_message): memleak fix
5561
5562 2003-03-16  Havoc Pennington  <hp@pobox.com>
5563
5564         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5565
5566 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
5567
5568         * bus/activation.c (bus_activation_activate_service): Append
5569         the pending activation entry to the list of pending activations.
5570
5571 2003-03-16  Havoc Pennington  <hp@pobox.com>
5572
5573         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5574         connections
5575
5576         * dbus/dbus-address.c (create_entry): fix OOM handling when
5577         failing to alloc entry->method
5578
5579 2003-03-16  Havoc Pennington  <hp@pobox.com>
5580
5581         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5582         the watch
5583
5584         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5585         add some missing dbus_set_result
5586
5587         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5588         alloc the DBusMessageHandler
5589
5590         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5591         the transport here, since we call this from the finalizer; it
5592         resulted in a double-finalize.
5593
5594         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5595         where we tried to use transport->connection that was NULL,
5596         happened when transport was disconnected early on due to OOM
5597
5598         * bus/*.c: adapt to handle OOM for watches/timeouts
5599
5600         * dbus/dbus-transport-unix.c: port to handle OOM during
5601         watch handling
5602
5603         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5604         reference to unused bytes instead of a copy
5605
5606         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5607         out of memory
5608
5609         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5610         FALSE on OOM
5611
5612         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5613         of memory
5614
5615 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5616
5617         * doc/dbus-specification.sgml:
5618         Document reply message for ActivateService.
5619
5620 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5621
5622         * bus/activation.c: (bus_pending_activation_entry_free),
5623         (bus_pending_activation_free), (bus_activation_new),
5624         (bus_activation_unref), (bus_activation_service_created),
5625         (bus_activation_activate_service):
5626         * bus/activation.h:
5627         * bus/bus.c: (bus_context_new):
5628         * bus/desktop-file.c: (new_section):
5629         * bus/driver.c: (bus_driver_send_service_deleted),
5630         (bus_driver_handle_activate_service):
5631         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5632         * bus/services.h:
5633         * dbus/dbus-connection.c:
5634         (dbus_connection_send_with_reply_and_block):
5635         * dbus/dbus-message.c: (dbus_message_append_args_valist):
5636         * dbus/dbus-protocol.h:
5637         Make activation work better. Now pending activations will be queued
5638         and the daemon won't try to activate services that are already registered.
5639
5640 2003-03-16  Havoc Pennington  <hp@pobox.com>
5641
5642         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5643         connection data
5644
5645         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5646         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5647
5648 2003-03-16  Havoc Pennington  <hp@pobox.com>
5649
5650         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5651         this. always run the test suite before commit...
5652
5653         * bus/*: adapt to DBusConnection API changes
5654
5655         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5656         requires renaming stuff to avoid dbus_connection_dispatch name
5657         conflict.
5658
5659         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5660         function
5661
5662         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5663         separate from _dbus_message_loader_return_buffer()
5664
5665         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5666         this, because it's now always broken to use; the number of
5667         messages in queue vs. the number still buffered by the message
5668         loader is undefined/meaningless. Should use
5669         dbus_connection_get_dispatch_state().
5670         (dbus_connection_dispatch): rename from
5671         dbus_connection_dispatch_message
5672
5673 2003-03-16  Havoc Pennington  <hp@pobox.com>
5674
5675         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5676         implementation
5677
5678 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
5679
5680         * dbus/dbus-connection.c:
5681         (dbus_connection_send_with_reply_and_block):
5682         Decrease connection->n_incoming when removing an entry
5683         from the list.
5684         * dbus/dbus-dict.c: (dbus_dict_entry_free),
5685         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5686         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5687         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5688         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5689         (dbus_dict_get_byte_array):
5690         Handle NULL arrays and strings. Also add support for byte arrays.
5691
5692         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5693         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5694         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5695         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5696         (_dbus_demarshal_dict), (demarshal_and_validate_len),
5697         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5698         * dbus/dbus-marshal.h:
5699         Add support for marshalling and demarshalling empty arrays and strings.
5700
5701         * dbus/dbus-message.c: (dbus_message_append_args_valist),
5702         (dbus_message_append_string_array),
5703         (dbus_message_iter_get_boolean),
5704         (dbus_message_iter_get_boolean_array),
5705         (dbus_message_iter_get_int32_array),
5706         (dbus_message_iter_get_uint32_array),
5707         (dbus_message_iter_get_double_array),
5708         (dbus_message_iter_get_byte_array),
5709         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5710         (check_message_handling):
5711         Add support for getting empty arrays and dicts.
5712
5713         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5714         Don't do any validation at all for now, that's better than just checking
5715         for ASCII.
5716
5717         * test/data/valid-messages/emptiness.message:
5718         New test message with lots of empty arrays.
5719
5720 2003-03-16  Havoc Pennington  <hp@pobox.com>
5721
5722         * dbus/dbus-connection.c
5723         (_dbus_connection_queue_received_message_link): new function that
5724         can't fail due to OOM
5725
5726         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5727         new function pops a message together with a list link
5728         containing it.
5729
5730         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5731         message queuing functions to avoid needing to alloc memory
5732
5733 2003-03-16  Havoc Pennington  <hp@pobox.com>
5734
5735         Oops - test code was only testing failure of around 30 of the
5736         mallocs in the test path, but it turns out there are 500+
5737         mallocs. I believe this was due to misguided linking setup such
5738         that there was one copy of dbus_malloc etc. in the daemon and one
5739         in the shared lib, and only daemon mallocs were tested. In any
5740         case, the test case now tests all 500+ mallocs, and doesn't pass
5741         yet, though there are lots of fixes in this patch.
5742
5743         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5744         this so that it doesn't need to allocate memory, since it
5745         has no way of indicating failure due to OOM (and would be
5746         annoying if it did).
5747
5748         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5749
5750         * bus/Makefile.am: rearrange to create two self-contained
5751         libraries, to avoid having libraries with overlapping symbols.
5752         that was resulting in weirdness, e.g. I'm pretty sure there
5753         were two copies of global static variables.
5754
5755         * dbus/dbus-internals.c: move the malloc debug stuff to
5756         dbus-memory.c
5757
5758         * dbus/dbus-list.c (free_link): free list mempool if it becomes
5759         empty.
5760
5761         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5762
5763         * dbus/dbus-address.c (dbus_parse_address): free list nodes
5764         on failure.
5765
5766         * bus/dispatch.c (bus_dispatch_add_connection): free
5767         message_handler_slot when no longer using it, so
5768         memory leak checkers are happy for the test suite.
5769
5770         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5771
5772         * bus/bus.c (new_connection_callback): disconnect in here if
5773         bus_connections_setup_connection fails.
5774
5775         * bus/connection.c (bus_connections_unref): fix to free the
5776         connections
5777         (bus_connections_setup_connection): if this fails, don't
5778         disconnect the connection, just be sure there are no side
5779         effects.
5780
5781         * dbus/dbus-string.c (undo_alignment): unbreak this
5782
5783         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5784         leaking
5785         (_dbus_auth_new): fix the order in which we free strings
5786         on OOM failure
5787
5788         * bus/connection.c (bus_connection_disconnected): fix to
5789         not send ServiceDeleted multiple times in case of memory
5790         allocation failure
5791
5792         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5793         get the base service name
5794         (dbus_bus_register_client): don't return base service name,
5795         instead store it on the DBusConnection and have an accessor
5796         function for it.
5797         (dbus_bus_register_client): rename dbus_bus_register()
5798
5799         * bus/dispatch.c (check_hello_message): verify that other
5800         connections on the bus also got the correct results, not
5801         just the one sending hello
5802
5803 2003-03-15  Havoc Pennington  <hp@pobox.com>
5804
5805         Make it pass the Hello handling test including all OOM codepaths.
5806         Now to do other messages...
5807
5808         * bus/services.c (bus_service_remove_owner): fix crash when
5809         removing owner from an empty list of owners
5810         (bus_registry_ensure): don't leave service in the list of
5811         a connection's owned services if we fail to put the service
5812         in the hash table.
5813
5814         * bus/connection.c (bus_connection_preallocate_oom_error): set
5815         error flag on the OOM error.
5816
5817         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5818         handle _dbus_transport_set_connection failure
5819
5820         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5821         to create watches up front and simply enable/disable them as
5822         needed.
5823         (unix_connection_set): this can now fail on OOM
5824
5825         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5826         of enabling/disabling a watch or timeout.
5827
5828         * bus/loop.c (bus_loop_iterate): don't touch disabled
5829         watches/timeouts
5830
5831         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5832
5833 2003-03-15  Havoc Pennington  <hp@pobox.com>
5834
5835         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5836         write useful test code, after all that futzing around ;-)
5837
5838         Test does not yet pass because we can't handle OOM in
5839         _dbus_transport_messages_pending (basically,
5840         dbus_connection_preallocate_send() does not prealloc the write
5841         watch). To fix this, I think we need to add new stuff to
5842         set_watch_functions, namely a SetEnabled function so we can alloc
5843         the watch earlier, then enable it later.
5844
5845         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5846         dbus-memory.c to the convenience lib
5847
5848         * bus/test.c: rename some static functions to keep them clearly
5849         distinct from stuff in connection.c. Handle client disconnection.
5850
5851 2003-03-14  Havoc Pennington  <hp@pobox.com>
5852
5853         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5854         transport, tests more of the real codepath. Set up clients
5855         with bus_setup_debug_client.
5856
5857         * bus/test.c (bus_setup_debug_client): function to set up debug
5858         "clients" on the main loop
5859
5860         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5861         support
5862
5863         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5864         server type
5865
5866         * dbus/dbus-server-debug.c: support a debug server based on pipes
5867
5868         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5869         (_dbus_close): new function
5870
5871         * configure.in: check for socketpair
5872
5873 2003-03-14  Havoc Pennington  <hp@redhat.com>
5874
5875         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5876         cheesy hack
5877
5878         * dbus/dbus-transport-debug.c: rework this a good bit to be
5879         less complicated. hopefully still works.
5880
5881         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5882         manually
5883
5884         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5885         after running it
5886
5887         * dbus/dbus-message.c (dbus_message_copy): rename from
5888         dbus_message_new_from_message, fix it up to copy
5889         all the message fields, add test case
5890
5891         * bus/dispatch.c (bus_dispatch_test): add some more test code,
5892         not quite passing yet
5893
5894 2003-03-14  Havoc Pennington  <hp@pobox.com>
5895
5896         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5897         until no work remains" in test code. (the large diff here
5898         is just code movement, no actual changes)
5899
5900         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5901         1, no point waiting around for test code.
5902         (_dbus_server_debug_accept_transport): unref the timeout
5903         after adding it (right?)
5904
5905         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5906
5907 2003-03-13  Havoc Pennington  <hp@redhat.com>
5908
5909         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5910         out of memory
5911
5912         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5913         of memory
5914
5915         * dbus/dbus-connection.h: Make AddWatchFunction and
5916         AddTimeoutFunction return a bool so they can fail on out-of-memory
5917
5918         * bus/bus.c (bus_context_new): set up timeout handlers
5919
5920         * bus/connection.c (bus_connections_setup_connection): set up
5921         timeout handlers
5922
5923         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5924         can fail
5925
5926         * bus/bus.c (bus_context_new): adapt to changes
5927
5928         * bus/connection.c: adapt to changes
5929
5930         * test/watch.c: adapt to DBusWatch changes
5931
5932         * bus/dispatch.c (bus_dispatch_test): started adding this but
5933         didn't finish
5934
5935 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
5936
5937         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5938
5939 2003-03-13  Havoc Pennington  <hp@pobox.com>
5940
5941         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5942         set up a test framework as for the library
5943
5944 2003-03-12  Havoc Pennington  <hp@pobox.com>
5945
5946         Throughout: purge global variables, introduce BusActivation,
5947         BusConnections, BusRegistry, etc. objects instead.
5948
5949         * bus/bus.h, bus/bus.c: introduce BusContext as a global
5950         message bus object
5951
5952         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5953         going to redo this a bit differently I think
5954
5955 2003-03-12  Havoc Pennington  <hp@redhat.com>
5956
5957         Mega-patch that gets the message bus daemon initially handling
5958         out-of-memory. Work still needed. Also lots of random
5959         moving stuff to DBusError instead of ResultCode.
5960
5961         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5962
5963         * dbus/dbus-connection.c
5964         (dbus_connection_send_with_reply_and_block): use DBusError
5965
5966         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5967         DBusResultCode
5968
5969         * dbus/dbus-connection.c (dbus_connection_send): drop the result
5970         code here, as the only failure possible is OOM.
5971
5972         * bus/connection.c (bus_connection_disconnect):
5973         rename bus_connection_disconnected as it's a notification only
5974
5975         * bus/driver.c (bus_driver_handle_acquire_service): don't free
5976         "name" on get_args failure, should be done by get_args;
5977         don't disconnect client for bad args, just return an error.
5978         (bus_driver_handle_service_exists): ditto
5979
5980         * bus/services.c (bus_services_list): NULL-terminate returned array
5981
5982         * bus/driver.c (bus_driver_send_service_lost)
5983         (bus_driver_send_service_acquired): send messages from driver to a
5984         specific client to the client's unique name, not to the broadcast
5985         service.
5986
5987         * dbus/dbus-message.c (decode_header_data): reject messages that
5988         contain no name field
5989         (_dbus_message_get_client_serial): rename to
5990         dbus_message_get_serial and make public
5991         (_dbus_message_set_serial): rename from set_client_serial
5992         (_dbus_message_set_reply_serial): make public
5993         (_dbus_message_get_reply_serial): make public
5994
5995         * bus/connection.c (bus_connection_foreach): allow stopping
5996         iteration by returning FALSE from foreach function.
5997
5998         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5999         (dbus_connection_free_preallocated_send)
6000         (dbus_connection_preallocate_send): new API for sending a message
6001         without possibility of malloc failure.
6002         (dbus_connection_send_message): rename to just
6003         dbus_connection_send (and same for whole function family)
6004
6005         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
6006
6007         * dbus/dbus-sysdeps.c (_dbus_exit): new function
6008
6009         * bus/activation.c: handle/return errors
6010
6011         * dbus/dbus-errors.h: add more DBUS_ERROR #define
6012
6013         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
6014         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
6015         (_dbus_result_from_errno): move to this file
6016
6017 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
6018
6019         * dbus/dbus-marshal.c:
6020         (_dbus_marshal_set_string):
6021         Take a length argument so we can marshal the correct string
6022         length.
6023
6024         (_dbus_marshal_dict), (_dbus_demarshal_dict),
6025         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
6026         (_dbus_marshal_test):
6027         * dbus/dbus-marshal.h:
6028         Add support for marshalling and demarshalling dicts.
6029
6030         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6031         Add support for TYPE DICT.
6032
6033         * dbus/dbus-message.c: (set_string_field):
6034         Adjust header padding.
6035
6036         (dbus_message_append_args_valist), (dbus_message_append_dict),
6037         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
6038         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
6039         (check_message_handling), (check_have_valid_message):
6040         * dbus/dbus-message.h:
6041         Add functions for setting and getting dicts.
6042
6043         * dbus/dbus-protocol.h:
6044         Add DBUS_TYPE_DICT.
6045
6046         * dbus/dbus.h:
6047         Add dbus-dict.h
6048
6049         * doc/dbus-specification.sgml:
6050         Add information about how dicts are marshalled.
6051
6052         * test/data/invalid-messages/dict-with-nil-value.message:
6053         * test/data/invalid-messages/too-short-dict.message:
6054         * test/data/valid-messages/dict-simple.message:
6055         * test/data/valid-messages/dict.message:
6056         Add sample messages containing dicts.
6057
6058 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
6059
6060         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
6061
6062 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
6063
6064         * dbus/Makefile.am:
6065         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
6066         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
6067         (dbus_dict_set_int32), (dbus_dict_set_uint32),
6068         (dbus_dict_set_double), (dbus_dict_set_string),
6069         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
6070         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
6071         (dbus_dict_set_string_array), (_dbus_dict_test):
6072         * dbus/dbus-dict.h:
6073         Fix according to comments from Havoc.
6074
6075 2003-03-06  Michael Meeks  <michael@server.home>
6076
6077         * configure.in: if we don't have kde-config, disable have_qt.
6078
6079 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
6080
6081         * dbus/Makefile.am:
6082         Add dbus-dict.[ch]
6083
6084         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
6085         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
6086         (dbus_dict_remove), (dbus_dict_get_value_type),
6087         (dbus_dict_get_keys), (dbus_dict_put_boolean),
6088         (dbus_dict_put_int32), (dbus_dict_put_uint32),
6089         (dbus_dict_put_double), (dbus_dict_put_string),
6090         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
6091         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
6092         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
6093         (dbus_dict_get_int32), (dbus_dict_get_uint32),
6094         (dbus_dict_get_double), (dbus_dict_get_string),
6095         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
6096         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
6097         (dbus_dict_get_string_array), (_dbus_dict_test):
6098         * dbus/dbus-dict.h:
6099         Add DBusDict implementation
6100
6101         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
6102         * dbus/dbus-test.h:
6103         Add _dbus_dict_test
6104
6105 2003-03-04  Havoc Pennington  <hp@pobox.com>
6106
6107         * test/data/auth/*: adapt to changes
6108
6109         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
6110         USERID_BASE64 and change USERNAME_BASE64 to put in username not
6111         userid
6112
6113         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
6114         more stuff from being in a context name, to make the protocol
6115         simpler to deal with
6116
6117         * dbus/dbus-errors.c (dbus_error_has_name): new function
6118         (dbus_error_is_set): new function
6119
6120         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
6121         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
6122
6123         * dbus/dbus-connection.c (dbus_connection_flush): also read
6124         messages during a flush operation
6125
6126         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
6127
6128 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
6129
6130         * configure.in: Check for gethostbyname on Solaris.
6131
6132         * dbus/dbus-transport.c: (_dbus_transport_open):
6133         Remove duplicate "tcp" entry.
6134
6135         * doc/dbus-specification.sgml:
6136         Clarify some things.
6137
6138 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
6139
6140         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
6141         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
6142         (_dbus_keyring_test):
6143         * dbus/dbus-md5.c: (_dbus_md5_compute):
6144         * dbus/dbus-sha.c: (_dbus_sha_compute):
6145         Plug memory leaks.
6146
6147 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
6148
6149         * README: Add some things.
6150
6151 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
6152
6153         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
6154         after case DBUS_TYPE_BOOELAN.
6155
6156 2003-03-02  Havoc Pennington  <hp@pobox.com>
6157
6158         * test/break-loader.c (randomly_set_extreme_ints): add test that
6159         sets really huge and small integers
6160
6161         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
6162         that length of boolean array fits in the string, and that
6163         string has room for boolean value in single-bool case.
6164
6165         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
6166         optional value to "ALIGN" command which is what to fill the
6167         alignment with.
6168
6169         * test/data/valid-messages/no-padding.message: add regression
6170         test for the message padding problem
6171
6172 2003-03-02  Havoc Pennington  <hp@pobox.com>
6173
6174         * dbus/dbus-message.c (decode_header_data): fix to always init
6175         message_padding, from Benjamin Dauvergne
6176
6177 2003-03-02  Havoc Pennington  <hp@pobox.com>
6178
6179         * configure.in: 0.5
6180
6181         * NEWS: Update.
6182
6183 2003-03-01  Joe Shaw  <joe@assbarn.com>
6184
6185         * configure.in: Check for "struct cmsgcred" and try to access its
6186         members for BSD-like unices.
6187
6188         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
6189         _dbus_read_credentials_unix_socket().
6190         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
6191         read() for reading the credential byte off the unix socket.  Use
6192         struct cmsgcred on systems that support it.
6193
6194 2003-02-27  Alexander Larsson  <alexl@redhat.com>
6195
6196         * glib/Makefile.am:
6197         * configure.in:
6198         Make gthreads-2.0 dependency optional. Don't build thread test if
6199         its not found.
6200
6201 2003-02-27  Havoc Pennington  <hp@pobox.com>
6202
6203         * dbus/dbus-connection.c
6204         (dbus_connection_send_message_with_reply_and_block): fix doh!
6205         doh! doh! bug that resulted in never removing a reply from the
6206         queue, no wonder we called get_reply_serial so much ;-)
6207
6208         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
6209         and client serial instead of demarshaling them every time
6210
6211 2003-02-27  Havoc Pennington  <hp@pobox.com>
6212
6213         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
6214         more inlined, using dbus-string-private.h, speeds things up
6215         substantially
6216
6217         * dbus/dbus-string.c (_dbus_string_free): apply align offset
6218         when freeing the string
6219         (_dbus_string_steal_data): fix for align offset
6220         (undo_alignment): new function
6221
6222 2003-02-26  Havoc Pennington  <hp@redhat.com>
6223
6224         All kinds of audit fixes from Owen, plus initial attempt to
6225         handle unaligned memory returned from malloc.
6226
6227         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
6228         leave room for align_offset and nul byte
6229         (fixup_alignment): function to track an align_offset and
6230         ensure real->str is aligned
6231         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
6232         to allow a nul byte plus align offset
6233         (_dbus_string_lock): fix overflow issue
6234         (_dbus_string_init_const_len): add assertions on sanity of len,
6235         assign allocated to be ALLOCATION_PADDING larger than len
6236         (set_length): fixup the overflow handling
6237         (_dbus_string_get_data_len): fix overflow in assertion
6238         (open_gap): detect overflow in size of gap to be opened
6239         (_dbus_string_lengthen): add overflow check
6240         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
6241         (_dbus_string_append): add overflow check
6242         (_dbus_string_append_unichar): overflow
6243         (_dbus_string_delete): fix overflow in assertion
6244         (_dbus_string_copy_len): overflow in assertion
6245         (_dbus_string_replace_len): overflows in assertions
6246         (_dbus_string_find): change to implement in terms of
6247         _dbus_string_find_to
6248         (_dbus_string_find_to): assorted fixage
6249         (_dbus_string_equal_c_str): assert c_str != NULL,
6250         fix logic so the function works
6251         (_dbus_string_ends_with_c_str): fix overflow thingy
6252         (_dbus_string_base64_encode): overflow fix
6253         (_dbus_string_validate_ascii): overflow
6254         (_dbus_string_validate_nul): overflow
6255
6256 2003-02-26  Havoc Pennington  <hp@redhat.com>
6257
6258         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
6259
6260 2003-02-26  Alexander Larsson  <alexl@redhat.com>
6261
6262         * configure.in:
6263         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
6264
6265         * dbus/dbus-connection.c:
6266         * dbus/dbus-connection.h:
6267         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
6268         Add dbus_connection_set_wakeup_main_function and use it when queueing
6269         incoming and outgoing messages.
6270
6271
6272         * dbus/dbus-dataslot.c:
6273         Threadsafe usage of DBusDataSlotAllocator
6274
6275         * dbus/dbus-message.c: (dbus_message_get_args_iter):
6276         dbus_new can fail.
6277
6278         * dbus/dbus-server-unix.c:
6279         Add todo comment
6280
6281         * glib/dbus-gmain.c:
6282         Implement the new wakeup functions for glib.
6283
6284         * glib/Makefile.am:
6285         * glib/test-thread-client.c:
6286         * glib/test-thread-server.c:
6287         * glib/test-thread.h:
6288         Initial cut at some thread test code. Not really done yet.
6289
6290 2003-02-26  Havoc Pennington  <hp@pobox.com>
6291
6292         * dbus/dbus-connection.c
6293         (dbus_connection_send_message_with_reply_and_block): fix crash
6294         where we ref'd the outgoing message instead of the returned reply
6295
6296         * dbus/dbus-transport-unix.c (do_authentication): check read watch
6297         at the end of this function, so if we didn't need to read for
6298         authentication, we reinstall it for receiving messages
6299
6300         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
6301         a NULL sender for peer-to-peer case
6302
6303         * dbus/dbus-transport-unix.c (check_read_watch): handle
6304         !authenticated case correctly
6305
6306         * glib/dbus-gmain.c: add support for DBusServer
6307
6308         * dbus/dbus-server.c: add data slot support
6309
6310         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
6311         return values and handle errors
6312
6313         * dbus/dbus-dataslot.c: factor out the data slot stuff from
6314         DBusConnection
6315
6316         * Doxyfile.in (INPUT): add glib subdir
6317
6318         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
6319         setup_with_g_main instead of hookup_with_g_main; write docs
6320
6321 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
6322
6323         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
6324         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6325         * dbus/dbus-message.c: (dbus_message_append_boolean),
6326         (dbus_message_append_boolean_array),
6327         (dbus_message_get_args_valist), (_dbus_message_test):
6328         * dbus/dbus-message.h:
6329         * doc/dbus-specification.sgml:
6330         Various fixes as pointed out by Havoc.
6331
6332         * test/data/invalid-messages/bad-boolean-array.message:
6333         * test/data/invalid-messages/bad-boolean.message:
6334         Add invalid boolean value test cases.
6335
6336 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
6337
6338         * dbus/dbus-internals.c: (_dbus_type_to_string):
6339         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6340         (_dbus_marshal_validate_arg):
6341         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6342         * dbus/dbus-message.c: (dbus_message_append_args_valist),
6343         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
6344         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
6345         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
6346         (dbus_message_iter_get_double),
6347         (dbus_message_iter_get_boolean_array), (message_iter_test):
6348         * dbus/dbus-message.h:
6349         * dbus/dbus-protocol.h:
6350         * doc/dbus-specification.sgml:
6351         * test/data/valid-messages/lots-of-arguments.message:
6352         Add support for boolean and boolean array types.
6353
6354 2003-02-23  Havoc Pennington  <hp@pobox.com>
6355
6356         * dbus/dbus-keyring.c: finish most of this implementation and
6357         simple unit test
6358
6359         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
6360         these barf if the error isn't cleared to NULL
6361
6362         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
6363         (_dbus_create_directory): new function
6364
6365         * dbus/dbus-errors.c (dbus_set_error): fix warning
6366
6367         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
6368         (_dbus_string_hex_decode): new function
6369         (test_hex_roundtrip): test code
6370
6371         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
6372
6373         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
6374
6375         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
6376         the save-to-temp/rename trick to atomically write the new file
6377         (_dbus_string_parse_uint): new function
6378
6379 2003-02-22  Havoc Pennington  <hp@pobox.com>
6380
6381         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
6382
6383 2003-02-22  Havoc Pennington  <hp@pobox.com>
6384
6385         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
6386         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
6387
6388         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
6389
6390         * dbus/test/data/sha-1: add US government test suite for SHA-1
6391
6392 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6393
6394         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6395         Make string arrays NULL-terminated.
6396
6397         * dbus/dbus-memory.c: (dbus_free_string_array):
6398         * dbus/dbus-memory.h:
6399         New function for freeing NULL-terminated string arrays.
6400
6401         * dbus/dbus-message-builder.c: (append_quoted_string),
6402         (_dbus_message_data_load):
6403         Add support for array types.
6404
6405         * dbus/dbus-message.c: (check_message_handling):
6406         Add more types as test cases.
6407
6408         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
6409         (_dbus_string_parse_double):
6410         Add the start offset to the end offset.
6411
6412         * test/data/valid-messages/lots-of-arguments.message:
6413         New test message with lots of arguments.
6414
6415 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6416
6417         * dbus/dbus-message.c: (dbus_message_append_nil),
6418         (dbus_message_append_int32), (dbus_message_append_uint32),
6419         (dbus_message_append_double), (dbus_message_append_string),
6420         (dbus_message_append_int32_array),
6421         (dbus_message_append_uint32_array),
6422         (dbus_message_append_double_array),
6423         (dbus_message_append_byte_array),
6424         (dbus_message_append_string_array):
6425         Fix all out-of-memory handling in these functions.
6426
6427 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6428
6429         * dbus/dbus-message.c: (dbus_message_append_nil):
6430         Fix a silly.
6431
6432 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6433
6434         * dbus/dbus-message.c: (dbus_message_append_args_valist),
6435         (dbus_message_append_nil), (dbus_message_append_int32_array),
6436         (dbus_message_append_uint32_array),
6437         (dbus_message_append_double_array),
6438         (dbus_message_append_byte_array),
6439         (dbus_message_append_string_array), (dbus_message_get_args_valist),
6440         (dbus_message_iter_get_int32_array),
6441         (dbus_message_iter_get_uint32_array),
6442         (dbus_message_iter_get_double_array),
6443         (dbus_message_iter_get_byte_array),
6444         (dbus_message_iter_get_string_array):
6445
6446         * dbus/dbus-message.h:
6447         Add functions for appending and getting arrays.
6448
6449 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
6450
6451         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
6452         element size at least 8 bytes, fixes mempool tests on
6453         64-bit machines.
6454
6455 2003-02-20  Alexander Larsson  <alexl@redhat.com>
6456
6457         * dbus/dbus-transport-unix.c (unix_do_iteration):
6458         Unlock the connection mutex during a blocking select call.
6459         Add todo about how we need a way to wake up the select.
6460
6461         * dbus/dbus-connection-internal.h:
6462         * dbus/dbus-connection.c:
6463         Add _dbus_connection_lock and _dbus_connection_unlock.
6464
6465 2003-02-19  Havoc Pennington  <hp@pobox.com>
6466
6467         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
6468         Doxyfile.in, not Doxyfile
6469
6470         * dbus/dbus-keyring.c: do some hacking on this
6471
6472         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
6473
6474         * dbus/dbus-errors.c (dbus_set_error_const): do not call
6475         dbus_error_init
6476         (dbus_set_error): remove dbus_error_init, check for message ==
6477         NULL *before* we sprintf into it, and add @todo about including
6478         system headers in this file
6479
6480         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
6481
6482         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
6483
6484         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
6485         get various bits of user information based on either username
6486         or user ID
6487         (_dbus_homedir_from_username): new function
6488
6489 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
6490
6491         * configure.in:
6492         Add check for nonposix getpwnam_r
6493
6494         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
6495         Align the pool element size to a sizeof (void *) boundary.
6496
6497         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
6498         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
6499         General Solaris fixes.
6500
6501         * test/data/valid-messages/simplest-manual.message:
6502         Explicitly state that we want little-endian packing.
6503
6504 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
6505
6506         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6507
6508         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
6509         Added to create a transport connecting using a tcp/ip socket.
6510
6511         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
6512         to a tcp socket at given host and port.
6513         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
6514         hostname and port.
6515
6516         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6517
6518         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6519         Added to create a server listening on a TCP/IP socket.
6520
6521 2003-02-19  Havoc Pennington  <hp@pobox.com>
6522
6523         Throughout: mop up all the Doxygen warnings and undocumented
6524         stuff.
6525
6526         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6527         to search any paths.
6528
6529         * dbus/dbus-threads.c: move global mutex initializers to
6530         dbus-internals.h, multiple prototypes was confusing doxygen
6531         besides being kind of ugly
6532
6533         * Doxyfile (PREDEFINED): have Doxygen define
6534         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6535         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6536         (do not abuse the feature! it's for stuff like the autogenerated
6537         macros in dbus-md5.c, not just for things you don't feel like
6538         documenting...)
6539
6540 2003-02-18  Havoc Pennington  <hp@pobox.com>
6541
6542         * dbus/dbus-string.c (_dbus_string_zero): new function
6543
6544         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6545         wrap it in some dbus-friendly API
6546
6547         * dbus/dbus-types.h: add 16-bit types
6548
6549 2003-02-18  Joe Shaw  <joe@assbarn.com>
6550
6551         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6552         credentials from our currently running process.
6553         (get_word): Fix a buglet where we were copying the entire length
6554         instead of relative to our position.
6555
6556         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6557         keys on the stack... it's 640k of data.
6558
6559         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6560         read the credentials byte off the socket, even if we don't have
6561         SO_PEERCRED.
6562         (_dbus_poll): Implement poll() using select() for systems which
6563         don't have it.
6564
6565         * glib/test-dbus-glib.c (main): Print out an error if no
6566         parameters are given.
6567
6568         * test/data/auth/fallback.auth-script: Added.  Tests that a client
6569         can fallback to a secondary auth mechanism if the first fails.
6570
6571 2003-02-18  Havoc Pennington  <hp@pobox.com>
6572
6573         * AUTHORS: add Alex
6574
6575 2003-02-17  Havoc Pennington  <hp@pobox.com>
6576
6577         * doc/dbus-specification.sgml: lots of cosmetic
6578         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6579         env variable to DBUS_BUS_ADDRESS, s/client/application/,
6580         s/server/bus/ (except in authentication section). Add a section
6581         "Message Bus Message Routing"
6582
6583 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
6584
6585         Release 0.4
6586
6587         * NEWS: Update
6588
6589 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6590
6591         * doc/dbus-specification.sgml:
6592         Specification updates.
6593
6594 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6595
6596         * bus/activation.c: (bus_activation_init), (child_setup),
6597         (bus_activation_activate_service):
6598         * bus/activation.h:
6599         * bus/main.c: (main):
6600         Set DBUS_ADDRESS environment variable.
6601
6602         * dbus/dbus-errors.c: (dbus_set_error):
6603         Don't use va_copy since that's a C99 feature.
6604
6605         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6606         (_dbus_spawn_async):
6607         * dbus/dbus-sysdeps.h:
6608         Add child_setup_func to _dbus_spawn_async.
6609
6610         * doc/dbus-specification.sgml:
6611         Update specification.
6612
6613         * test/spawn-test.c: (setup_func), (main):
6614         Fix test.
6615
6616 2003-02-17  Alexander Larsson  <alexl@redhat.com>
6617
6618         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6619         Added todo.
6620
6621 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6622
6623         * doc/.cvsignore:
6624         * doc/Makefile.am:
6625         * doc/dbus-test-plan.sgml:
6626         Add test plan document.
6627
6628         * test/Makefile.am:
6629         Fix distcheck.
6630
6631 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
6632
6633         * dbus/dbus-message.c: (decode_header_data),
6634         (_dbus_message_loader_return_buffer):
6635         Set the header padding amount when loading a message.
6636
6637 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6638
6639         * bus/dispatch.c: (send_one_message):
6640         Only send broadcast messages to registered connections.
6641
6642         * dbus/dbus-message.c: (dbus_message_name_is):
6643         * dbus/dbus-message.h:
6644         New convenience function.
6645
6646         * dbus/dbus-transport-debug.c: (do_reading):
6647         Only dispatch one message per run.
6648
6649         * test/Makefile.am:
6650         * test/bus-test.c: (new_connection_callback), (die),
6651         (test_hello_client1_handler), (test_hello_client2_handler),
6652         (test_hello_replies), (main):
6653
6654         * test/bus-test-loop.[ch]:
6655         Add these.
6656
6657 2003-02-16  Havoc Pennington  <hp@pobox.com>
6658
6659         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6660         backward conditional
6661
6662 2003-02-16  Alexander Larsson  <alexl@redhat.com>
6663
6664         * dbus/dbus-connection.c:
6665         Implement sent_message_with_reply. (with_reply_and block is still
6666         busted).
6667         Made dispatch_message not lose message if OOM.
6668
6669         * dbus/dbus-errors.h:
6670         Add NoReply error (for reply timeouts).
6671
6672 2003-02-16  Alexander Larsson  <alexl@redhat.com>
6673
6674         * dbus/dbus-hash.c (_dbus_hash_table_unref):
6675         Actually free keys and values when destroying hashtable.
6676
6677 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6678
6679         * dbus/dbus-auth.c: (client_try_next_mechanism):
6680         Plug a leak.
6681
6682         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6683         Return TRUE if there's no thread implementation around.
6684
6685         * glib/dbus-gmain.c: (free_source),
6686         (dbus_connection_hookup_with_g_main):
6687         Make sure to remove the GSource when the connection is finalized.
6688
6689 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6690
6691         * bus/dispatch.c: (bus_dispatch_message_handler):
6692         * dbus/dbus-errors.h:
6693         Return an error if someone tries to send a message to a service
6694         that doesn't exist.
6695
6696 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
6697
6698         * bus/activation.c: (load_directory), (bus_activation_init),
6699         (bus_activation_activate_service):
6700         * bus/activation.h:
6701         * bus/driver.c:
6702         (bus_driver_handle_activate_service), (bus_driver_handle_message):
6703         More work on the activation handling.
6704
6705         * dbus/dbus-errors.h:
6706         Add some error messages
6707
6708         * dbus/dbus-message.c: (dbus_message_new_error_reply):
6709         * dbus/dbus-message.h:
6710         New function that creates an error message.
6711
6712         * dbus/dbus-protocol.h:
6713         Add ACTIVATE_SERVER message.
6714
6715         * dbus/dbus-server-unix.c: (unix_handle_watch),
6716         (_dbus_server_new_for_domain_socket):
6717         Call _dbus_fd_set_close_on_exec.
6718
6719         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6720         (_dbus_spawn_async), (_dbus_disable_sigpipe),
6721         (_dbus_fd_set_close_on_exec):
6722         * dbus/dbus-sysdeps.h:
6723         Add _dbus_fd_set_close_on exec function. Also add function that checks
6724         that all open fds are set to close-on-exec and warns otherwise.
6725
6726         * dbus/dbus-transport-unix.c:
6727         (_dbus_transport_new_for_domain_socket):
6728         Call _dbus_fd_set_close_on_exec.
6729
6730 2003-02-16  Havoc Pennington  <hp@pobox.com>
6731
6732         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6733         allow people to avoid setting SIGPIPE to SIG_IGN
6734         (_dbus_connection_new_for_transport): disable SIGPIPE unless
6735         we've been asked not to
6736
6737 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6738
6739         * dbus/dbus-list.c: (_dbus_list_append_link),
6740         (_dbus_list_prepend_link):
6741         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6742         (dbus_realloc):
6743         Warning fixes.
6744
6745 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6746
6747         * bus/Makefile.am:
6748         * bus/activation.c: (bus_activation_entry_free),
6749         (add_desktop_file_entry), (load_directory), (bus_activation_init):
6750         * bus/activation.h:
6751         * bus/main.c: (main):
6752         Add simple activation support, doesn't work yet though.
6753
6754 2003-02-15   Zack Rusin  <zack@kde.org>
6755
6756         * qt/dbus-qthread.cpp:  small casting fix
6757
6758 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6759
6760         * dbus/dbus-errors.c: (dbus_set_error):
6761         * dbus/dbus-errors.h:
6762         Add a few errors and make dbus_set_error void.
6763
6764         * dbus/dbus-sysdeps.c:
6765         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6766         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6767         * dbus/dbus-sysdeps.h:
6768         Add _dbus_spawn_async.
6769
6770         * test/spawn-test.c: (main):
6771         Test for _dbus_spawn_async.
6772
6773 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
6774
6775         * dbus/dbus-internals.h:
6776         Fix build without tests.
6777
6778         * dbus/dbus-list.c: (alloc_link):
6779         Fix a segfault when a malloc fails.
6780
6781         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6782         (dbus_malloc0), (dbus_realloc):
6783         Add support for malloc debugging.
6784
6785 2003-02-15  Alexander Larsson  <alexl@redhat.com>
6786
6787         * dbus/dbus-threads.c:
6788         * dbus/dbus-threads.h:
6789         Add condvars. Remove static mutext from API.
6790         Implement static mutexes by initializing them from threads_init.
6791
6792         * glib/dbus-gthread.c:
6793         * qt/dbus-qthread.cpp:
6794         Update with the thread api changes.
6795
6796
6797         * dbus/dbus-list.c:
6798         * dbus/dbus-list.h:
6799         Turn StaticMutex into normal mutex + init function.
6800         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6801         _dbus_list_append_link, _dbus_list_prepend_link
6802
6803
6804         * dbus/dbus-sysdeps.c:
6805         * dbus/dbus-sysdeps.h:
6806         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6807         _dbus_atomic_dec. Only slow fallback implementation at the moment.
6808
6809         * dbus/dbus-protocol.h:
6810         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6811
6812         * dbus/dbus-message.c:
6813         Make ref/unref atomic.
6814         Fix some docs.
6815
6816         * dbus/dbus-connection-internal.h:
6817         * dbus/dbus-connection.c:
6818         * dbus/dbus-connection.h:
6819         Make threadsafe.
6820         Change _peek to _borrow,_return & _steal_borrowed.
6821         Change disconnect callback to event.
6822         Make dbus_connection_dispatch_messages reentrant.
6823
6824         * dbus/dbus-transport.c:
6825         Don't ref the connection on calls to the transport
6826         implementation.
6827
6828         * dbus/dbus-message-handler.c:
6829         Make threadsafe.
6830
6831         * glib/dbus-gmain.c:
6832         Don't use peek_message anymore
6833
6834         * test/Makefile.am:
6835         * test/debug-thread.c:
6836         * test/debug-thread.h:
6837         Simple thread implementation that asserts() on deadlocks in
6838         single-threaded code.
6839
6840         * test/bus-test.c:
6841         (main) Call debug_threads_init.
6842
6843         * test/watch.c:
6844         Use disconnect message instead of disconnect callback.
6845
6846         * bus/connection.c:
6847         * bus/connection.h:
6848         Don't call dbus_connection_set_disconnect_function. Instead export
6849         bus_connection_disconnect.
6850
6851         * bus/dispatch.c:
6852         Call bus_connection_disconnect when we get a disconnected message.
6853
6854 2003-02-15  Havoc Pennington  <hp@pobox.com>
6855
6856         * dbus/dbus-message.c (dbus_message_new): fool around with the
6857         docs
6858
6859 2003-02-14  Havoc Pennington  <hp@pobox.com>
6860
6861         * dbus/dbus-mempool.c: fail if the debug functions so indicate
6862
6863         * dbus/dbus-memory.c: fail if the debug functions indicate we
6864         should
6865
6866         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6867         (_dbus_decrement_fail_alloc_counter): debug functions to
6868         simulate memory allocation failures
6869
6870 2003-02-14  Havoc Pennington  <hp@pobox.com>
6871
6872         * dbus/dbus-errors.h (struct DBusError): add a word of padding
6873         to DBusError
6874
6875 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6876
6877         * bus/driver.c: (bus_driver_handle_hello):
6878         * bus/driver.h:
6879         * bus/services.c: (bus_service_lookup):
6880         Reorder message sending so we get a more sane order.
6881
6882         * test/bus-test.c: (message_handler):
6883         Fix tyop.
6884
6885 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6886
6887         * bus/driver.c: (bus_driver_send_service_deleted),
6888         (bus_driver_send_service_created), (bus_driver_send_service_lost),
6889         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6890         (bus_driver_send_welcome_message),
6891         (bus_driver_handle_list_services),
6892         (bus_driver_handle_acquire_service),
6893         (bus_driver_handle_service_exists):
6894         * dbus/dbus-bus.c: (dbus_bus_register_client),
6895         (dbus_bus_acquire_service), (dbus_bus_service_exists):
6896         * dbus/dbus-errors.c: (dbus_result_to_string):
6897         * dbus/dbus-errors.h:
6898         * dbus/dbus-message.c: (dbus_message_append_args),
6899         (dbus_message_append_args_valist), (dbus_message_get_args),
6900         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6901         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6902         (dbus_message_iter_get_byte_array),
6903         (dbus_message_iter_get_string_array), (message_iter_test),
6904         (check_message_handling), (_dbus_message_test):
6905         * dbus/dbus-message.h:
6906         * test/bus-test.c: (main):
6907         Change fields to arguments in messages, so that they won't be
6908         confused with header fields.
6909
6910         * glib/test-dbus-glib.c: (main):
6911         Remove append_fields from hello message.
6912
6913 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6914
6915         * dbus/dbus-errors.c:
6916         * dbus/dbus-message.c:
6917         * dbus/dbus-string.c:
6918         Documentation fixes.
6919
6920 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6921
6922         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6923         (remove_timeout):
6924         Implement support for timeouts in dbus-glib.
6925
6926 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6927
6928         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6929         * dbus/dbus-message.c: (process_test_subdir):
6930         * test/break-loader.c: (find_breaks_based_on):
6931         Plug some memory leaks.
6932
6933 2003-02-13  Richard Hult  <rhult@codefactory.se>
6934
6935         * bus/main.c: Fix build.
6936
6937         * dbus/dbus-errors.h:
6938         * dbus/dbus-errors.c: Fix copyright for Anders.
6939
6940 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6941
6942         * bus/Makefile.am:
6943         Add utils.[ch]
6944
6945         * bus/connection.c: (bus_connection_foreach):
6946         Fix a warning.
6947
6948         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6949         (unescape_string), (new_section), (parse_section_start),
6950         (parse_key_value), (report_error), (bus_desktop_file_load),
6951         (bus_desktop_file_get_string):
6952         * bus/desktop-file.h:
6953         Use DBusError for error reporting.
6954
6955         * bus/dispatch.c: (send_one_message),
6956         (bus_dispatch_message_handler):
6957         * bus/driver.c: (bus_driver_send_service_deleted),
6958         (bus_driver_send_service_created), (bus_driver_send_service_lost),
6959         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6960         (bus_driver_send_welcome_message),
6961         (bus_driver_handle_list_services),
6962         (bus_driver_handle_acquire_service),
6963         (bus_driver_handle_service_exists):
6964         * bus/loop.c: (bus_loop_run):
6965         * bus/main.c:
6966         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6967
6968         * bus/utils.c: (bus_wait_for_memory):
6969         * bus/utils.h:
6970         New files with general utility functions.
6971
6972         * dbus/dbus-internals.h:
6973         Remove _DBUS_HANDLE_OOM.
6974
6975 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6976
6977         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6978         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6979         * dbus/dbus-errors.h:
6980         Add DBusError structure.
6981
6982 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6983
6984         * test/data/valid-messages/standard-acquire-service.message:
6985         * test/data/valid-messages/standard-hello.message:
6986         * test/data/valid-messages/standard-list-services.message:
6987         * test/data/valid-messages/standard-service-exists.message:
6988         Add some standard messages.
6989
6990 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
6991
6992         * bus/driver.c: (bus_driver_send_welcome_message),
6993         (bus_driver_handle_list_services),
6994         (bus_driver_handle_acquire_service),
6995         (bus_driver_handle_service_exists), (bus_driver_handle_message):
6996         Update for API changes in libdbus.
6997
6998         * dbus/dbus-message.c: (dbus_message_new_reply):
6999         * dbus/dbus-message.h:
7000         Remove the name argument. The spec states that replies shouldn't
7001         have a name.
7002
7003 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
7004
7005         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
7006         (report_error), (bus_desktop_file_load), (lookup_section),
7007         (lookup_line), (bus_desktop_file_get_raw),
7008         (bus_desktop_file_get_string):
7009         * bus/desktop-file.h:
7010         Some fixes, and new functions for getting a key value from a section.
7011
7012 2003-02-13  Havoc Pennington  <hp@pobox.com>
7013
7014         * test/data/auth/fail-after-n-attempts.auth-script: new test
7015
7016         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
7017         reject the client.
7018
7019 2003-02-13  Havoc Pennington  <hp@pobox.com>
7020
7021         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
7022         dbus_credentials_match were backward
7023
7024         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
7025         NO_CREDENTIALS and ROOT_CREDENTIALS
7026
7027         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
7028         into here. Never process more commands after we've reached an
7029         end state; store further data as unused bytes.
7030
7031         * test/data/auth/*: add more auth tests
7032
7033         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
7034         command to match exact string and EXPECT_UNUSED to match unused
7035         bytes
7036
7037         * test/Makefile.am (dist-hook): fix to dist all the test stuff
7038
7039 2003-02-12  Havoc Pennington  <hp@pobox.com>
7040
7041         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
7042         \r off of popped lines
7043
7044         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
7045         scripts
7046
7047         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
7048         SEND, append \r\n
7049
7050 2003-02-12  Havoc Pennington  <hp@pobox.com>
7051
7052         * dbus/Makefile.am: remove break-loader from the build, since it
7053         moved.
7054
7055         * configure.in: add --enable-gcov to turn on coverage profiling
7056         flags and disable optimization
7057
7058 2003-02-10  Havoc Pennington  <hp@pobox.com>
7059
7060         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
7061         initial cut at test framework for DBusAuth from laptop.
7062         Doesn't quite work yet but it compiles and I need to get
7063         it off the 266mhz laptop. ;-)
7064
7065         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
7066         fix a memleak in error case
7067
7068 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
7069
7070         * bus/Makefile.am:
7071         * bus/desktop-file.c:
7072         * bus/desktop-file.h:
7073         Add a desktop file parser.
7074
7075 2003-02-11  Zack Rusin  <zack@kde.org>
7076
7077         * qt/message.[h|cpp]: sample implementation
7078         of the KDE wrapper for DBusMessage
7079
7080 2003-02-09  Zack Rusin  <zack@kde.org>
7081
7082         * test/bus-test.c: make_it_compile
7083         * doc/dbus-specification.sgml: minimal semantic fix
7084
7085 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
7086
7087         Release 0.3
7088
7089         * NEWS: Update
7090
7091 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
7092
7093         * dbus/Makefile.am:
7094         * dbus/dbus-break-loader.c:
7095         * test/Makefile.am:
7096         * test/break-loader.c:
7097         Move dbus-break-loader to test/ and rename it to break-loader.
7098
7099 2003-02-02  Havoc Pennington  <hp@pobox.com>
7100
7101         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
7102         for code to manage cookies in your home directory
7103
7104         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
7105
7106         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
7107         to authenticate, then disconnect the client.
7108
7109 2003-02-03  Alexander Larsson  <alexl@redhat.com>
7110
7111         * dbus/dbus-message.c (dbus_message_append_fields):
7112         Correct docs.
7113
7114 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7115
7116         * doc/dbus-specification.sgml:
7117         Update address format section.
7118
7119 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7120
7121         * test/Makefile.am:
7122         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
7123         (message_handler), (new_connection_callback), (loop_quit),
7124         (loop_run), (main):
7125         Add bus test.
7126
7127 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7128
7129         * bus/driver.c: (bus_driver_handle_service_exists):
7130         Simplify the code a bit.
7131
7132         * dbus/dbus-bus.c: (dbus_bus_service_exists):
7133         Fix a silly.
7134
7135 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7136
7137         * bus/Makefile.am:
7138         Add libdbus-daemon.la and link to it.
7139
7140 2003-02-01  James Willcox  <jwillcox@gnome.org>
7141
7142         * bus/driver.c: (bus_driver_handle_own_service):
7143         Actually include the service reply code in the message.
7144
7145 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7146
7147         * bus/driver.c: (bus_driver_handle_service_exists):
7148         Don't unref the incoming message.
7149
7150 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7151
7152         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
7153
7154 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
7155
7156         * dbus/dbus-server.c: (dbus_server_listen):
7157         * dbus/dbus-transport.c: (_dbus_transport_open):
7158         ifdef out the calls to the debug transport and server.
7159
7160 2003-02-02  Alexander Larsson  <alexl@redhat.com>
7161
7162         * dbus/dbus-watch.c (dbus_watch_get_flags):
7163         Add note in the docs that ERROR or HANGUP won't be returned
7164         and are assumed always on.
7165
7166         * glib/dbus-gmain.c (add_watch):
7167         Always add IO_ERR | IO_HUP
7168
7169         * dbus/dbus-message.h:
7170         Add semicolon after dbus_message_iter_get_string_array().
7171         Makes qt code build again
7172
7173 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
7174
7175         * bus/driver.c: (create_unique_client_name),
7176         (bus_driver_handle_hello):
7177         Don't take a name, just use a numeric id to identify
7178         each client.
7179
7180         * dbus/Makefile.am:
7181         * dbus/dbus-bus.c: (dbus_bus_register_client),
7182         (dbus_bus_acquire_service), (dbus_bus_service_exists):
7183         * dbus/dbus-bus.h:
7184         Add new convenience functions for communicating with the bus.
7185
7186         * dbus/dbus-message.h:
7187
7188         * dbus/dbus-protocol.h:
7189         Fix a typo.
7190
7191 2003-02-01  Alexander Larsson  <alexl@redhat.com>
7192
7193         * dbus/dbus-message.c (dbus_message_append_fields):
7194         Add some more doc comments.
7195
7196 2003-02-01  Havoc Pennington  <hp@pobox.com>
7197
7198         * dbus/dbus-break-loader.c (randomly_modify_length): change
7199         a 4-byte value in the message as if it were a length
7200
7201         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
7202         execute bit on saved files
7203
7204 2003-02-01  Havoc Pennington  <hp@pobox.com>
7205
7206         * dbus/dbus-break-loader.c (main): new program to find messages
7207         that break the loader.
7208
7209         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
7210         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
7211
7212         * dbus/dbus-string.c (_dbus_string_set_byte): new
7213
7214 2003-01-31  Havoc Pennington  <hp@pobox.com>
7215
7216         * dbus/dbus-message.c: refactor the test code to be more general,
7217         in preparation for writing a "randomly permute test cases to
7218         try to break the loader" program.
7219
7220 2003-01-31  Havoc Pennington  <hp@pobox.com>
7221
7222         * doc/dbus-specification.sgml: work on the specification
7223
7224         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
7225         the protocol version of the message.
7226
7227         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
7228         no longer specifies that.
7229         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
7230         1/2/3/4)
7231
7232         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
7233         "break" for DBUS_TYPE_NIL, remove @todo
7234
7235 2003-01-31  Havoc Pennington  <hp@pobox.com>
7236
7237         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
7238         just set_is_error/get_is_error as this is a commonly-used
7239         function, and write docs.
7240
7241 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
7242
7243         * dbus/dbus-address.c: (dbus_address_entry_free):
7244         Free key and value lists.
7245
7246         * dbus/dbus-internals.c: (_dbus_type_to_string):
7247         Add the types we didn't have.
7248
7249         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
7250         (_dbus_marshal_validate_arg):
7251         Add NIL types.
7252
7253         * dbus/dbus-message.c: (dbus_message_set_sender):
7254         Remove todo about being able to set sender to NULL.
7255
7256         (dbus_message_set_is_error_reply),
7257         (dbus_message_get_is_error_reply):
7258         * dbus/dbus-message.h:
7259         New functions.
7260
7261         * dbus/dbus-protocol.h:
7262         Add error reply flag.
7263
7264         * test/data/valid-messages/opposite-endian.message:
7265         Add NIL type to test.
7266
7267 2003-01-31  Havoc Pennington  <hp@pobox.com>
7268
7269         * doc/dbus-specification.sgml: fully specify the header.  Add
7270         flags and major protocol version, and change header/body len to
7271         unsigned.
7272
7273         * dbus/dbus-message-builder.c (append_saved_length): append length
7274         as uint32
7275
7276         * dbus/dbus-message.c (dbus_message_create_header): change header
7277         length and body length to unsigned. Add the new fields from the
7278         spec
7279         (_dbus_message_loader_return_buffer): unsigned header/body len
7280
7281 2003-01-30  Havoc Pennington  <hp@pobox.com>
7282
7283         * dbus/dbus-auth.c: rework to use only REJECTED, no
7284         MECHANISMS
7285
7286         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
7287         use REJECTED, suggested by Mark McLoughlin
7288
7289 2003-01-30  Havoc Pennington  <hp@pobox.com>
7290
7291         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
7292         a better way to report errors here. e.g.  "unix address lacks
7293         path" or something. also "no such file" when the path doesn't
7294         exist, etc.
7295
7296         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
7297         leaking list nodes
7298         (dbus_parse_address): add @todo about documenting address format,
7299         and allowing , and ; to be escaped
7300
7301 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
7302
7303         * dbus/Makefile.am:
7304         Add dbus-address.[ch]
7305
7306         * dbus/dbus-address.c: (dbus_address_entry_free),
7307         (dbus_address_entries_free), (create_entry),
7308         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
7309         (dbus_parse_address), (_dbus_address_test):
7310         * dbus/dbus-address.h:
7311         New files for dealing with address parsing.
7312
7313         * dbus/dbus-connection.c:
7314         Document timeout functions.
7315
7316         * dbus/dbus-message.c:
7317         Document dbus_message_new_from_message.
7318
7319         * dbus/dbus-server-debug.c:
7320         Document.
7321
7322         * dbus/dbus-server.c: (dbus_server_listen):
7323         Parse address and use correct server implementation.
7324
7325         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
7326         * dbus/dbus-string.h:
7327         New function with test.
7328
7329         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
7330         * dbus/dbus-test.h:
7331         Add address tests.
7332
7333         * dbus/dbus-transport-debug.c:
7334         Document.
7335
7336         * dbus/dbus-transport.c: (_dbus_transport_open):
7337         Parse address and use correct transport implementation.
7338
7339 2003-01-30  Havoc Pennington  <hp@pobox.com>
7340
7341         * dbus/dbus-message.c: use message->byte_order instead of
7342         DBUS_COMPILER_BYTE_ORDER throughout.
7343         (dbus_message_create_header): pad header to align the
7344         start of the body of the message to 8-byte boundary
7345
7346         * dbus/dbus-marshal.h: make all the demarshalers take const
7347         DBusString arguments.
7348
7349         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
7350         validate message args here, so we don't have to do slow validation
7351         later, and so we catch bad messages as they are incoming. Also add
7352         better checks on header_len and body_len. Also fill in
7353         message->byte_order
7354
7355         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
7356         implemented properly)
7357         (_dbus_string_validate_nul): new function to check all-nul
7358
7359         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
7360         get_arg_end_pos and remove all validation
7361         (_dbus_marshal_validate_arg): actually do validation here.
7362
7363 2003-01-29  Havoc Pennington  <hp@pobox.com>
7364
7365         * dbus/dbus-message.c (check_message_handling): fix assertion
7366         failure on set_client_serial
7367
7368 2003-01-28  Havoc Pennington  <hp@pobox.com>
7369
7370         * dbus/dbus-server-debug.c: Add doc section comments
7371
7372         * dbus/dbus-transport-debug.c: add doc section comments
7373
7374 2003-01-28  Havoc Pennington  <hp@redhat.com>
7375
7376         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
7377         the reverse order from how I had it
7378         (_dbus_string_base64_encode): reverse encoding order. I was
7379         basically byteswapping everything during encoding.
7380
7381 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
7382
7383         * dbus/dbus-connection-internal.h:
7384         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
7385         (_dbus_connection_remove_timeout):
7386         Add functions for adding and removing timeouts.
7387
7388         * dbus/dbus-message.c: (dbus_message_new_from_message):
7389         Add new function that takes a message and creates an exact
7390         copy of it, but with the refcount set to 1.
7391         (check_message_handling):
7392         Fix build error.
7393
7394         * dbus/dbus-server-protected.h:
7395         * dbus/dbus-server.c: (_dbus_server_init_base),
7396         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
7397         (dbus_server_set_timeout_functions):
7398         (_dbus_server_remove_timeout):
7399         New functions so that a server can add and remove timeouts.
7400
7401         (dbus_server_listen):
7402         Add commented out call to dbus_server_debug_new.
7403
7404         * dbus/dbus-timeout.c: (_dbus_timeout_new):
7405         Actually set the handler, doh.
7406
7407         * dbus/dbus-transport.c: (_dbus_transport_open):
7408         Add commented out call to dbus_transport_debug_client_new.
7409
7410         * dbus/Makefile.am:
7411         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
7412
7413 2003-01-28  Havoc Pennington  <hp@pobox.com>
7414
7415         * dbus/dbus-message.c (check_message_handling): function to check
7416         on the loaded message, iterates over it etc.
7417
7418 2003-01-28  Havoc Pennington  <hp@pobox.com>
7419
7420         * test/Makefile.am (dist-hook): fix make distdir
7421
7422         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
7423
7424 2003-01-27  Havoc Pennington  <hp@pobox.com>
7425
7426         * dbus/dbus-mempool.c (time_for_size): replace printf with
7427         _dbus_verbose
7428
7429         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
7430         empty lines; fix the SAVE_LENGTH stuff to be
7431         START_LENGTH/END_LENGTH so it actually works; couple other
7432         bugfixes
7433
7434         * test/Makefile.am (dist-hook): add dist-hook for .message files
7435
7436         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
7437         can be constant or locked.
7438         (_dbus_string_free): allow freeing a const string as
7439         documented/intended
7440
7441         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
7442
7443         * dbus/dbus-test-main.c (main): take an argument which is the
7444         directory containing test data
7445
7446         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
7447         argument to this and load all the messages in test/data/
7448         checking that they can be loaded or not loaded as appropriate.
7449
7450 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
7451
7452         * bus/dispatch.c: (bus_dispatch_message_handler):
7453         Dispatch messages sent to services.
7454
7455         * bus/driver.c: (bus_driver_send_service_deleted),
7456         (bus_driver_send_service_created), (bus_driver_send_service_lost),
7457         (bus_driver_send_service_acquired):
7458         Add helper functions for sending service related messages.
7459
7460         (bus_driver_send_welcome_message):
7461         Send HELLO_REPLY instead of WELCOME.
7462
7463         (bus_driver_handle_list_services):
7464         Send LIST_SERVICES_REPLY instead of SERVICES.
7465
7466         (bus_driver_handle_own_service),
7467         (bus_driver_handle_service_exists):
7468         New message handlers.
7469
7470         (bus_driver_handle_message):
7471         Invoke new message handlers.
7472
7473         (bus_driver_remove_connection):
7474         Don't remove any services here since that's done automatically
7475         by bus_service_remove_owner now.
7476
7477         * bus/driver.h:
7478         New function signatures.
7479
7480         * bus/services.c: (bus_service_add_owner):
7481         Send ServiceAcquired message if we're the only primary owner.
7482
7483         (bus_service_remove_owner):
7484         Send ServiceAcquired/ServiceLost messages.
7485
7486         (bus_service_set_prohibit_replacement),
7487         (bus_service_get_prohibit_replacement):
7488         Functions for setting prohibit replacement.
7489
7490         (bus_service_has_owner):
7491         New function that checks if a connection is in the owner queue of
7492         a certain service.
7493
7494         * bus/services.h:
7495         Add new function signatures.
7496
7497         * dbus/dbus-list.c: (_dbus_list_test):
7498         Add tests for _dbus_list_remove_last and traversing the list backwards.
7499
7500         * dbus/dbus-list.h:
7501         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
7502         go any further, so return NULL then.
7503
7504         * dbus/dbus-protocol.h:
7505         Add new messages, service flags and service replies.
7506
7507 2003-01-26  Havoc Pennington  <hp@pobox.com>
7508
7509         * dbus/dbus-message-builder.c: implement, completely untested.
7510
7511         * test/data/*: add data to be used in testing.
7512         ".message" files are our simple loadable text format.
7513         ".message-raw" will be binary dumps of messages.
7514
7515         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
7516
7517 2003-01-26  Havoc Pennington  <hp@pobox.com>
7518
7519         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
7520
7521         * dbus/dbus-errors.c (dbus_result_to_string): add
7522         file errors
7523
7524         * dbus/dbus-message-builder.c: new file, will contain code to load
7525         up messages from files. Not implemented yet.
7526
7527 2003-01-26  Havoc Pennington  <hp@pobox.com>
7528
7529         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7530         the sender by setting to NULL
7531
7532 2003-01-26  Havoc Pennington  <hp@pobox.com>
7533
7534         The unit tests pass, but otherwise untested.  If it breaks, the
7535         tests should have been better. ;-)
7536
7537         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7538         the connection.
7539
7540         * dbus/dbus-message.c: redo everything so we maintain
7541         message->header as the only copy of the various fields.
7542         This avoids the possibility of out-of-memory in some cases,
7543         for example dbus_message_lock() can't run out of memory anymore,
7544         and avoids extra copying. Figured I may as well go ahead and do
7545         this since it was busted for dbus_message_lock to not return
7546         failure on OOM, and dbus_message_write_header was totally
7547         unchecked for OOM. Also fixed some random other bugs.
7548
7549         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7550         that strings are nul-terminated. Also, end_pos can be equal
7551         to string length just not greater than, I think.
7552         (_dbus_marshal_set_int32): new function
7553         (_dbus_marshal_set_uint32): new function
7554         (_dbus_marshal_set_string): new function
7555
7556         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7557         a warning, init timeout_list to NULL
7558         (dbus_connection_send_message): don't use uninitialized variable
7559         "serial"
7560
7561         * dbus/dbus-string.c (_dbus_string_replace_len): new function
7562
7563 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
7564
7565         * bus/driver.c: (bus_driver_handle_hello),
7566         (bus_driver_send_welcome_message):
7567         Plug leaks
7568
7569 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
7570
7571         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7572         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7573         (dbus_connection_unref):
7574         * dbus/dbus-marshal.c: (_dbus_marshal_test):
7575         * dbus/dbus-message.c: (dbus_message_unref),
7576         Plug memory leaks.
7577
7578         (dbus_message_get_fields):
7579         Remove debugging printout.
7580
7581         (_dbus_message_loader_return_buffer):
7582         Don't store the header string.
7583
7584         (_dbus_message_test):
7585         Plug leaks.
7586
7587 2003-01-26  Richard Hult  <rhult@codefactory.se>
7588
7589         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7590         the file descriptor list, since it can change under us.
7591
7592 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7593
7594         * glib/dbus-gmain.c: (dbus_connection_prepare),
7595         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7596         (remove_watch), (dbus_connection_hookup_with_g_main):
7597         Rewrite the glib handling to use its own GSource instead of a
7598         GIOChannel so we can catch messages put in the queue while waiting
7599         for a reply.
7600
7601 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7602
7603         * bus/Makefile.am:
7604         * bus/connection.c: (connection_disconnect_handler),
7605         (connection_watch_callback), (bus_connection_setup):
7606         * bus/dispatch.c: (send_one_message),
7607         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7608         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7609         * bus/dispatch.h:
7610         * bus/driver.c: (bus_driver_send_service_deleted),
7611         (bus_driver_send_service_created), (bus_driver_handle_hello),
7612         (bus_driver_send_welcome_message),
7613         (bus_driver_handle_list_services), (bus_driver_remove_connection),
7614         (bus_driver_handle_message):
7615         * bus/driver.h:
7616         Refactor code, put the message dispatching in its own file. Use
7617         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7618         is disconnected.
7619
7620 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7621
7622         * dbus/dbus-internals.h:
7623         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7624
7625         * dbus/dbus-message.c: (dbus_message_get_sender):
7626         * dbus/dbus-message.h:
7627         Implement dbus_message_get_sender.
7628
7629         * dbus/dbus-protocol.h:
7630         Add message and service defines.
7631
7632 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7633
7634         * dbus/dbus-connection.c: (dbus_connection_send_message):
7635         * dbus/dbus-message-internal.h:
7636         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7637         (dbus_message_write_header):
7638         Remove _dbus_messag_unlock and don't set the client serial on a
7639         message if one already exists.
7640
7641 2003-01-24  Havoc Pennington  <hp@pobox.com>
7642
7643         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7644         list_pool
7645
7646         * bus/driver.c (bus_driver_handle_list_services): fix a leak
7647         on OOM
7648
7649 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7650
7651         * dbus/dbus-list.c: (alloc_link), (free_link):
7652         Use a memory pool for the links.
7653
7654 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7655
7656         * bus/connection.c: (bus_connection_foreach):
7657         * bus/connection.h:
7658         Add new bus_connection_foreach function.
7659
7660         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7661         Add function that broadcasts a message to all clients.
7662
7663         (bus_driver_send_service_created), (bus_driver_handle_hello),
7664         (bus_driver_send_welcome_message),
7665         (bus_driver_handle_list_services), (bus_driver_message_handler):
7666         Implement functions that take care of listing services, and notifying
7667         clients when new services are created.
7668
7669         * bus/services.c: (bus_services_list):
7670         * bus/services.h:
7671         Add new function that returns an array of strings with the currently
7672         registered services.
7673
7674         * glib/dbus-glib.h:
7675         * glib/dbus-gmain.c:
7676         Update copyright year.
7677
7678 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
7679
7680         * dbus/dbus-connection.c: (dbus_connection_send_message):
7681         Unlock the message in case it was sent earlier.
7682
7683         (dbus_connection_send_message_with_reply_and_block):
7684         Remove the reply message from the list.
7685
7686         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7687         Set array_len and new_pos correctly.
7688
7689         (_dbus_marshal_test):
7690         Remove debug output.
7691
7692         * dbus/dbus-message-internal.h:
7693         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7694         New function that returns the reply serial.
7695
7696         (_dbus_message_unlock):
7697         New function that unlocks a message and resets its header.
7698
7699         (dbus_message_append_string_array),
7700         (dbus_message_get_fields_valist),
7701         (dbus_message_iter_get_field_type),
7702         (dbus_message_iter_get_string_array),
7703         (dbus_message_get_fields),
7704         (dbus_message_append_fields_valist):
7705         Handle string arrays.
7706
7707         (dbus_message_set_sender):
7708         Make this function public since the bus daemon needs it.
7709
7710         (decode_header_data):
7711         Set the reply serial to -1 initially.
7712
7713         * dbus/dbus-message.h:
7714         Add dbus_message_set_sender.
7715
7716 2003-01-24  Havoc Pennington  <hp@pobox.com>
7717
7718         * doc/dbus-specification.sgml: add some stuff
7719
7720 2003-01-22  Havoc Pennington  <hp@pobox.com>
7721
7722         * doc/dbus-specification.sgml: Start to document the protocol.
7723
7724 2003-01-22  Havoc Pennington  <hp@pobox.com>
7725
7726         * dbus/dbus-connection.c
7727         (dbus_connection_send_message_with_reply_and_block): add some @todo
7728
7729         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7730
7731 2003-01-21  Havoc Pennington  <hp@pobox.com>
7732
7733         (patch untested because can't compile)
7734
7735         * bus/driver.c (create_unique_client_name): make this function
7736         never recycle client names. Also, caller should initialize
7737         the DBusString.
7738
7739         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7740
7741 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7742
7743         * dbus/dbus-marshal.c: (_dbus_marshal_double),
7744         (_dbus_marshal_int32), (_dbus_marshal_uint32),
7745         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7746         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7747         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7748         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7749         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7750         * dbus/dbus-marshal.h:
7751         * dbus/dbus-protocol.h:
7752         Add support for marshalling and demarshalling integer, double
7753         and string arrays.
7754
7755 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7756
7757         * bus/Makefile.am:
7758         Add driver.[ch]
7759
7760         * bus/connection.c: (connection_disconnect_handler):
7761         Remove the connection from the bus driver's list.
7762
7763         (connection_watch_callback): Dispatch messages.
7764
7765         (free_connection_data): Free connection name.
7766
7767         (bus_connection_setup): Add connection to the bus driver's list.
7768         (bus_connection_remove_owned_service):
7769         (bus_connection_set_name), (bus_connection_get_name):
7770         Add functions for setting and getting the connection's name.
7771
7772         * bus/connection.h:
7773         Add function headers.
7774
7775         * bus/driver.c: (create_unique_client_name),
7776         (bus_driver_handle_hello_message),
7777         (bus_driver_send_welcome_message), (bus_driver_message_handler),
7778         (bus_driver_add_connection), (bus_driver_remove_connection):
7779         * bus/driver.h:
7780         * bus/main.c:
7781         * bus/services.c: (bus_service_free):
7782         * bus/services.h:
7783         New file that handles communication and registreation with the bus
7784         itself.
7785
7786 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
7787
7788         * dbus/dbus-connection.c: (dbus_connection_send_message):
7789         Add a new client_serial parameter.
7790
7791         (dbus_connection_send_message_with_reply):
7792         Remove a @todo since we've implemented the blocking function.
7793
7794         (dbus_connection_send_message_with_reply_and_block):
7795         New function that sends a message and waits for a reply and
7796         then returns the reply.
7797
7798         * dbus/dbus-connection.h:
7799         Add new functions.
7800
7801         * dbus/dbus-errors.c: (dbus_result_to_string):
7802         * dbus/dbus-errors.h:
7803         Add new DBUS_RESULT.
7804
7805         * dbus/dbus-message-internal.h:
7806         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7807         (_dbus_message_set_sender), (dbus_message_write_header),
7808         (dbus_message_new_reply), (decode_header_data),
7809         (_dbus_message_loader_return_buffer), (_dbus_message_test):
7810         * dbus/dbus-message.h:
7811         Add new functions that set the reply serial and sender.
7812         Also marshal and demarshal them correctly and add test.
7813
7814         * dbus/dbus-protocol.h:
7815         Add new DBUS_MESSAGE_TYPE_SENDER.
7816
7817         * glib/dbus-glib.h:
7818         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7819         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7820         (dbus_connection_hookup_with_g_main):
7821         * glib/test-dbus-glib.c: (main):
7822         Rewrite to use GIOChannel and remove the GSource crack.
7823
7824         * test/echo-client.c: (main):
7825         * test/watch.c: (check_messages):
7826         Update for changed APIs
7827
7828 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
7829
7830         * dbus/Makefile.am: Add dbus-timeout.[cħ]
7831
7832         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7833         Create a DBusTimeoutList.
7834         (dbus_connection_set_timeout_functions): Add new function to
7835         set timeout callbacks
7836
7837         * dbus/dbus-connection.h: Add public DBusTimeout API.
7838
7839         * dbus/dbus-message.c: (dbus_message_get_service):
7840         * dbus/dbus-message.h:  New function.
7841
7842         * dbus/dbus-server.c: Fix small doc typo.
7843
7844         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7845
7846 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
7847
7848         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7849         of the string, just as long as specified.
7850
7851 2003-01-19  Havoc Pennington  <hp@pobox.com>
7852
7853         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7854         new function
7855
7856         * dbus/dbus-server.c (dbus_server_set_max_connections)
7857         (dbus_server_get_max_connections, dbus_server_get_n_connections):
7858         keep track of current number of connections, and add API for
7859         setting a max (but haven't implemented enforcing the max yet)
7860
7861 2003-01-18  Havoc Pennington  <hp@pobox.com>
7862
7863         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7864         reading/writing if read_watch != NULL or write_watch != NULL.
7865
7866         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7867         the message loader code to actually load message->header and
7868         message->body into the newly-created message.
7869
7870         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7871         in OOM case
7872
7873         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7874         (dbus_connection_get_max_message_size)
7875         (dbus_connection_set_max_live_messages_size)
7876         (dbus_connection_get_max_live_messages_size): implement some
7877         resource limitation functions
7878
7879         * dbus/dbus-resources.c: new file implementing some of the
7880         resource limits stuff
7881
7882         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7883         missing docs, add @todo to handle OOM etc.
7884
7885         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7886         docs
7887
7888 2003-01-18  Havoc Pennington  <hp@pobox.com>
7889
7890         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7891         connection if it hasn't been already.
7892
7893         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7894         replace with DisconnectFunction.
7895
7896 2003-01-18  Havoc Pennington  <hp@pobox.com>
7897
7898         Building --disable-verbose-mode --disable-asserts --disable-tests
7899         cuts the library from 112K to 45K or so
7900
7901         * configure.in: check for varargs macro support,
7902         add --enable-verbose-mode, --enable-asserts.
7903
7904         * dbus/dbus-internals.h (_dbus_assert): support
7905         DBUS_DISABLE_ASSERT
7906         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7907
7908 2003-01-18  Havoc Pennington  <hp@pobox.com>
7909
7910         * dbus/dbus-test.c: include config.h so that tests actually run
7911
7912         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7913         so the failure mode when that assumption fails will be plenty
7914         obvious.
7915
7916 2003-01-18  Havoc Pennington  <hp@pobox.com>
7917
7918         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7919
7920         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7921         the distribution
7922
7923         * test/Makefile.am: don't use special variable "TESTS" for echo-*
7924         since we don't want to use those in make check
7925
7926 2003-01-15  Havoc Pennington  <hp@redhat.com>
7927
7928         Release 0.2
7929
7930         * NEWS: update
7931
7932 2003-01-15  Havoc Pennington  <hp@redhat.com>
7933
7934         * test/Makefile.am: fix so that test source code ends up in the
7935         distribution on make distcheck
7936
7937 2003-01-15  Havoc Pennington  <hp@redhat.com>
7938
7939         Release 0.1.
7940
7941         * NEWS: update
7942
7943 2003-01-15  Havoc Pennington  <hp@redhat.com>
7944
7945         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7946         fix build when --disable-tests
7947
7948         * Makefile.am (EXTRA_DIST): put HACKING in here
7949
7950         * HACKING: document procedure for making a tarball release.
7951
7952 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
7953
7954         * bus/connection.c: (connection_error_handler),
7955         (bus_connection_setup):
7956         * bus/main.c: (main):
7957         Make sure that the DBusConnectionData struct is NULLed
7958         out to prevent a segfault.
7959
7960         * dbus/dbus-errors.c: (dbus_result_to_string):
7961         * dbus/dbus-errors.h:
7962         * dbus/dbus-message.c: (dbus_message_get_fields),
7963         (dbus_message_get_fields_valist), (_dbus_message_test):
7964         * dbus/dbus-message.h:
7965         Make dbus_message_get_fields return a result code so we can
7966         track invalid fields as well as oom.
7967
7968 2003-01-11  Havoc Pennington  <hp@pobox.com>
7969
7970         * configure.in: change --enable-test/--enable-ansi action-if-given
7971         to enable_foo=$enableval instead of enable_foo=yes
7972
7973 2003-01-08  Havoc Pennington  <hp@pobox.com>
7974
7975         * dbus/dbus-string.c (_dbus_string_align_length): new function
7976
7977         * dbus/dbus-test-main.c: move main() for test app here
7978         * dbus/dbus-test.c
7979         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7980         symbol to run tests, because dbus-test isn't in the main
7981         library
7982
7983         Code review nitpicks.
7984
7985         * dbus/dbus-message.c (dbus_message_write_header): add newlines
7986         for people with narrow emacs ;-). Assert client_serial was filled
7987         in. Assert message->name != NULL.
7988         (dbus_message_append_fields): have "first_field_type" arg separate
7989         from va list, needed for C++ binding that also uses varargs IIRC
7990         and helps with type safety
7991         (dbus_message_new): add @todo about using DBusString to store
7992         service/name internally
7993         (dbus_message_new): don't leak ->service and ->name on OOM later
7994         in the function
7995         (dbus_message_unref): free the service name
7996         (dbus_message_get_fields): same change to varargs
7997         i.e. first_field_type
7998         (_dbus_message_loader_return_buffer): assert that the message data
7999         is aligned (if not it's a bug in our code). Put in verbose griping
8000         about why we set corrupted = TRUE.
8001         (decode_header_data): add FIXME that char* is evil.  Was going to
8002         add FIXME about evil locale-specific string.h strncmp, but just
8003         switched to wacky string-as-uint32 optimization. Move check for
8004         "no room for field name" above get_const_data_len() to avoid
8005         assertion failure in get_const_data_len if we have trailing 2
8006         bytes or the like. Check for service and name fields being
8007         provided twice. Don't leak service/name on error. Require field
8008         names to be aligned to 4 bytes.
8009
8010         * dbus/dbus-marshal.c: move byte swap stuff to header
8011         (_dbus_pack_int32): uscore-prefix
8012         (_dbus_unpack_int32): uscore-prefix
8013         (_dbus_unpack_uint32): export
8014         (_dbus_demarshal_string): add @todo complaining about use of
8015         memcpy()
8016         (_dbus_marshal_get_field_end_pos): add @todo about bad error
8017         handling allowing corrupt data to go unchecked
8018
8019 2003-01-08  Havoc Pennington  <hp@redhat.com>
8020
8021         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
8022         to the select() as needed for authentication. (should be using
8023         _dbus_poll() not select, but for another day)
8024
8025         * dbus/dbus.h: include dbus/dbus-protocol.h
8026
8027 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
8028
8029         * dbus/Makefile.am (dbusinclude_HEADERS): Install
8030         dbus-connection.h
8031
8032 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
8033
8034         * dbus/dbus-internals.c: (_dbus_type_to_string):
8035         New function that returns a string describing a type.
8036
8037         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
8038         * dbus/dbus-marshal.h:
8039         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
8040         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
8041         (dbus_message_iter_get_byte_array):
8042         * dbus/dbus-message.h:
8043         Add new convenience functions for appending and getting message fields.
8044         Also add demarshalling routines for byte arrays.
8045
8046 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
8047
8048         * dbus/dbus-connection-internal.h:
8049         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
8050         (_dbus_connection_get_next_client_serial),
8051         (dbus_connection_send_message):
8052         * dbus/dbus-internals.h:
8053         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
8054         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
8055         (_dbus_marshal_uint32), (_dbus_demarshal_double),
8056         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
8057         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
8058         (_dbus_verbose_bytes), (_dbus_marshal_test):
8059         * dbus/dbus-marshal.h:
8060         * dbus/dbus-message-internal.h:
8061         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
8062         (dbus_message_write_header), (_dbus_message_lock),
8063         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
8064         (dbus_message_get_name), (dbus_message_append_int32),
8065         (dbus_message_append_uint32), (dbus_message_append_double),
8066         (dbus_message_append_string), (dbus_message_append_byte_array),
8067         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
8068         (dbus_message_iter_unref), (dbus_message_iter_has_next),
8069         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
8070         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
8071         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
8072         (decode_header_data), (_dbus_message_loader_return_buffer),
8073         (message_iter_test), (_dbus_message_test):
8074         * dbus/dbus-message.h:
8075         * dbus/dbus-protocol.h:
8076         * dbus/dbus-test.c: (main):
8077         * dbus/dbus-test.h:
8078         * glib/test-dbus-glib.c: (message_handler), (main):
8079         * test/echo-client.c: (main):
8080         * test/watch.c: (check_messages):
8081         Make messages sendable and receivable for real.
8082
8083 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
8084
8085         * dbus/dbus-marshal.c: (_dbus_marshal_double),
8086         (_dbus_marshal_string), (_dbus_marshal_byte_array):
8087         * dbus/dbus-message.c: (dbus_message_append_int32),
8088         (dbus_message_append_uint32), (dbus_message_append_double),
8089         (dbus_message_append_string), (dbus_message_append_byte_array):
8090         Handle OOM restoration.
8091
8092 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
8093
8094         * dbus/dbus-marshal.c: (_dbus_marshal_string),
8095         (_dbus_demarshal_string), (_dbus_marshal_test):
8096         * dbus/dbus-marshal.h:
8097         * dbus/dbus-message.c: (dbus_message_get_name),
8098         Document these functions.
8099
8100         (dbus_message_append_int32), (dbus_message_append_uint32),
8101         (dbus_message_append_double), (dbus_message_append_string),
8102         (dbus_message_append_byte_array):
8103         * dbus/dbus-message.h:
8104         Add functions for adding message fields of different types.
8105
8106         * dbus/dbus-protocol.h:
8107         Add the different types.
8108
8109 2003-01-05  Havoc Pennington  <hp@pobox.com>
8110
8111         * bus/connection.c: implement routines for handling connections,
8112         first thing is keeping a list of owned services on each connection
8113         and setting up watches etc.
8114
8115         * bus/services.c: implement a mapping from service names to lists
8116         of connections
8117
8118         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
8119
8120         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
8121         to use static mutexes for global data
8122
8123         * dbus/dbus-connection.c (dbus_connection_set_data): add new
8124         collection of functions to set/get application-specific data
8125         on the DBusConnection.
8126
8127 2003-01-04  Havoc Pennington  <hp@pobox.com>
8128
8129         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
8130         (_dbus_poll): new function
8131
8132         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
8133         copied from GLib
8134
8135         * bus/loop.c: initial code for the daemon main loop
8136
8137 2003-01-04  Havoc Pennington  <hp@pobox.com>
8138
8139         * test/watch.c (error_handler): make it safe if the error handler
8140         is called multiple times (if we s/error handler/disconnect
8141         handler/ we should just guarantee it's called only once)
8142
8143         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
8144         error handler on disconnect (it's quite possible we should
8145         just change the error handler to a "disconnect handler," I'm
8146         not sure we have any other meaningful errors)
8147
8148         * configure.in: check for getpwnam_r
8149
8150         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8151         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
8152         mechanism as in SASL spec, using socket credentials
8153
8154         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
8155         (_dbus_send_credentials_unix_socket): new function
8156
8157         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
8158         dbus_accept()
8159         (_dbus_write): only check errno if <0 returned
8160         (_dbus_write_two): ditto
8161
8162 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
8163
8164         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
8165         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
8166         (_dbus_marshal_test):
8167         * dbus/dbus-marshal.h:
8168         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
8169         to _dbus_marshal_utf8_string. Also fix some tests.
8170
8171 2002-12-28  Harri Porten  <porten@kde.org>
8172
8173         * configure.in: added check for C++ compiler and a very cheesy
8174         check for the Qt integration
8175
8176         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
8177
8178         * qt/Makefile.am: added
8179
8180         * qt/.cvsignore: added
8181
8182         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
8183         latter, added #ifdef QT_THREAD_SUPPORT guard.
8184
8185         * dbus/Makefile.am: added missing headers for make dist
8186
8187 2002-12-28  Kristian Rietveld  <kris@gtk.org>
8188
8189         * dbus/Makefile.am: fixup export-symbols-regex.
8190
8191 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
8192
8193         * acinclude.m4: Add this file and put the
8194         PKG_CHECK_MODULE macro in it.
8195
8196 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
8197
8198         * dbus/dbus-marshal.c: (_dbus_marshal_string),
8199         (_dbus_demarshal_double), (_dbus_demarshal_int32),
8200         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8201         (_dbus_marshal_test):
8202         Make the demarshalling routines align the pos argument.
8203         Add string marshalling tests and fix the obvious bugs
8204         discovered.
8205
8206 2002-12-26  Havoc Pennington  <hp@pobox.com>
8207
8208         * dbus/dbus-auth.c: fixes fixes fixes
8209
8210         * dbus/dbus-transport-unix.c: wire up support for
8211         encoding/decoding data on the wire
8212
8213         * dbus/dbus-auth.c (_dbus_auth_encode_data)
8214         (_dbus_auth_decode_data): append to target string
8215         instead of nuking it.
8216
8217 2002-12-26  Havoc Pennington  <hp@pobox.com>
8218
8219         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
8220         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
8221         doh
8222
8223         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
8224         avoid swap_bytes() overhead (ignoring possible assembly stuff for
8225         now). Main point is because I wanted unpack_uint32 to implement
8226         _dbus_verbose_bytes
8227         (_dbus_verbose_bytes): new function
8228
8229         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
8230
8231         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
8232         mechanism to handle a corrupt message stream
8233         (_dbus_message_loader_new): fix preallocation to only prealloc,
8234         not prelengthen
8235
8236         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
8237         (_dbus_string_test): enhance tests for copy/move and fix the
8238         functions
8239
8240         * dbus/dbus-transport-unix.c: Hold references in more places to
8241         avoid reentrancy problems
8242
8243         * dbus/dbus-transport.c: ditto
8244
8245         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
8246         leak reference count in no-message case
8247
8248         * test/watch.c (do_mainloop): handle adding/removing watches
8249         during iteration over the watches. Also, ref the connection/server
8250         stored on a watch, so we don't try to mangle a destroyed one.
8251
8252         * dbus/dbus-transport-unix.c (do_authentication): perform
8253         authentication
8254
8255         * dbus/dbus-auth.c (get_state): add a state
8256         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
8257         (_dbus_auth_get_unused_bytes): append the unused bytes
8258         to the passed in string, rather than prepend
8259
8260         * dbus/dbus-transport.c (_dbus_transport_init_base): create
8261         the auth conversation DBusAuth
8262
8263         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
8264         (_dbus_transport_new_for_domain_socket): when creating a
8265         transport, pass in whether it's a client-side or server-side
8266         transport so we know which DBusAuth to create
8267
8268 2002-12-03  Havoc Pennington  <hp@pobox.com>
8269
8270         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
8271         _after_ finalizing the derived members
8272         (unix_connection_set): unref watch if we fail to add it
8273
8274         * dbus/dbus-connection.c (dbus_connection_unref): delete the
8275         transport first, so that the connection owned by the
8276         transport will be valid as the transport finalizes.
8277
8278         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
8279         if necessary, and remove watches from the connection.
8280
8281         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
8282
8283 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
8284
8285         * dbus/dbus-marshal.c: (_dbus_marshal_string),
8286         (_dbus_demarshal_double), (_dbus_demarshal_int32),
8287         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8288         (_dbus_marshal_test):
8289         * dbus/dbus-marshal.h:
8290         Add string marshal functions and have the demarshal functions
8291         return the new position.
8292
8293 2002-12-25  Havoc Pennington  <hp@pobox.com>
8294
8295         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
8296         it is a simple protocol that just maps directly to SASL.
8297
8298         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
8299         initial implementation, not actually used yet.
8300
8301         * dbus/dbus-string.c (_dbus_string_find): new function
8302         (_dbus_string_equal): new function
8303         (_dbus_string_base64_encode): new function
8304         (_dbus_string_base64_decode): new function
8305
8306 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
8307
8308         * dbus/Makefile.am:
8309         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
8310         (_dbus_marshal_int32), (_dbus_marshal_uint32),
8311         (_dbus_demarshal_double), (_dbus_demarshal_int32),
8312         (_dbus_demarshal_uint32), (_dbus_marshal_test):
8313         * dbus/dbus-marshal.h:
8314         * dbus/dbus-protocol.h:
8315         * dbus/dbus-test.c: (main):
8316         * dbus/dbus-test.h:
8317         Add un-optimized marshalling/demarshalling routines.
8318
8319 2002-12-25  Harri Porten  <porten@kde.org>
8320
8321         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
8322
8323 2002-12-24  Zack Rusin  <zack@kde.org>
8324
8325         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
8326         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
8327         main loop stuff
8328
8329 2002-12-24  Havoc Pennington  <hp@pobox.com>
8330
8331         * glib/dbus-gthread.c: fix include
8332
8333         * glib/dbus-glib.h: rename DBusMessageHandler for now.
8334         I think glib API needs to change, though, as you don't
8335         want to use DBusMessageFunction, you want to use the
8336         DBusMessageHandler object. Probably
8337         dbus_connection_open_with_g_main_loop()
8338         and dbus_connection_setup_g_main_loop() or something like that
8339         (but think of better names...) that just create a connection
8340         that has watch/timeout functions etc. already set up.
8341
8342         * dbus/dbus-connection.c
8343         (dbus_connection_send_message_with_reply): new function just to
8344         show how the message handler helps us deal with replies.
8345
8346         * dbus/dbus-list.c (_dbus_list_remove_last): new function
8347
8348         * dbus/dbus-string.c (_dbus_string_test): free a string that
8349         wasn't
8350
8351         * dbus/dbus-hash.c: use memory pools for the hash entries
8352         (rebuild_table): be more paranoid about overflow, and
8353         shrink table when we can
8354         (_dbus_hash_test): reduce number of sprintfs and write
8355         valid C89. Add tests for case where we grow and then
8356         shrink the hash table.
8357
8358         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
8359
8360         * dbus/dbus-connection.c (dbus_connection_register_handler)
8361         (dbus_connection_unregister_handler): new functions
8362
8363         * dbus/dbus-message.c (dbus_message_get_name): new
8364
8365         * dbus/dbus-list.c: fix docs typo
8366
8367         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
8368         an object representing a handler for messages.
8369
8370 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
8371
8372         * glib/dbus-glib.h:
8373         * glib/dbus-gthread.c: (dbus_gthread_init):
8374         Don't use the gdbus prefix for public functions.
8375
8376 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
8377
8378         * Makefile.am:
8379         * configure.in:
8380         Add GLib checks and fixup .pc files
8381
8382         * glib/Makefile.am:
8383         * glib/dbus-glib.h:
8384         * glib/dbus-gmain.c: (gdbus_connection_prepare),
8385         (gdbus_connection_check), (gdbus_connection_dispatch),
8386         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
8387         (dbus_connection_gsource_new):
8388         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
8389         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
8390         * glib/test-dbus-glib.c: (message_handler), (main):
8391         Add GLib support.
8392
8393 2002-12-15  Harri Porten  <porten@kde.org>
8394
8395         * autogen.sh: check for libtoolize before attempting to use it
8396
8397         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
8398         struct.
8399
8400         * .cvsignore: ignore more stamp files
8401
8402         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
8403
8404         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
8405         without make install.
8406
8407 2002-12-15  Havoc Pennington  <hp@pobox.com>
8408
8409         * dbus/dbus-threads.c: add thread stubs that a higher library
8410         layer can fill in. e.g. the GLib wrapper might fill them in with
8411         GThread stuff. We still need to use this thread API to
8412         thread-safe-ize the library.
8413
8414 2002-12-12  Havoc Pennington  <hp@pobox.com>
8415
8416         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
8417         below new interfaces and include fewer system headers.
8418
8419         * dbus/dbus-sysdeps.c (_dbus_read): new function
8420         (_dbus_write): new function
8421         (_dbus_write_two): new function
8422         (_dbus_connect_unix_socket): new function
8423         (_dbus_listen_unix_socket): new function
8424
8425         * dbus/dbus-message-internal.h: change interfaces to use
8426         DBusString
8427
8428 2002-12-11  Havoc Pennington  <hp@pobox.com>
8429
8430         * dbus/dbus-types.h: add dbus_unichar
8431
8432         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
8433
8434         * dbus/dbus-connection.c (dbus_connection_send_message): return
8435         TRUE on success
8436
8437         * dbus/dbus-transport.c: include dbus-watch.h
8438
8439         * dbus/dbus-connection.c: include dbus-message-internal.h
8440
8441         * HACKING: add file with coding guidelines stuff.
8442
8443         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
8444         handling here, for security purposes (as in vsftpd). Not actually
8445         using this class yet.
8446
8447         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
8448         system/libc usage here, as in vsftpd, for ease of auditing (and
8449         should also simplify portability). Haven't actually moved all the
8450         system/libc usage into here yet.
8451
8452 2002-11-25  Havoc Pennington  <hp@pobox.com>
8453
8454         * dbus/dbus-internals.c (_dbus_verbose): fix to not
8455         always print the first verbose message.
8456
8457 2002-11-24  Havoc Pennington  <hp@pobox.com>
8458
8459         * test/echo-client.c, test/echo-server.c: cheesy test
8460         clients.
8461
8462         * configure.in (AC_CHECK_FUNCS): check for writev
8463
8464         * dbus/dbus-message.c (_dbus_message_get_network_data): new
8465         function
8466
8467         * dbus/dbus-list.c (_dbus_list_foreach): new function
8468
8469         * dbus/dbus-internals.c (_dbus_verbose): new function
8470
8471         * dbus/dbus-server.c, dbus/dbus-server.h: public object
8472         representing a server that listens for connections.
8473
8474         * dbus/.cvsignore: create
8475
8476         * dbus/dbus-errors.h, dbus/dbus-errors.c:
8477         public API for reporting errors
8478
8479         * dbus/dbus-connection.h, dbus/dbus-connection.c:
8480         public object representing a connection that
8481         sends/receives messages. (Same object used for
8482         both client and server.)
8483
8484         * dbus/dbus-transport.h, dbus/dbus-transport.c:
8485         Basic abstraction for different kinds of stream
8486         that we might read/write messages from.
8487
8488 2002-11-23  Havoc Pennington  <hp@pobox.com>
8489
8490         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
8491         _DBUS_INT_MAX
8492
8493         * dbus/dbus-test.c (main): add list test, and include
8494         dbus-test.h as intended
8495
8496         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
8497         (_dbus_hash_table_remove_int): return value indicates
8498         whether the entry existed to remove
8499
8500         * dbus/dbus-list.c: add linked list utility class,
8501         with docs and tests
8502
8503         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
8504         array sometimes.
8505
8506 2002-11-23  Havoc Pennington  <hp@pobox.com>
8507
8508         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
8509         DBUS_END_DECLS to nothing, that should fix this once and for all
8510
8511         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
8512
8513         * dbus/dbus-message.c, dbus/dbus-hash.c:
8514         add some missing @brief
8515
8516 2002-11-23  Havoc Pennington  <hp@pobox.com>
8517
8518         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
8519         to avoid confusing Doxygen
8520
8521         * dbus/dbus-hash.c: @} not }@
8522
8523         * dbus/dbus-message.c (struct DBusMessage): split out
8524         internals docs
8525
8526 2002-11-23  Havoc Pennington  <hp@pobox.com>
8527
8528         * configure.in: pile on more warning flags if using gcc
8529
8530         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8531         to document static functions
8532
8533         * configure.in: add summary to end of configure so it
8534         looks nice and attractive
8535
8536         * dbus/dbus-hash.c: finish implementation and write unit
8537         tests and docs
8538
8539         * configure.in: add --enable-tests to enable unit tests
8540
8541         * dbus/dbus-test.c: test program to run unit tests
8542         for all files in dbus/*, initially runs a test for
8543         dbus-hash.c
8544
8545         * dbus/dbus-internals.h: file to hold some internal utility stuff
8546
8547 2002-11-22  Havoc Pennington  <hp@redhat.com>
8548
8549         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8550         "ported" away from Tcl
8551
8552         * dbus/dbus-types.h: header for types such as dbus_bool_t
8553
8554 2002-11-22  Havoc Pennington  <hp@redhat.com>
8555
8556         * dbus/dbus.h: fixups for doc warnings
8557
8558         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8559         macros
8560         (QUIET): make it quiet so we can see warnings
8561
8562         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8563
8564 2002-11-22  Havoc Pennington  <hp@redhat.com>
8565
8566         * Makefile.am: include "Doxyfile" target in all-local
8567
8568         * configure.in: generate the Doxyfile
8569
8570         * Doxyfile.in: move Doxyfile here, so we can use
8571         configure to generate a Doxyfile with the right
8572         version number etc.
8573
8574 2002-11-22  Havoc Pennington  <hp@redhat.com>
8575
8576         * dbus/dbus-message.c: move inline docs into .c file
8577
8578         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8579         so all docs are under doc/
8580         (MAN_EXTENSION): generate man pages. Use extension
8581         ".3dbus" which matches ".3qt" on my system,
8582         I guess this is OK, I don't know really.
8583         (FILE_PATTERNS): look for .c files not .h, makes sense
8584         for plain C I think
8585
8586 2002-11-22  Havoc Pennington  <hp@pobox.com>
8587
8588         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8589         because any app can be a server, and any app can be a client,
8590         the bus is a special kind of server.
8591
8592 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
8593
8594         * Doxyfile : adding. Still needs Makefile rules to be generated
8595         automatically (just run "doxygen" in the toplevel dir for now to
8596         generate docs)
8597
8598         * dbus/dbus-message.h : Adding sample docs (javadoc since
8599         resembles gtk-doc a little more)
8600
8601         * dbus/dbus.h : Adding sample docs
8602
8603 2002-11-21  Havoc Pennington  <hp@redhat.com>
8604
8605         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8606         so we can allow ourselves to include files directly,
8607         instead of having to use dbus.h
8608
8609         * dbus/dbus.h: fill in
8610
8611         * dbus/dbus-message.h: sketch out a sample header file.
8612         Include griping if you include it directly instead of
8613         via dbus.h
8614
8615         * dbus/dbus-macros.h: new file with macros for extern "C",
8616         TRUE/FALSE, NULL, etc.
8617
8618         * doc/file-boilerplate.c: put include guards in here
8619
8620 2002-11-21  Havoc Pennington  <hp@redhat.com>
8621
8622         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8623
8624         * COPYING: include the GPL as well, and license code
8625         under both AFL and GPL.
8626
8627 2002-11-21  Havoc Pennington  <hp@redhat.com>
8628
8629         * acconfig.h: get rid of this
8630
8631         * autogen.sh (run_configure): add --no-configure option
8632
8633         * configure.in: remove AC_ARG_PROGRAM to make
8634         autoconf complain less. add AC_PREREQ.
8635         add AC_DEFINE third arg.
8636
8637 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
8638
8639         * doc/Makefile.am:
8640         Fix references so we can distcheck.
8641
8642 2002-11-21  Havoc Pennington  <hp@redhat.com>
8643
8644         * Initial module creation
8645