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