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