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