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