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