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