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