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