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