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