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