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