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