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