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