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