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