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