1 2004-11-26 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-message.c: reimplement message cache as an array which
4 makes the cache about twice as fast and saves maybe 1.5% overall
6 2004-11-26 Havoc Pennington <hp@redhat.com>
8 * dbus/dbus-threads.c (init_global_locks): forgot to put the
9 message cache lock here
11 2004-11-26 Havoc Pennington <hp@redhat.com>
13 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
14 the "char byte_order" next to each other to save 4 bytes
15 (dbus_message_new_empty_header): reduce preallocation, since the
16 message cache should achieve a similar effect
17 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
18 message cache that keeps a few DBusMessage around in a pool,
19 another 8% speedup or so.
21 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
23 2004-11-25 Havoc Pennington <hp@redhat.com>
25 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
26 to write, without reading or blocking, try it before the poll()
27 and skip the poll() if nothing remains to write. This is about a
28 3% speedup in the echo client/server
30 2004-11-25 Havoc Pennington <hp@redhat.com>
32 The primary change here is to always write() once before adding
33 the write watch, which gives us about a 10% performance increase.
35 * dbus/dbus-transport-unix.c: a number of modifications to cope
36 with removing messages_pending
37 (check_write_watch): properly handle
38 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
39 messages_pending stuff
40 (check_read_watch): properly handle WAITING_FOR_MEMORY and
42 (unix_handle_watch): after writing, see if the write watch can be
44 (unix_do_iteration): assert that write_watch/read_watch are
45 non-NULL rather than testing that they aren't, since they
46 aren't allowed to be NULL. check_write_watch() at the end so
47 we add the watch if we did not finish writing (e.g. got EAGAIN)
49 * dbus/dbus-transport-protected.h: remove messages_pending call,
50 since it resulted in too much inefficient watch adding/removing;
51 instead we now require that the transport user does an iteration
52 after queueing outgoing messages, and after trying the first
53 write() we add a write watch if we got EAGAIN or exceeded our
54 max bytes to write per iteration setting
56 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
59 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
60 freed and then accessed, valgrind flagged this bug, fix it
62 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
63 as the last valid field plus 1, where really it is equal to the
64 last valid field. Corrects some message corruption issues.
66 * dbus/dbus-mainloop.c: verbosity changes
68 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
69 instead of aborting in one of the test codepaths
71 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
72 caused not printing the pid ever again if a verbose was missing
73 the newline at the end
74 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
76 * dbus/dbus-connection.c: verbosity changes;
77 (dbus_connection_has_messages_to_send): new function
78 (_dbus_connection_message_sent): no longer call transport->messages_pending
79 (_dbus_connection_send_preallocated_unlocked): do one iteration to
80 try to write() immediately, so we can avoid the write watch. This
81 is the core purpose of this patchset
82 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
83 dump the outgoing message queue, so nobody will get confused
84 trying to send them or thinking stuff is pending to be sent
86 * bus/test.c: verbosity changes
88 * bus/driver.c: verbosity/assertion changes
90 * bus/dispatch.c: a bunch of little tweaks to get it working again
91 because this patchset changes when/where you need to block.
93 2004-11-23 Havoc Pennington <hp@redhat.com>
95 * test/glib/test-profile.c: modify to accept a plain_sockets
96 argument in which case it will bench plain sockets instead of
97 libdbus, for comparison purposes.
99 2004-11-22 Havoc Pennington <hp@redhat.com>
101 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
102 threads for more time, so sysprof can get a grip on it.
104 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
107 2004-11-13 Havoc Pennington <hp@redhat.com>
109 * test/glib/test-profile.c: fix this thing up a bit
111 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
112 preallocation sizes by a fair bit; not sure if this will be an
113 overall performance win or not, but it does reduce reallocs.
115 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
116 the test hack that forced constant realloc if asserts are
117 disabled, so we can profile sanely. Sprinkle in some
118 _DBUS_UNLIKELY() which are probably pointless, but before I
119 noticed the real performance problem I put them in.
120 (_dbus_string_validate_utf8): micro-optimize this thing a little
121 bit, though callgrind says it didn't help; then special-case
122 ascii, which did help a lot; then be sure we detect nul bytes as
123 invalid, which is a bugfix.
124 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
125 superstition; use memset to nul the padding instead of a manual
127 (_dbus_string_get_length): inline this as a
128 macro; it showed up in the profile because it's used for loop
131 2004-11-10 Colin Walters <walters@verbum.org>
133 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
136 2004-11-09 Colin Walters <walters@verbum.org>
138 * dbus/dbus-string.c (_dbus_string_get_length): New
139 function, writes DBusString to C buffer.
141 * dbus/dbus-string.h: Prototype it.
143 * dbus/dbus-message.c (dbus_message_type_to_string): New
144 function, converts message type into C string.
146 * dbus/dbus-message.h: Prototype it.
148 * bus/selinux.c (bus_selinux_check): Take source pid,
149 target pid, and audit data. Pass audit data to
151 (log_audit_callback): New function, appends extra
153 (bus_selinux_allows_acquire_service): Also take
154 service name, add it to audit data.
155 (bus_selinux_allows_send): Also take message
156 type, interface, method member, error name,
157 and destination, and add them to audit data.
158 (log_cb): Initialize func_audit.
160 * bus/selinux.h (bus_selinux_allows_acquire_service)
161 (bus_selinux_allows_send): Update prototypes
163 * bus/services.c (bus_registry_acquire_service): Pass
164 service name to bus_selinux_allows_acquire_service.
166 * bus/bus.c (bus_context_check_security_policy): Pass
167 additional audit data. Move assignment of dest
170 2004-11-07 Colin Walters <walters@verbum.org>
172 * dbus/dbus-transport-unix.c (do_authentication): Always
173 initialize auth_completed.
175 2004-11-07 Colin Walters <walters@verbum.org>
177 * bus/bus.c (load_config): Break into three
178 separate functions: process_config_first_time_only,
179 process_config_every_time, and process_config_postinit.
180 (process_config_every_time): Move call of
181 bus_registry_set_service_context_table into
182 process_config_postinit.
183 (process_config_postinit): New function, does
184 any processing that needs to happen late
185 in initialization (and also on reload).
186 (bus_context_new): Instead of calling load_config,
187 open config parser here and call process_config_first_time_only
188 and process_config_every_time directly. Later, after
189 we have forked but before changing UID,
190 invoke bus_selinux_full_init, and then call
191 process_config_postinit.
192 (bus_context_reload_config): As in bus_context_new,
193 load parse file inside here, and call process_config_every_time
194 and process_config_postinit.
196 * bus/services.h, bus/services.c
197 (bus_registry_set_service_context_table): Rename
198 from bus_registry_set_sid_table. Take string hash from config
199 parser, and convert them here into SIDs.
201 * bus/config-parser.c (struct BusConfigParser): Have
202 config parser only store a mapping of service->context
204 (merge_service_context_hash): New function.
205 (merge_included): Merge context string hashes instead
206 of using bus_selinux_id_table_union.
207 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
208 simply create a new string hash.
209 (bus_config_parser_unref): Unref it.
210 (start_selinux_child): Simply insert strings into hash,
211 don't call bus_selinux_id_table_copy_over.
213 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
214 (bus_selinux_id_table_copy_over): Delete.
216 2004-11-03 Colin Walters <walters@verbum.org>
218 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
221 2004-11-03 Colin Walters <walters@verbum.org>
223 * bus/test-main.c (test_pre_hook): Fix test logic,
224 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
226 2004-11-02 Colin Walters <walters@redhat.com>
228 * bus/selinux.c (bus_selinux_init): Split into two functions,
229 bus_selinux_pre_init and bus_selinux_post_init.
230 (bus_selinux_pre_init): Just determine whether SELinux is
232 (bus_selinux_post_init): Do everything else.
234 * bus/main.c (main): Call bus_selinux_pre_init before parsing
235 config file, and bus_selinux_post_init after. This ensures that
236 we don't lose the policyreload notification thread that
237 bus_selinux_init created before forking previously.
239 * bus/test-main.c (test_pre_hook): Update for split.
241 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
243 Patch from Johan Fischer <linux@fischaz.com>
245 * mono/doc/Makefile.am (install-data-local): Added directory
248 2004-10-29 Colin Walters <walters@redhat.com>
250 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
251 parameter for fd to write pid to.
253 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
255 * bus/bus.c (bus_context_new): Pass print_pid_fd
256 to _dbus_become_daemon (bug #1720)
258 2004-10-29 Colin Walters <walters@redhat.com>
260 Patch from Ed Catmur <ed@catmur.co.uk>
262 * mono/doc/Makefile.am (install-data-local): Handle
265 2004-10-29 Colin Walters <walters@redhat.com>
267 * bus/.cvsignore, qt/.cvsignore: Update.
269 2004-10-29 Colin Walters <walters@redhat.com>
271 Patch from Kristof Vansant <de_lupus@pandora.be>
273 * configure.in: Detect Slackware.
274 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
275 * bus/rc.messagebus.in: New file.
277 2004-10-29 Colin Walters <walters@redhat.com>
279 * tools/dbus-monitor.c (filter_func): Return
280 DBUS_HANDLER_RESULT_HANDLED in filter function
282 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
284 2004-10-29 Colin Walters <walters@redhat.com>
286 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
288 * bus/services.c (bus_registry_acquire_service):
289 Correctly retrieve service name from DBusString
292 2004-10-29 Colin Walters <walters@redhat.com>
294 * dbus/dbus-glib.h: Update documentation to not
295 refer to internal APIs.
297 2004-10-27 Joe Shaw <joeshaw@novell.com>
299 * mono/Arguments.cs (GetDBusTypeConstructor):
300 type.UnderlyingSystemType will return "System.Byte" if you do it
301 on "byte[]", which is not what we want. So check the type.IsArray
302 property and use System.Array instead.
304 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
306 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
307 the DBusUserInfo structure since this is passed into the function.
308 This would cause a double free when the function that allocated
309 the structure would try to free it when an error occured.
311 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
312 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
313 for service activation to avoid 32bit/64bit parallel install issues
315 2004-10-21 Colin Walters <walters@verbum.org>
317 * AUTHORS: Fix my email address, the @gnu.org one
318 has been bouncing for some time. Also add J5.
320 2004-10-21 Colin Walters <walters@verbum.org>
322 * dbus/dbus-transport-unix.c (do_authentication): Return
323 authentication status to callers.
324 (unix_handle_watch): If we completed authentication this round,
325 don't do another read. Instead wait until the next iteration,
326 after we've read any pending data in the auth buffer.
327 (unix_do_iteration): Ditto.
328 (unix_handle_watch): Updated for new do_authentication prototype.
330 2004-10-18 Colin Walters <walters@verbum.org>
332 * bus/selinux.c (bus_selinux_enabled): Handle
333 --disable-selinux case.
335 2004-10-18 Colin Walters <walters@verbum.org>
337 * bus/selinux.h: Add bus_selinux_enabled.
339 * bus/selinux.c (bus_selinux_enabled): Implement it.
341 * bus/config-parser.c (struct include): Add
342 if_selinux_enabled member.
343 (start_busconfig_child): Parse if_selinux_enabled
344 attribute for include.
345 (bus_config_parser_content): Handle it.
347 * bus/session.conf.in, bus/system.conf.in: Add
348 inclusion of context mapping to default config files;
349 conditional on SELinux being enabled.
351 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
353 * test/data/invalid-config-files/badselinux-1.conf,
354 test/data/invalid-config-files/badselinux-2.conf:
355 Test files for bad syntax.
357 2004-10-17 Colin Walters <walters@verbum.org>
359 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
360 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
361 format specifier mismatches.
363 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
365 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
368 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
369 pointer (bug #1540, Leonardo Boiko).
371 2004-09-28 Jon Trowbridge <trow@ximian.com>
373 * mono/BusDriver.cs: Changed BusDriver struct to remove
374 the ServiceCreated and ServiceDeleted events and replace them
375 with the new ServiceOwnerChanged event.
377 * mono/example/BusListener.cs: Added a new example program,
378 which listens for and reports any ServiceOwnerChanged events
381 * mono/example/Makefile.am (DESTDIR): Build changes for the
382 new BusListener.cs example.
384 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
386 * bus/signals.c (bus_match_rule_parse): validate the components of
387 match rules (bug #1439).
389 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
391 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
393 * doc/dbus-specification.xml: document ServiceOwnerChanged
396 * bus/driver.c, bus/driver.h, bus/services.c: Use
397 ServiceOwnerChanged signal instead of ServiceCreated and
400 * bus/dispatch.c: update testcase for the new signal.
402 2004-09-20 Jon Trowbridge <trow@ximian.com>
404 Patch from Nat Friedman <nat@novell.com>
406 * mono/Makefile.am: A number of small build fixes to allow "make
407 distcheck" to succeed.
409 * mono/example/Makefile.am: "make distcheck" fixes.
411 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
414 * test/Makefile.am: "make distcheck" fixes.
416 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
418 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
420 * doc/busconfig.dtd: update the DTD for the at_console attribute.
422 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
423 messages after the first one (bug #1389).
425 * bus/dispatch.c (check_double_hello_message): add a test case for
426 the double hello message bug.
427 (check_existent_service_activation): fix check of spawning error.
429 2004-09-16 David Zeuthen <david@fubar.dk>
431 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
433 2004-09-12 David Zeuthen <david@fubar.dk>
435 Patch from Kay Sievers <kay.sievers@vrfy.org>
437 * bus/bus.c (bus_context_new):
441 Add commandline option --nofork to override configuration file
444 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
446 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
447 compilers don't like it (bug #974).
449 2004-09-04 Harald Fernengel <harry@kdevelop.org>
451 * qt/connection.*: Applied patch by Jérôme Lodewyck
452 <lodewyck@clipper.ens.fr> to integrate an existing
453 connection into the Qt eventloop
455 2004-08-30 Jon Trowbridge <trow@ximian.com>
457 * mono/BusDriver.cs: Added. This is a class for interacting with
458 the org.freedesktop.DBus service.
460 * mono/Message.cs: Added a mechanism to expose the message that is
461 currently being dispatched via the static Message.Current
462 property. Added Message.Sender and Message.Destination
465 * mono/Handler.cs: Expose the dispatched message via
466 Message.Current when handling method calls.
468 * mono/Service.cs: Expose the dispatched message via
469 Message.Current when handling signal emissions.
471 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
472 Connection.BaseService property.
474 2004-08-28 Havoc Pennington <hp@redhat.com>
476 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
478 More fixes from Steve Grubb
480 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
481 (_dbus_listen_tcp_socket): fix fd leak
483 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
484 EINTR to a bit lower in the code
486 2004-08-26 Jon Trowbridge <trow@ximian.com>
488 * bus/driver.c (bus_driver_handle_service_exists): Respond with
489 TRUE if we are inquiring about the existence of the built-in
490 org.freedesktop.DBus service.
492 2004-08-25 John Palmieri <johnp@redhat.com>
493 * bus/config-parser.c:
494 (struct PolicyType): Add POLICY_CONSOLE
495 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
496 (start_busconfig_child): Sets up console element when
497 <policy at_console=""> is encountered in a policy file
498 (append_rule_from_element): Convert console elements to console
502 (bus_policy_create_client_policy): Add console rules to the client
503 policy based on if the client is at the console
504 (bus_policy_append_console_rule): New function for adding a
505 console rule to a policy
506 (bus_policy_merge): Handle console rule merging
508 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
509 where we check for console user files
511 * dbus/dbus-sysdeps.c:
512 (_dbus_file_exists): New function which checks if the given
514 (_dbus_user_at_console): New function which does the system
515 specific process of checking if the user is at the console
517 * dbus/dbus-userdb.c:
518 (_dbus_is_console_user): New function converts a UID to user name
519 and then calls the system specific _dbus_user_at_console to
520 see if the user is at the console and therefor a console user
522 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
524 * bus/config-parser.c (set_limit):
525 * bus/dbus-daemon-1.1.in:
526 * test/data/valid-config-files/many-rules.conf: set the
527 max_match_rules_per_connection limt from the config file.
529 * doc/busconfig.dtd: update the DTD.
531 * bus/driver.c: remove some unused variables.
533 2004-08-24 Mikael Hallendal <micke@imendio.com>
535 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
536 it's been replaced by dbus_g_bus_get
538 2004-08-23 Colin Walters <walters@redhat.com>
540 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
542 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
544 * bus/selinux.c: Create a thread for policy reload notification.
545 (bus_selinux_get_policy_root): Implement.
547 * bus/config-parser.c (start_busconfig_child)
548 (bus_config_parser_content): Support SELinux-root relative
551 * configure.in <HAVE_SELINUX>: Add -lpthread.
553 * bus/test-main.c (test_pre_hook, test_post_hook): New.
554 (test_post_hook): Move memory checking into here.
555 (test_pre_hook, test_post_hook): Move SELinux checks in
556 here, but conditional on a DBUS_TEST_SELINUX environment
557 variable. Unfortunately we can't run the SELinux checks
558 as a normal user, since they won't have any permissions
559 for /selinux. So this will have to be tested manually
560 for now, until we have virtualization for most of
563 2004-08-23 Havoc Pennington <hp@redhat.com>
565 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
566 drop supplementary groups, suggested by Steve Grubb
568 2004-08-20 Colin Walters <walters@redhat.com>
570 * bus/config-parser.c (start_busconfig_child): Remove some unused
573 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
576 2004-08-17 Joe Shaw <joeshaw@novell.com>
578 * configure.in: If --enable-mono is passed in, if we can't find
581 * mono/Makefile.am: Use /gacutil to install assemblies into the
584 2004-08-12 Havoc Pennington <hp@redhat.com>
586 * NEWS: update for 0.22
588 * configure.in: release 0.22
590 2004-08-11 Colin Walters <walters@redhat.com>
592 * tools/dbus-send.c (main, usage): Add --reply-timeout
595 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
597 * bus/bus.c (process_config_first_time_only): get rid of an unused
598 DBusError that was causing a memoy leak (bug #989).
600 * dbus/dbus-keyring.c, dbus/dbus-message.c:
601 fix compilation on Solaris/Forte C (bug #974)
603 * bus/main.c (main): plug two minuscule memleaks.
605 2004-08-10 Havoc Pennington <hp@redhat.com>
607 * doc/dbus-tutorial.xml: add some more info on GLib bindings
609 2004-08-09 Havoc Pennington <hp@redhat.com>
611 * COPYING: switch to Academic Free License version 2.1 instead of
612 2.0, to resolve complaints about patent termination clause.
614 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
616 * README: added documentation for the --enable-python
619 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
621 * bus/config-parser.c (bus_config_parser_new): fix an invalid
622 _unref in the SELinux support.
624 * doc/busconfig.dtd: update DTD for SELinux support.
626 * bus/config-loader-libxml.c: fix error handler and parser
627 initialisation/cleanup. OOM test now works with libxml2 HEAD.
629 * configure.in: remove the warning about libxml2.
631 * dbus/dbus-bus.c: silence doxygen warning.
633 2004-07-31 Colin Walters <walters@redhat.com>
635 * configure.in: Move #error in SELinux check to its own line.
637 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
639 * dbus/dbus-internals.h (_DBUS_SET_OOM):
640 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
643 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
644 broken by the change in the _SET_OOM macros.
646 2004-07-31 Colin Walters <walters@redhat.com>
648 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
651 2004-07-31 Colin Walters <walters@redhat.com>
653 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
654 to correctly detect DBUS__ACQUIRE_SVC. Also add an
657 2004-07-24 Havoc Pennington <hp@redhat.com>
659 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
661 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
664 * configure.in: add --enable-selinux
666 * bus/policy.c (bus_policy_merge): add FIXME to a comment
668 * bus/main.c (main): initialize and shut down selinux
670 * bus/connection.c: store SELinux ID on each connection, to avoid
671 repeated getting of the string context and converting it into
674 * bus/bus.c (bus_context_get_policy): new accessor, though it
676 (bus_context_check_security_policy): check whether the security
677 context of sender connection can send to the security context of
680 * bus/config-parser.c: add parsing for <selinux> and <associate>
682 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
683 implement dbus_connection_get_unix_fd()
685 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
686 function, used by the selinux stuff
688 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
690 * bus/config-loader-libxml.c: complete the implementation of
691 libxml backend for config file loader. Doesn't work with full OOM
694 * configure.in: change error when selecting libxml into a warning.
696 * test/data/invalid-config-files: add two non-well-formed XML
699 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
701 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
702 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
703 be necessary to read all the buffer. (bug #894)
705 * bus/activation.c (bus_activation_activate_service): fix a
706 potential assertion failure (bug #896). Small optimization in the
707 case of auto-activation messages.
709 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
710 add test case for byte-through-vararg bug (#901). patch by Kimmo
713 2004-07-28 Anders Carlsson <andersca@gnome.org>
716 * python/dbus_bindings.pyx.in:
717 Add dbus.init_gthreads (), allow emit_signal to pass
718 arguments to the signal.
720 2004-07-24 Havoc Pennington <hp@redhat.com>
722 * AUTHORS: add some people, not really comprehensively, let me
725 2004-07-24 Havoc Pennington <hp@redhat.com>
727 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
730 * test/Makefile.am (DIST_SUBDIRS): here also
732 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
734 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
735 breaking build on Solaris, reported by Farhad Saberi on the ML.
737 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
738 va_arg invocation to account for integer promotion in the case of
739 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
741 * bus/services.c (bus_service_remove_owner): fix bug #902, use
742 _dbus_list_get_first_link, not _dbus_list_get_first.
744 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
746 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
747 handler functions so that the asserts in _dbus_object_subtree_unref
750 * dbus/dbus-transport-unix.c (do_reading):
751 _dbus_transport_queue_messages return value is of type
752 dbus_bool_t, not DBusDispatchStatus.
754 2004-07-19 David Zeuthen <david@fubar.dk>
756 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
759 (check_get_connection_unix_user): Debug says GetProperty; but the
760 method is called GetConnectionUnixUser
761 (check_get_connection_unix_process_id): New function
762 (bus_dispatch_test): Actually call check_get_connection_unix_user();
763 also call check_get_connection_unix_process_id()
766 (bus_driver_handle_get_connection_unix_process_id): New function,
767 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
771 (handle_server_data_external_mech): Set pid from the credentials
772 obtained from the socket
774 * dbus/dbus-connection.c:
775 (dbus_connection_get_unix_process_id): New function
777 * dbus/dbus-connection.h:
778 Add prototype for dbus_connection_get_unix_process_id
780 * dbus/dbus-transport.c:
781 (_dbus_transport_get_unix_process_id): New function
783 * dbus/dbus-transport.h:
784 Add prototype for _dbus_transport_get_unix_process_id
786 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
788 * dbus/dbus-message.c: Message counter fix, patch by Christian
789 Hammond <chipx86@gnupdate.org>
791 2004-07-18 Seth Nickell <seth@gnome.org>
794 * python/dbus_bindings.pyx.in:
795 * python/tests/test-client.py:
797 Add dbus.ByteArray and dbus_bindings.ByteArray
798 types so that byte streams can be passed back.
800 Give jdahlin the heaps of credit that are so
803 2004-07-12 Seth Nickell <seth@gnome.org>
807 Add message argument to the default object_method_handler
810 * python/dbus_bindings.pyx.in:
812 Automatically return NIL when passed an empty list
813 (we can't pass back a list since lists are typed
814 and we don't have any idea what type the the client
815 intended the list to be... :-( )
817 2004-07-10 Seth Nickell <seth@gnome.org>
819 * python/examples/Makefile.am:
821 Fix distcheck breakage caused by new examples.
823 2004-07-10 Seth Nickell <seth@gnome.org>
827 Add "message" argument to service-side dbus.Object
828 methods. This will break existing services written
829 using the python bindings, but will allow extraction
830 of all the message information (e.g. who its from).
832 Add improved "object oriented" signal handling/emission.
834 * python/examples/example-service.py:
838 * python/examples/example-signal-emitter.py:
839 * python/examples/example-signal-recipient.py:
841 Two new examples that show how to emit and receive
842 signals using the new APIs.
844 * python/examples/example-signals.py:
845 * python/examples/gconf-proxy-service.py:
846 * python/examples/gconf-proxy-service2.py:
848 Add "message" argument to service methods.
850 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
852 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
853 * dbus/bus.c (dbus_bus_get_unix_user)
854 * doc/dbus-specification.xml: implement GetConnectionUnixUser
855 method of org.freedesktop.DBus interface.
857 * bus/dispatch.c: test case
859 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
861 * python/Makefile.am: switched include directory from glib/ to dbus/
862 since dbus-glib.h moved
864 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
866 * configure.in: prevent building the gcj stuff and libxml loader
867 since they are broken.
869 2004-06-20 Havoc Pennington <hp@redhat.com>
871 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
872 codes from the dbus error names
874 * glib/dbus-glib.h: move to subdir dbus/ since it's included
875 as dbus/dbus-glib.h and that breakage is now visible due to
876 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
878 * glib/dbus-glib.h: s/gproxy/g_proxy/
880 * dbus/dbus-shared.h: new header to hold stuff shared with
883 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
886 * glib/dbus-glib.h (dbus_set_g_error): move to
889 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
890 of stuff to enable this
892 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
894 * a bunch of other changes with the same basic "separate glib
895 bindings from dbus.h" theme
897 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
899 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
901 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
903 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
905 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
906 the reply value of the ServiceExists message.
908 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
910 * python/dbus_bindings.pyx.in: No longer need to parse path
911 elements and pass them as arrays of strings. The C API now
912 accepts plain path strings.
913 (_build_parsed_path): removed
915 2004-06-07 Havoc Pennington <hp@redhat.com>
917 * doc/TODO: remove auto-activation item since it's done; sort
918 items by importance/milestone
920 2004-06-07 Havoc Pennington <hp@redhat.com>
922 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
923 random signature when using REQUIRED_FIELDS (this hack won't work
926 * dbus/dbus-message.c: change the signature to be a header field,
927 instead of message->signature special-case string. Incremental
928 step forward. Then we can fix up code to send the signature in the
929 message, then fix up code to validate said signature, then fix up
930 code to not put the typecodes inline, etc.
931 (load_one_message): don't make up the signature after the fact
932 (decode_header_data): require signature field for the known
935 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
937 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
939 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
941 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
943 * mono/Handler.cs: Updated to follow new path argument for
944 (un-)registering objects.
946 * mono/example/Makefile.am:
948 * configure.in: Bumped required version for mono and use new -pkg
951 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
953 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
954 registration functions take the path argument as char* instead of
957 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
958 split off the path decompostion part of
959 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
962 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
964 2004-06-02 Kristian Høgsberg <krh@redhat.com>
966 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
967 machine approach. A state is implemented as a function that
968 handles incoming events as specified for that state.
970 * doc/dbus-specification.xml: Update auth protocol state machine
971 specification to match implementation. Remove some leftover
974 2004-06-02 Kristian Høgsberg <krh@redhat.com>
976 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
977 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
980 * Doxyfile.in: remove deprecated options.
982 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
983 glib/test-thread.h, glib/test-thread-client.c,
984 glib/test-thread-server.c, glib/test-profile.c,
985 glib/test-dbus-glib.c: remove these unused files.
987 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
989 * dbus/dbus-object-tree.c
990 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
991 non-fallback handlers (bug #684).
992 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
993 (find_subtree_recurse): report wether the returned subtree is an
994 exact match or a "fallback" match higher up in the tree.
995 (object_tree_test_iteration): update test case.
997 2004-06-01 Seth Nickell <seth@gnome.org>
999 * python/dbus_bindings.pyx.in:
1000 * python/tests/test-client.py:
1002 Round off basic type support. Add dicts (yay!), and
1003 remaining array types.
1005 Make MessageIter more general so it works for dicts too.
1007 Mark all loop variables as C integers.
1009 2004-05-31 Havoc Pennington <hp@redhat.com>
1011 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1014 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1016 * glib/dbus-glib-tool.c (main): set up to have a --self-test
1017 option that runs the tests, and start filling in some code
1018 including for starters just dumping the interfaces to stdout
1020 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1022 * test/data/valid-introspection-files/lots-of-types.xml: test of
1023 an example introspection file
1025 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1028 2004-05-31 Seth Nickell <seth@gnome.org>
1030 * python/dbus_bindings.pyx.in:
1031 * python/tests/test-client.py:
1036 Fix string array memory trashing bug... oops...
1038 2004-05-30 Seth Nickell <seth@gnome.org>
1042 Add a nicer-but-less-flexible alternate API for handling
1043 calls to virtual objects in dbus.ObjectTree.
1045 Screw up the argument order to the dbus.Object constructor
1046 for consistency with dbus.ObjectTree (and to make dbus_methods
1047 optional for future extension)
1049 * python/examples/Makefile.am:
1050 * python/examples/gconf-proxy-service.py:
1051 * python/examples/gconf-proxy-service2.py:
1053 Alternate implementation of gconf-proxy-service using the
1054 nicer dbus.ObjectTree API.
1056 * python/examples/example-service.py:
1057 * python/tests/test-server.py
1059 Reverse the argument order to deal with dbus.Object constructor
1062 2004-05-30 Seth Nickell <seth@gnome.org>
1064 * python/examples/example-client.py:
1065 * python/examples/example-service.py:
1067 Take it back. Lists seem to work but they're broken
1068 in the test suite. Make the base examples use
1071 2004-05-30 Seth Nickell <seth@gnome.org>
1073 * python/dbus_bindings.pyx.in:
1074 * python/tests/test-client.py:
1076 Add some more tests and fix errors that crop up.
1077 Unfortunately, currently it seems like marshalling
1078 and unmarshalling of lists is completely broken :-(
1080 2004-05-30 Seth Nickell <seth@gnome.org>
1082 * python/dbus_bindings.pyx.in:
1084 Add support for ObjectPath type.
1088 Refactor message handling code to a common function.
1090 * python/tests/test-client.py:
1091 * python/tests/test-server.py:
1093 Add tests that check to make sure values of all types
1094 can be echoed from a service w/o mangling.
1096 2004-05-29 Seth Nickell <seth@gnome.org>
1100 Add ObjectTree class which allows implementation
1101 of trees of "virtual" objects. Basically the python
1102 wrapper for "register_fallback".
1104 * python/examples/Makefile.am
1105 * python/examples/gconf-proxy-client.py:
1106 * python/examples/gconf-proxy-service.py:
1108 Implement a simple GConf proxy service that supports
1109 get/set on string and int GConf keys using the ObjectTree.
1111 2004-05-29 Seth Nickell <seth@gnome.org>
1114 * python/examples/example-client.py:
1115 * python/examples/example-service.py:
1116 * python/examples/list-system-services.py:
1118 Add SessionBus, SystemBus and ActivationBus classes
1119 so you don't need to know the special little BUS_TYPE
1122 2004-05-29 Havoc Pennington <hp@redhat.com>
1124 * bus/config-parser.c (process_test_valid_subdir): temporarily
1125 stop testing config parser OOM handling, since expat has issues
1126 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1128 * bus/dbus-daemon-1.1.in: change requested_reply to
1129 send_requested_reply/receive_requested_reply so we can send the
1130 replies, not just receive them.
1132 * bus/config-parser.c: parse the new
1133 send_requested_reply/receive_requested_reply
1135 * bus/policy.c (bus_client_policy_check_can_send): add
1136 requested_reply argument and use it
1138 * bus/bus.c (bus_context_check_security_policy): pass through
1139 requested_reply status to message send check
1141 * bus/system.conf.in: adapt to requested_reply change
1143 2004-05-28 Havoc Pennington <hp@redhat.com>
1145 * test/glib/test-service-glib.c (main): remove unused variable
1147 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1149 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1150 from the enum, no longer in use.
1152 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1155 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1156 whether error_name passed in is a valid error name.
1158 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
1160 * dbus/dbus-message.c (dbus_message_get_args): Added support for
1161 OBJECT_PATH and OBJECT_PATH_ARRAY
1163 2004-05-28 Seth Nickell <seth@gnome.org>
1165 * python/examples/Makefile.am:
1167 Forget to add Makefile.am. Do not pass go.
1169 2004-05-28 Michael Meeks <michael@ximian.com>
1171 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
1174 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1176 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1177 (_dbus_message_iter_get_basic_type_array): impl.
1178 drastically simplify ~all relevant _get methods to use these.
1179 (_dbus_message_iter_append_basic_array),
1180 (dbus_message_iter_append_basic): impl
1181 drastically simplify ~all relevant _append methods to use these.
1183 * dbus/dbus-message-builder.c (parse_basic_type)
1184 (parse_basic_array, lookup_basic_type): impl.
1185 (_dbus_message_data_load): prune scads of duplicate /
1188 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
1189 (_dbus_demarshal_basic_type): implement,
1190 (demarshal_and_validate_len/arg): beef up debug.
1191 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1193 2004-05-27 Seth Nickell <seth@gnome.org>
1196 * python/Makefile.am:
1198 Include the example python apps in the tarball.
1200 * python/examples/list-system-services.py
1202 Add a python new example that fetches the list of services
1203 from the system bus.
1205 2004-05-27 Seth Nickell <seth@gnome.org>
1208 * python/dbus_bindings.pyx.in:
1210 Fix failure to notify that a signal was not handled,
1211 resulted in hung functions.
1213 2004-05-25 Colin Walters <walters@redhat.com>
1215 * tools/dbus-monitor.c (main): Monitor all types of messages.
1217 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
1219 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1220 which unregisters the object path and disposes the handler.
1222 2004-05-23 Kristian Høgsberg <krh@redhat.com>
1224 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1226 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1227 operands to && so we call dbus_message_iter_next () for the last
1230 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1232 * dbus/dbus-object-tree.c
1233 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1234 children even if the requested path isn't registered.
1235 (object_tree_test_iteration): test object_tree_list_registered.
1237 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1240 2004-05-20 Kristian Høgsberg <krh@redhat.com>
1242 * doc/TODO: Remove resolved items.
1244 * bus/expirelist.h (struct BusExpireList): remove unused n_items
1247 * bus/connection.c (bus_connections_expect_reply): Enforce the
1248 per-connection limit on pending replies.
1250 Patch from Jon Trowbridge <trow@ximian.com>:
1252 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
1253 up a watch that triggers a config reload when one end of the pipe
1255 (signal_handler): Instead of doing the config reload in our SIGHUP
1256 handler, just write to the reload pipe and let the associated
1257 watch handle the reload when control returns to the main loop.
1259 * bus/driver.c (bus_driver_handle_reload_config): Added.
1260 Implements a ReloadConfig method for requesting a configuration
1261 file reload via the bus driver.
1263 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
1265 * HACKING: Updated release instructions concerning the wiki page.
1267 2004-05-18 Kristian Høgsberg <krh@redhat.com>
1269 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1270 filter against auth->allowed_mechs; we only add allowed mechs in
1271 record_mechanisms().
1273 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1274 ALLOWED_MECHS to auth-script format so we can set the list of
1277 * data/auth/client-out-of-mechanisms.auth-script: New test to
1278 check client disconnects when it is out of mechanisms to try.
1280 * dbus/dbus-auth.c (process_command): Remove check for lines
1281 longer that 1 MB; we only buffer up maximum 16 kB.
1283 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1284 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1285 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1286 assume there might be unused bytes.
1288 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1289 client-out-of-mechs, it is handled in process_reject(). Move check
1290 for max failures to send_rejected(), as it's a server-only thing.
1292 * dbus/dbus-auth.c: Factor out protocol reply code into functions
1293 send_auth(), send_data(), send_rejected(), send_error(),
1294 send_ok(), send_begin() and send_cancel().
1296 2004-05-17 Kristian Høgsberg <krh@redhat.com>
1298 Remove base64 encoding, replace with hex encoding. Original patch
1299 from trow@ximian.com, added error handling.
1301 * dbus/dbus-string.c (_dbus_string_base64_encode)
1302 (_dbus_string_base64_decode): Remove.
1303 (_dbus_string_hex_decode): Add end_return argument so we can
1304 distinguish between OOM and invalid hex encoding.
1305 (_dbus_string_test): Remove base64 tests and add test case for
1308 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1309 Replace base64 with hex.
1311 * test/data/auth/invalid-hex-encoding.auth-script: New test case
1312 for invalid hex encoded data in auth protocol.
1314 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1316 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1319 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1321 * mono/dbus-sharp.dll.config.in: Added for GAC
1322 * mono/dbus-sharp.snk: Added for GAC
1323 * mono/Assembly.cs.in: Added for GAC
1324 * mono/Makefile.am: Changes for GAC installation
1325 * configure.in: Added refs for dbus-sharp.dll.config.in and
1326 Assembly.cs.in. More fixes for mono testing
1327 * mono/example/Makefile.am: Changed var to CSC
1328 * Makefile.am: Changed flag name to DBUS_USE_CSC
1330 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1332 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1333 * mono/doc/*: Added documentation framework
1334 * configure.in: Added monodoc check
1335 * README: Added description of mono configure flags
1337 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
1339 * doc/dbus-specification.xml: Added a "Required" column to the
1340 header fields table and changed the "zero or more" verbage in
1341 the above paragraph to read "The header must contain the required
1342 named header fields and zero or more of the optional named header
1344 * test/data/invalid-messages/*.message: Added the required PATH
1345 named header field to the tests so that they don't fail on
1346 'Missing path field'
1348 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
1350 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1351 the stack by implicitly defining variable and parameter types and
1352 removing the hack of defining C pointers as python objects and later
1355 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
1357 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1359 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
1361 * mono/DBusType/Dict.cs: Handle empty dicts
1362 * mono/DBusType/Array.cs: Handle empty arrays
1363 * mono/Arguments.cs: Handle empty arguments
1365 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
1367 * dbus-sharp.pc.in: Modified to include include Libs and Requires
1370 2004-04-25 Kristian Høgsberg <krh@redhat.com>
1372 * test/data/valid-messages/standard-*.message: Update message
1373 test scripts to new header field names.
1375 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
1377 * test/break-loader.c (randomly_do_n_things): tracked down buffer
1378 overflow to times_we_did_each_thing array which would chop off the
1379 first character of the failure_dir string. Increased the size of
1380 the array to 7 to reflect the number of random mutation functions
1383 2004-04-21 Kristian Høgsberg <krh@redhat.com>
1385 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1386 unix_server->watch here, it is unreffed in disconnect.
1387 (_dbus_server_new_for_tcp_socket): convert NULL host to
1388 "localhost" here so we don't append NULL to address.
1390 * dbus/dbus-server.c (_dbus_server_test): Add test case for
1391 various addresses, including tcp with no explicit host.
1393 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1395 * dbus/dbus-message.c (decode_header_data, decode_string_field):
1396 fix incorrect setting of .name_offset in the HeaderField (it was
1397 off by two bytes, positioned right after the name and typecode)
1399 * bus/bus.c (bus_context_new, bus_context_unref): test before
1400 calling dbus_server_free_data_slot and _dbus_user_database_unref
1401 in case of an error.
1403 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1406 2004-04-19 Kristian Høgsberg <krh@redhat.com>
1408 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1409 _dbus_poll() instead of select().
1411 2004-04-15 Jon Trowbridge <trow@ximian.com>
1413 * bus/main.c (signal_handler): Reload the configuration files
1415 (main): Set up our SIGHUP handler.
1417 * bus/bus.c (struct BusContext): Store the config file, user and
1418 fork flag in the BusContext.
1419 (process_config_first_time_only): Added. Contains the code
1420 (previously in bus_context_new) for setting up the BusContext from
1421 the BusConfigParser that should only be run the first time the
1422 config files are read.
1423 (process_config_every_time): Added. Contains the code (previously
1424 in bus_context_new) for setting up the BusContext from the
1425 BusConfigParser that should be run every time the config files are
1427 (load_config): Added. Builds a BusConfigParser from the config
1428 files and passes the resulting structure off to
1429 process_config_first_time_only (assuming this is the first time)
1430 and process_config_every_time.
1431 (bus_context_new): All of the config-related code has been moved
1432 to process_config_first_time_only and process_config_every_time.
1433 Now this function just does the non-config-related initializations
1434 and calls load_config.
1435 (bus_context_reload_config): Added.
1437 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1439 * bus/driver.c (bus_driver_handle_get_service_owner):
1440 implement a GetServiceOwner method.
1441 * doc/dbus-specification.xml: document it.
1442 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1444 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1445 implement, using the bus GetServiceOwner method.
1447 * test/glib/test-dbus-glib.c:
1448 use dbus_gproxy_new_for_service_owner so that we can receive the
1451 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1453 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1454 dbus/dbus-message.c, dbus/dbus-protocol.h
1455 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1457 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1458 dbus/dbus-message.c, dbus/dbus-protocol.h
1459 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1461 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1462 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1463 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1465 * doc/dbus-specification.xml (Header Fields Table):
1466 s/SERVICE/DESTINATION
1467 s/SENDER_SERVICE/SENDER
1470 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1472 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1475 2004-04-13 Michael Meeks <michael@ximian.com>
1477 * glib/dbus-gobject.c (handle_introspect): split out
1478 (introspect_properties): this.
1479 (handle_introspect): implement this.
1481 * test/glib/Makefile.am: use the absolute path so the bus
1482 daemon's chdir ("/") doesn't kill us dead.
1484 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1486 2004-04-12 Jon Trowbridge <trow@ximian.com>
1488 * bus/config-parser.c (struct BusConfigParser): Added
1489 included_files field.
1490 (seen_include): Added. Checks whether or not a file has already
1491 been included by any parent BusConfigParser.
1492 (bus_config_parser_new): Copy the parent's included_files.
1493 (include_file): Track which files have been included, and fail on
1494 circular inclusions.
1495 (process_test_valid_subdir): Changed printf to report if we are
1496 testing valid or invalid conf files.
1497 (all_are_equiv): Changed printf to be a bit clearer about
1498 what we are actually doing.
1499 (bus_config_parser_test): Test invalid configuration files.
1501 2004-04-09 Jon Trowbridge <trow@ximian.com>
1503 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1504 argument. If non-null, the newly-constructed BusConfigParser will
1505 be initialized with the parent's BusLimits instead of the default
1507 (include_file): When including a config file, pass in
1508 the current parser as the parent and then copy the BusLimits
1509 from the included BusConfigParser pack to the current parser.
1510 (process_test_valid_subdir): Renamed from process_test_subdir.
1511 (process_test_equiv_subdir): Added. Walks through a directory,
1512 descending into each subdirectory and loading the config files
1513 it finds there. If any subdirectory contains two config files
1514 that don't produce identical BusConfigParser structs, fail.
1515 For now, the BusConfigParser's BusPolicies are not compared.
1516 (bus_config_parser_test): Call both process_test_valid_subdir and
1517 process_test_equiv_subdir.
1519 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1520 argument and pass it along to the call to bus_config_parser_new.
1521 Also made a few small changes to allow this code to compile.
1523 * bus/config-loader-expat.c (bus_config_load): Take a parent
1524 argument and pass it along to the call to bus_config_parser_new.
1526 * bus/bus.c (bus_context_new): Load the config file
1527 with a NULL parent argument.
1529 2004-03-29 Michael Meeks <michael@ximian.com>
1531 * glib/dbus-gobject.c (introspect_properties): split
1532 out, fix mangled 'while' flow control.
1533 (introspect_signals): implement.
1534 (handle_introspect): update.
1536 2004-03-29 Michael Meeks <michael@ximian.com>
1538 * glib/dbus-gobject.c (set_object_property): split out /
1539 re-work, use the property type, and not the message type(!)
1540 (get_object_property): ditto.
1542 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1543 (dbus_gvalue_marshal): make this code re-usable, needed
1544 for signals too, also on both proxy and server side.
1545 Re-write for more efficiency / readability.
1547 2004-03-29 Michael Meeks <michael@ximian.com>
1549 * dbus/dbus-message.c
1550 (dbus_message_new_error_printf): impl.
1552 * dbus/dbus-connection.c
1553 (dbus_connection_unregister_object_path): fix warning.
1555 * configure.in: fix no-mono-installed situation.
1557 2004-03-27 Havoc Pennington <hp@redhat.com>
1559 Patch from Timo Teräs:
1561 * tools/dbus-send.c (main): if --print-reply, assume type is
1562 method call; support boolean type args
1564 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1565 bunch of memleak and logic bugs
1567 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1569 * mono/Arguments.cs:
1570 * mono/Introspector.cs:
1572 * mono/InterfaceProxy.cs:
1574 * mono/ProxyBuilder.cs:
1576 Added InterfaceProxy class to avoid building proxies for every
1580 * dbus-message.c (dbus_message_append_args_valist)
1581 (dbus_message_iter_get_object_path)
1582 (dbus_message_iter_get_object_path_array)
1583 (dbus_message_iter_append_object_path)
1584 (dbus_message_iter_append_object_path_array):
1585 Added object_path iter functions to handle OBJECT_PATH arguments
1587 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1589 First checkin of mono bindings.
1592 Build stuff for the bindings
1593 * dbus-sharp.pc.in: Added for pkgconfig
1595 2004-03-21 Havoc Pennington <hp@redhat.com>
1597 * test/test-service.c (main): remove debug spew
1599 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1601 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1604 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1605 (dbus_message_iter_init_array_iterator)
1606 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1607 indicate whether the iterator is empty
1609 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1612 2004-03-19 Havoc Pennington <hp@redhat.com>
1614 * NEWS: 0.21 updates
1616 * configure.in: 0.21
1618 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
1620 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
1621 you don't need pyrex to make dist
1623 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
1626 2004-03-18 Richard Hult <richard@imendio.com>
1628 * dbus/dbus-message.c (dbus_message_get_auto_activation)
1629 (dbus_message_set_auto_activation): Add doxygen docs.
1631 2004-03-16 Richard Hult <richard@imendio.com>
1633 * bus/activation.c: (bus_activation_service_created),
1634 (bus_activation_send_pending_auto_activation_messages),
1635 (bus_activation_activate_service):
1637 * bus/dispatch.c: (bus_dispatch),
1638 (check_nonexistent_service_auto_activation),
1639 (check_service_auto_activated),
1640 (check_segfault_service_auto_activation),
1641 (check_existent_service_auto_activation), (bus_dispatch_test):
1642 * bus/driver.c: (bus_driver_handle_activate_service):
1643 * bus/services.c: (bus_registry_acquire_service):
1644 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
1645 (dbus_message_get_auto_activation):
1646 * dbus/dbus-message.h:
1647 * dbus/dbus-protocol.h: Implement auto-activation.
1649 * doc/dbus-specification.xml: Add auto-activation to the spec.
1651 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
1653 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
1654 fix a bug with CUSTOM types.
1656 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
1657 a unit test for this bug (used to fail).
1659 2004-03-12 Mikael Hallendal <micke@imendio.com>
1662 (babysitter_watch_callback): notify all pending activations waiting for
1663 the same exec that the activation failed.
1664 (bus_activation_activate_service): shortcut the activation if we
1665 already waiting for the same executable to start up.
1667 2004-03-12 Mikael Hallendal <micke@imendio.com>
1670 - Added service file reloading.
1671 Each service files directory is kept in an hash table in
1672 BusActivation and each BusActivationEntry knows what .service-file it
1673 was read from. So when you try to activate a service the bus will
1674 check if it's been updated, removed or if new .service-files has
1676 - Test code at the bottom for the service file reloading.
1677 * bus/test-main.c: (main):
1679 - added service reloading test.
1680 * dbus/dbus-sysdeps.c:
1681 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
1683 2004-03-08 Michael Meeks <michael@ximian.com>
1685 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
1686 bail immediately if disconnected, to avoid busy loop.
1688 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
1689 cleanup cut/paste/inefficiency.
1691 2004-03-01 David Zeuthen <david@fubar.dk>
1693 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
1694 bug where args were used twice. This bug resulted in a segfault
1695 on a Debian/PPC system when starting the messagebus daemon. Include
1696 dbus-sysdeps.h for DBUS_VA_COPY
1698 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
1700 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
1701 appropriate va_copy implementation. From GLib
1703 2004-02-24 Joe Shaw <joe@ximian.com>
1705 * bus/services.c (bus_registry_acquire_service): We need to pass
1706 in the service name to dbus_set_error() to prevent a crash.
1708 2003-12-26 Anders Carlsson <andersca@gnome.org>
1710 * AUTHORS: Reveal my True identity.
1712 2003-12-17 Mikael Hallendal <micke@imendio.com>
1714 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1715 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
1717 2003-12-13 Mikael Hallendal <micke@imendio.com>
1719 * doc/TODO: Added not about better error check of configuration files.
1721 2003-12-02 Richard Hult <richard@imendio.com>
1723 * Update AFL version to 2.0 throughout the source files to reflect
1724 the update that was done a while ago.
1726 2003-12-02 Richard Hult <richard@imendio.com>
1728 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
1729 wrote_dict_key to FALSE on the iter that the dict is appended to,
1730 just like when appending other types. Fixes a bug where a dict
1731 couldn't be put inside a dict.
1732 (dbus_message_iter_append_dict_key): Fix typo in warning message.
1733 (message_iter_test, _dbus_message_test): Add test case for dict
1736 2003-12-01 David Zeuthen <david@fubar.dk>
1738 * python/dbus.py: Add the actual message when calling the reciever
1739 of a signal such that parameters can be inspected. Add the method
1740 remove_signal_receiver
1742 2003-11-26 Mikael Hallendal <micke@imendio.com>
1746 * glib/*.[ch]: Made ref functions return the pointer
1748 2003-11-25 Zack Rusin <zack@kde.org>
1750 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
1752 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
1755 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
1756 the Integrator and to better fit with the server,
1758 2003-11-24 Zack Rusin <zack@kde.org>
1760 * qt/connection.h, qt/connection.cpp: removing initDbus method since
1761 the integrator handles it now
1763 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
1764 since QTimer wasn't really meant to be used the way DBusTimeout is
1766 2003-11-24 Zack Rusin <zack@kde.org>
1768 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
1769 Integrator class which integrates D-BUS with the Qt event loop,
1771 * qt/connection.h, qt/connection.cpp: Move all the code which
1772 was dealing with D-BUS integration to the Integrator class,
1773 and start using Integrator,
1775 2003-11-23 Zack Rusin <zack@kde.org>
1777 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
1780 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
1781 switching namespaces to DBusQt, reworking the class,
1783 * Makefile.cvs: switching dependencies so that it matches KDE
1786 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
1789 2003-11-19 Havoc Pennington <hp@redhat.com>
1793 * configure.in: bump version to 0.20
1795 * configure.in (have_qt): add yet another place to look for qt
1796 (someone hand trolltech a .pc file...)
1798 2003-11-01 Havoc Pennington <hp@redhat.com>
1800 * doc/dbus-specification.xml: add state machine docs on the auth
1801 protocol; just a first draft, I'm sure it's wrong.
1803 2003-10-28 David Zeuthen <david@fubar.dk>
1805 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
1806 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
1808 2003-10-28 Havoc Pennington <hp@redhat.com>
1810 * dbus/dbus-message.c (get_next_field): delete unused function
1812 2003-10-28 Havoc Pennington <hp@redhat.com>
1814 * bus/expirelist.c (do_expiration_with_current_time): detect
1815 failure of the expire_func due to OOM
1817 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
1819 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
1820 NoReply error that's now created by the bus when the service exits
1822 2003-10-28 Havoc Pennington <hp@redhat.com>
1824 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
1825 tests for set_path, set_interface, set_member, etc.
1827 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
1829 * dbus/dbus-message.c (set_string_field): always just delete and
1830 re-append the field; accept NULL for deletion
1831 (re_align_fields_recurse): reimplement
1833 2003-10-26 Havoc Pennington <hp@redhat.com>
1835 * dbus/dbus-connection.c: fix docs to properly describe the
1836 disconnected message
1837 (_dbus_connection_notify_disconnected): remove this function;
1838 we can't synchronously add the disconnected message, we have to
1839 do it after we've queued any remaining real messages
1840 (_dbus_connection_get_dispatch_status_unlocked): queue the
1841 disconnect message only if the transport has finished queueing all
1842 its real messages and is disconnected.
1843 (dbus_connection_disconnect): update the dispatch status here
1845 2003-10-22 Havoc Pennington <hp@redhat.com>
1847 * bus/bus.c (bus_context_check_security_policy): fix up assertion
1849 * bus/connection.c (bus_transaction_send_from_driver): set the
1850 destination to the connection's base service
1852 2003-10-20 Havoc Pennington <hp@redhat.com>
1854 hmm, make check is currently not passing.
1856 * doc/dbus-specification.xml: add requirement that custom type
1857 names follow the same rules as interface names.
1859 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1860 duplication and allow 'c' to be 'custom'; dict is now 'm' for
1863 * doc/dbus-specification.xml: update type codes to match
1864 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1865 CUSTOM. Add type OBJECT_PATH to the spec.
1867 2003-10-17 Havoc Pennington <hp@redhat.com>
1869 * bus/driver.c (create_unique_client_name): use "." as separator
1870 in base service names instead of '-'
1872 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1873 byte at the end of the string
1875 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
1876 optimization macros since string validation seems to be a slow
1879 * doc/dbus-specification.xml: restrict valid
1880 service/interface/member/error names. Add test suite code for the
1883 * dbus/dbus-string.c: limit service/interface/member/error names
1886 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
1887 format arg to verbose spew
1889 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
1890 memory, return instead of g_error
1892 * test/test-service.c (path_message_func): support emitting a
1895 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
1896 activation bus type if DBUS_BUS_ACTIVATION was set; default to
1897 assuming the activation bus was the session bus so that services
1898 started manually will still register.
1899 (init_connections_unlocked): fix so that in OOM situation we get
1900 the same semantics when retrying the function
1902 * test/test-service.c (main): change to use path registration, to
1903 test those codepaths; register with DBUS_BUS_ACTIVATION rather
1904 than DBUS_BUS_SESSION
1906 2003-10-16 Havoc Pennington <hp@redhat.com>
1908 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
1910 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
1911 coverage of the tests
1912 (coverage-report.txt): don't move the .da and .bbg files around
1914 2003-10-16 Havoc Pennington <hp@redhat.com>
1916 * bus/bus.c (struct BusContext): remove struct field I didn't mean
1919 2003-10-16 Havoc Pennington <hp@redhat.com>
1921 * bus/connection.c (bus_pending_reply_expired): either cancel or
1923 (bus_connections_check_reply): use unlink, not remove_link, as we
1924 don't want to free the link; fixes double free mess
1926 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
1927 where no reply was received
1929 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
1932 * bus/signals.c (match_rule_matches): add special cases for the
1933 bus driver, so you can match on sender/destination for it.
1935 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
1936 DBUS_PRINT_BACKTRACE is set
1938 * dbus/dbus-internals.c: add pid to assertion failure messages
1940 * dbus/dbus-connection.c: add message type code to the debug spew
1942 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
1943 sender=foo not service=foo
1945 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
1946 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
1947 DBUS_ACTIVATION_ADDRESS instead
1949 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
1950 DBUS_SYSTEM_BUS_ADDRESS if appropriate
1952 * bus/bus.c (bus_context_new): handle OOM copying bus type into
1955 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
1956 (dbus_message_iter_get_object_path_array): new function (half
1957 finished, disabled for the moment)
1959 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
1960 DBUS_MESSAGE_TYPE_ERROR
1962 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
1963 avoid redirecting stderr to /dev/null
1964 (babysit): close stdin if not doing the "exit_with_session" thing
1966 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
1967 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
1968 stdout/stdin, so things don't get confused
1970 * bus/system.conf.in: fix to allow replies, I modified .conf
1971 instead of .conf.in again.
1973 2003-10-14 David Zeuthen <david@fubar.dk>
1975 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
1976 argtype to arg_type when raising unknown arg type exception.
1977 Changed type list to reflect the changes in dbus-protocol.h so
1978 the bindings actually work.
1980 2003-10-14 Havoc Pennington <hp@redhat.com>
1982 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
1983 to have a bug keeping it from outputting the .da files sometimes
1984 (string_get_string): don't append garbage nul bytes to the string.
1986 2003-10-15 Seth Nickell <seth@gnome.org>
1988 * python/Makefile.am:
1990 Include dbus_h_wrapper.h in the dist tarball.
1992 2003-10-14 Havoc Pennington <hp@redhat.com>
1994 * bus/bus.c (bus_context_check_security_policy): revamp this to
1995 work more sanely with new policy-based requested reply setup
1997 * bus/connection.c (bus_transaction_send_from_driver): set bus
1998 driver messages as no reply
2000 * bus/policy.c (bus_client_policy_check_can_receive): handle a
2001 requested_reply attribute on allow/deny rules
2003 * bus/system.conf: add <allow requested_reply="true"/>
2005 * bus/driver.c (bus_driver_handle_message): fix check for replies
2006 sent to the bus driver, which was backward. How did this ever work
2007 at all though? I think I'm missing something.
2009 * dbus/dbus-message.c (decode_header_data): require error and
2010 method return messages to have a reply serial field to be valid
2011 (_dbus_message_loader_queue_messages): break up this function;
2012 validate that reply serial and plain serial are nonzero;
2013 clean up the OOM/error handling.
2014 (get_uint_field): don't return -1 from this
2015 (dbus_message_create_header): fix signed/unsigned bug
2017 * bus/connection.c (bus_connections_expect_reply): save serial of
2018 the incoming message, not reply serial
2020 2003-10-14 Havoc Pennington <hp@redhat.com>
2022 * bus/connection.c: implement pending reply tracking using
2025 * bus/bus.c (bus_context_check_security_policy): verify that a
2026 reply is pending in order to allow a reply to be sent. Deny
2027 messages of unknown type.
2029 * bus/dbus-daemon-1.1.in: update to mention new resource limits
2031 * bus/bus.c (bus_context_get_max_replies_per_connection): new
2032 (bus_context_get_reply_timeout): new
2034 2003-10-13 Seth Nickell <seth@gnome.org>
2036 * python/Makefile.am:
2038 Pass "make distcheck": remove a couple files from DIST_FILES
2039 that weren't included in the final version.
2041 2003-10-12 Havoc Pennington <hp@pobox.com>
2043 Added test code that 1) starts an actual bus daemon and 2) uses
2044 DBusGProxy; fixed bugs that were revealed by the test. Lots
2045 more testing possible, but this is the basic framework.
2047 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2048 empty proxy lists from the proxy list hash
2050 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2051 couple of return_if_fail checks
2053 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2054 to allocate, so everything is cleared to NULL as it should be.
2056 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2057 source as data to dbus_connection_set_timeout_functions() as the
2058 timeout functions expected
2060 * test/glib/run-test.sh: add a little script to start up a message
2061 bus and run tests using it
2063 * tools/dbus-launch.1: updates
2065 * tools/dbus-launch.c (main): add --config-file option
2067 * tools/dbus-launch.c (main): remove confusing else if (runprog)
2068 that could never be reached.
2070 * dbus/dbus-message.c (dbus_message_new_method_return)
2071 (dbus_message_new_error, dbus_message_new_signal): set the
2072 no-reply-expected flag on all these. Redundant, but may
2073 as well be consistent.
2075 2003-10-11 Havoc Pennington <hp@pobox.com>
2077 * test/decode-gcov.c (function_solve_graph): make broken block
2078 graph a nonfatal error since it seems to be broken. Need to debug
2081 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2082 can't just check type > INVALID < LAST anymore
2084 * dbus/dbus-message.c (dbus_message_get_signature): new function
2085 (dbus_message_has_signature): new function
2086 (struct DBusMessage): add signature field (right now it isn't sent
2087 over the wire, just generated on the fly)
2088 (dbus_message_copy): copy the signature, and init strings to
2089 proper length to avoid some reallocs
2090 (dbus_message_iter_init_array_iterator): return void, since it
2092 (dbus_message_iter_init_dict_iterator): return void since it can't fail
2093 (_dbus_message_loader_queue_messages): add silly temporary hack to
2094 fill in message->signature on load
2096 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2097 characters, so they are relatively human-readable.
2099 2003-10-11 Havoc Pennington <hp@pobox.com>
2101 * dbus/dbus-message.c (_dbus_message_test): add more test
2102 coverage, but #if 0 for now since they uncover a bug
2103 not fixed yet; I think in re_align_field_recurse()
2104 (re_align_field_recurse): add FIXME about broken assertion
2106 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2108 * bus/connection.c: share a couple code bits with expirelist.c
2110 * bus/expirelist.h, bus/expirelist.c: implement a generic
2111 expire-items-after-N-seconds facility, was going to share between
2112 expiring connections and replies, decided not to use for expiring
2113 connections for now.
2115 * COPYING: include AFL 2.0 (still need to change all the file headers)
2117 2003-10-09 Havoc Pennington <hp@redhat.com>
2119 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2120 gcc 3.3. Not that we do anything about it yet.
2122 * bus/signals.c (bus_match_rule_parse): impose max length on the
2125 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2127 2003-10-09 Havoc Pennington <hp@redhat.com>
2129 Make matching rules theoretically work (add parser).
2131 * bus/bus.c (bus_context_check_security_policy): fix up to handle
2132 the case where destination is explicitly specified as bus driver
2133 and someone else is eavesdropping.
2135 * bus/policy.c (bus_client_policy_check_can_receive): fix up
2136 definition of eavesdropping and assertion
2138 * tools/dbus-send.c (main): use dbus_message_type_from_string
2140 * bus/signals.c (bus_match_rule_parse): implement
2142 * dbus/dbus-message.c (dbus_message_type_from_string): new
2144 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2146 2003-10-02 Havoc Pennington <hp@pobox.com>
2148 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2149 dbus_gproxy_oneway_call
2151 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
2152 (dbus_server_setup_with_g_main): fix to allow calling them more
2153 than once on the same args
2154 (dbus_bus_get_with_g_main): new function
2156 2003-10-02 Havoc Pennington <hp@redhat.com>
2158 * doc/dbus-tutorial.xml: write some stuff
2160 2003-09-29 Havoc Pennington <hp@pobox.com>
2162 * configure.in: split checks for Doxygen from XML docs, check for
2165 * doc/Makefile.am: XML-ify all the docs, and add a blank
2168 2003-09-29 Havoc Pennington <hp@pobox.com>
2170 * Merge dbus-object-names branch. To see the entire patch
2171 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2172 it's huuuuge though.
2173 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2175 2003-09-28 Havoc Pennington <hp@pobox.com>
2177 * HACKING: update to reflect new server
2179 2003-09-26 Seth Nickell <seth@gnome.org>
2182 * python/examples/example-signals.py:
2184 Start implementing some notions of signals. The API
2185 is really terrible, but they sort of work (with the
2186 exception of being able to filter by service, and to
2187 transmit signals *as* a particular service). Need to
2188 figure out how to make messages come from the service
2191 * python/dbus_bindings.pyx.in:
2193 Removed duplicate message_handler callbacks.
2195 2003-09-25 Havoc Pennington <hp@redhat.com>
2197 * bus/session.conf.in: fix my mess
2199 2003-09-25 Havoc Pennington <hp@pobox.com>
2201 * bus/session.conf.in: fix security policy, reported by Seth Nickell
2203 2003-09-25 Seth Nickell <seth@gnome.org>
2205 * python/examples/example-service.py:
2207 Johan notices complete wrong code in example-service, but
2208 completely wrong in a way that works exactly the same (!).
2209 Johan is confused, how could this possibly work? Example
2210 code fails to serve purpose of making things clear.
2213 2003-09-25 Mark McLoughlin <mark@skynet.ie>
2215 * doc/dbus-specification.sgml: don't require header fields
2216 to be 4-byte aligned and specify that fields should be
2217 distinguished from padding by the fact that zero is not
2220 * doc/TODO: remove re-alignment item and add item to doc
2221 the OBJECT_PATH type.
2223 * dbus/dbus-message.c:
2224 (HeaderField): rename the original member to value_offset
2225 and introduce a name_offset member to keep track of where
2226 the field actually begins.
2227 (adjust_field_offsets): remove.
2228 (append_int_field), (append_uint_field),
2229 (append_string_field): don't align the start of the header
2230 field to a 4-byte boundary.
2231 (get_next_field): impl finding the next marhsalled field
2232 after a given field.
2233 (re_align_field_recurse): impl re-aligning a number of
2234 already marshalled fields.
2235 (delete_field): impl deleting a field of any type and
2236 re-aligning any following fields.
2237 (delete_int_or_uint_field), (delete_string_field): remove.
2238 (set_int_field), (set_uint_field): no need to re-check
2239 that we have the correct type for the field.
2240 (set_string_field): ditto and impl re-aligning any
2242 (decode_header_data): update to take into account that
2243 the fields aren't 4-byte aligned any more and the new
2244 way to distinguish padding from header fields. Also,
2245 don't exit when there is too much header padding.
2246 (process_test_subdir): print the directory.
2247 (_dbus_message_test): add test to make sure a following
2248 field is re-aligned correctly after field deletion.
2250 * dbus/dbus-string.[ch]:
2251 (_dbus_string_insert_bytes): rename from insert_byte and
2252 allow the insert of multiple bytes.
2253 (_dbus_string_test): test inserting multiple bytes.
2255 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2256 warning note to docs about having to re-align any
2257 marshalled values following the string.
2259 * dbus/dbus-message-builder.c:
2260 (append_string_field), (_dbus_message_data_load):
2261 don't align the header field.
2263 * dbus/dbus-auth.c: (process_test_subdir): print the
2266 * test/break-loader.c: (randomly_add_one_byte): upd. for
2269 * test/data/invalid-messages/bad-header-field-alignment.message:
2272 * test/data/valid-messages/unknown-header-field.message: shove
2273 a dict in the unknown field.
2275 2003-09-25 Seth Nickell <seth@gnome.org>
2278 * python/dbus_bindings.pyx.in:
2280 Handle return values.
2282 * python/examples/example-client.py:
2283 * python/examples/example-service.py:
2285 Pass back return values from the service to the client.
2287 2003-09-24 Seth Nickell <seth@gnome.org>
2291 Connect Object methods (when you are sharing an object) up... pass
2292 in a list of methods to be shared. Sharing all the methods just
2293 worked out too weird. You can now create nice Services over the
2296 * python/dbus_bindings.pyx.in:
2298 Keep references to user_data tuples passed into C functions so
2299 Python doesn't garbage collect on us.
2301 Implement MethodReturn and Error subclasses of Message for creating
2302 DBusMessage's of those types.
2304 * python/examples/example-client.py:
2305 * python/examples/example-service.py:
2307 Simple example code showing both how create DBus services and objects,
2308 and how to use them.
2310 2003-09-23 Havoc Pennington <hp@pobox.com>
2312 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2314 2003-09-23 Havoc Pennington <hp@redhat.com>
2316 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2317 (dbus_gproxy_disconnect_signal): implement
2318 (dbus_gproxy_manager_remove_signal_match): implement
2319 (dbus_gproxy_manager_add_signal_match): implement
2320 (dbus_gproxy_oneway_call): implement
2322 2003-09-23 Havoc Pennington <hp@pobox.com>
2324 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2325 subclass. This means dropping the transparent thread safety of the
2326 proxy; you now need a separate proxy per-thread, or your own
2327 locking on the proxy. Probably right anyway.
2328 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2330 2003-09-22 Havoc Pennington <hp@redhat.com>
2332 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2334 2003-09-21 Seth Nickell <seth@gnome.org>
2336 First checkin of the Python bindings.
2338 * python/.cvsignore:
2339 * python/Makefile.am:
2340 * python/dbus_bindings.pyx.in:
2341 * python/dbus_h_wrapper.h:
2343 Pieces for Pyrex to operate on, building a dbus_bindings.so
2344 python module for low-level access to the DBus APIs.
2348 High-level Python module for accessing DBus objects.
2353 Build stuff for the python bindings.
2357 Extra macro needed for finding the Python C header files.
2359 2003-09-21 Havoc Pennington <hp@pobox.com>
2361 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2362 implementing the proxy manager, didn't get very far.
2364 * dbus/dbus-bus.c (dbus_bus_add_match): new
2365 (dbus_bus_remove_match): new
2367 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2368 path_name argument; adjust the other not-yet-implemented
2369 gproxy constructors to be what I think they should be.
2371 2003-09-21 Havoc Pennington <hp@pobox.com>
2373 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2374 by default for message bus connections.
2376 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2377 exit_on_disconnect flag is set and we process the disconnected
2379 (dbus_connection_set_exit_on_disconnect): new function
2381 2003-09-21 Havoc Pennington <hp@pobox.com>
2383 Get matching rules mostly working in the bus; only actually
2384 parsing the rule text remains. However, the client side of
2385 "signal connections" hasn't been started, this patch is only the
2388 * dbus/dispatch.c: fix for the matching rules changes
2390 * bus/driver.c (bus_driver_handle_remove_match)
2391 (bus_driver_handle_add_match): send an ack reply from these
2394 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2395 arguments, reported by Seth Nickell
2397 * bus/config-parser.c (append_rule_from_element): support
2398 eavesdrop=true|false attribute on policies so match rules
2399 can be prevented from snooping on the system bus.
2401 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2402 and "destination" in attribute names; fix some docs bugs;
2403 add eavesdrop=true|false attribute
2405 * bus/driver.c (bus_driver_handle_add_match)
2406 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2409 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2410 rid of broadcast service concept, signals are just always broadcast
2412 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2413 mostly implement matching rules stuff (currently only exposed as signal
2416 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2418 * doc/dbus-specification.sgml: Change the header field name
2419 to be an enum and update the rest of the spec to reference
2420 the fields using the conventinal name.
2422 * dbus/dbus-protocol.h: update to reflect the spec.
2424 * doc/TODO: add item to remove the 4 byte alignment requirement.
2426 * dbus/dbus-message.c: Remove the code to generalise the
2427 header/body length and serial number header fields as named
2428 header fields so we can reference field names using the
2430 (append_int_field), (append_uint_field), (append_string_field):
2431 Append the field name as a byte rather than four chars.
2432 (delete_int_or_uint_field), (delete_string_field): reflect the
2433 fact that the field name and typecode now occupy 4 bytes instead
2435 (decode_string_field), (decode_header_data): update to reflect
2436 protocol changes and move the field specific encoding from
2437 decode_string_field() back into decode_header_data().
2439 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2440 Add utility to aid debugging.
2442 * dbus/dbus-message-builder.c:
2443 (append_string_field), (_dbus_message_data_load): Update to
2444 reflect protocol changes; Change the FIELD_NAME directive
2445 to HEADER_FIELD and allow it to take the field's conventional
2446 name rather than the actual value.
2448 * test/data/*/*.message: Update to use HEADER_FIELD instead
2449 of FIELD_NAME; Always align the header on an 8 byte boundary
2450 *before* updating the header length.
2452 2003-09-15 Havoc Pennington <hp@pobox.com>
2454 * dbus/dbus-pending-call.c: add the get/set object data
2455 boilerplate as for DBusConnection, etc. Use generic object data
2456 for the notify callback.
2458 * glib/dbus-gparser.c (parse_node): parse child nodes
2460 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2462 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2463 contain functions shared between the convenience lib and the
2466 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2467 -export-symbols-regex to the GLib library
2469 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2470 fix the locking in here, and add a default handler for
2471 Introspect() that just returns sub-nodes.
2473 2003-09-14 Havoc Pennington <hp@pobox.com>
2475 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2476 rather than gfoo consistent
2478 * glib/dbus-gproxy.h: delete for now, move contents to
2479 dbus-glib.h, because the include files don't work right since we
2480 aren't in the dbus/ subdir.
2482 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2483 (dbus_gproxy_end_call): finish
2484 (dbus_gproxy_begin_call): finish
2486 * glib/dbus-gmain.c (dbus_set_g_error): new
2488 * glib/dbus-gobject.c (handle_introspect): include information
2489 about child nodes in the introspection
2491 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2492 function to help in implementation of introspection
2494 * dbus/dbus-object-tree.c
2495 (_dbus_object_tree_list_registered_and_unlock): new function
2497 2003-09-12 Havoc Pennington <hp@pobox.com>
2499 * glib/dbus-gidl.h: add common base class for all the foo_info
2502 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2505 * test/Makefile.am: try test srcdir -ef . in addition to test
2506 srcdir = ., one of them should work (yeah lame)
2508 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2511 * glib/dbus-gparser.h: make description_load routines return
2512 NodeInfo* not Parser*
2514 * Makefile.am (SUBDIRS): build test dir after all library dirs
2516 * configure.in: add GTK+ detection
2518 2003-09-07 Havoc Pennington <hp@pobox.com>
2520 * Make Doxygen contented.
2522 2003-09-07 Havoc Pennington <hp@pobox.com>
2524 * doc/dbus-specification.sgml: more updates
2526 2003-09-06 Havoc Pennington <hp@pobox.com>
2528 * doc/dbus-specification.sgml: partial updates
2530 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2531 zillionth time; hopefully I edited the right file this time.
2533 * bus/config-parser.c (append_rule_from_element): support
2534 send_type, send_path, receive_type, receive_path
2536 * bus/policy.c: add message type and path to the list of things
2537 that can be "firewalled"
2539 2003-09-06 Havoc Pennington <hp@pobox.com>
2541 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2542 (dbus_connection_register_object_path): make this not handle
2543 messages to paths below the given path
2545 2003-09-03 Havoc Pennington <hp@pobox.com>
2547 * test/glib/Makefile.am: add this with random glib-linked test
2550 * glib/Makefile.am: remove the random test programs from here,
2551 leave only the unit tests
2553 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
2554 uscore/javacaps conversion, and fix
2555 (get_object_property, set_object_property): change to .NET
2556 convention for mapping props to methods, set_FooBar/get_FooBar,
2557 since one language has such a convention we may as well copy it.
2558 Plus real methods in either getFooBar or get_foo_bar style won't
2559 collide with this convention.
2561 2003-09-01 Havoc Pennington <hp@pobox.com>
2563 * glib/dbus-gparser.c: implement
2565 * glib/dbus-gobject.c: start implementing skeletons support
2567 * configure.in: when disabling checks/assert, also define
2568 G_DISABLE_ASSERT and G_DISABLE_CHECKS
2570 2003-09-01 Havoc Pennington <hp@pobox.com>
2572 * glib/Makefile.am: rearrange a bunch of files and get "make
2573 check" framework set up
2575 2003-08-31 Havoc Pennington <hp@pobox.com>
2577 * fix build with --disable-tests
2579 2003-08-30 Havoc Pennington <hp@pobox.com>
2581 * dbus/dbus-connection.c: purge DBusMessageHandler
2583 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
2584 use callbacks everywhere
2586 2003-08-30 Havoc Pennington <hp@pobox.com>
2588 * test/data/valid-config-files/system.d/test.conf: change to
2589 root for the user so warnings don't get printed
2591 * dbus/dbus-message.c: add dbus_message_get_path,
2592 dbus_message_set_path
2594 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2595 dispatching to a path
2597 * dbus/dbus-string.c (_dbus_string_validate_path): add
2599 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2600 (_dbus_marshal_object_path): implement
2602 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
2603 to contain the path to the target object
2604 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2605 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2607 2003-08-30 Havoc Pennington <hp@pobox.com>
2609 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2611 2003-08-29 Havoc Pennington <hp@pobox.com>
2613 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
2615 (struct DBusObjectSubtree): shrink this
2616 a lot, since we may have a lot of them
2617 (_dbus_object_tree_free_all_unlocked): implement
2618 (_dbus_object_tree_dispatch_and_unlock): implement
2620 2003-08-29 Havoc Pennington <hp@pobox.com>
2622 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
2624 2003-08-28 Havoc Pennington <hp@pobox.com>
2628 * dbus/dbus-connection.c: port to no ObjectID, create a
2629 DBusObjectTree, rename ObjectTree to ObjectPath in public API
2631 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
2632 everything except UnregisterFunction and MessageFunction
2634 * dbus/dbus-marshal.c: port away from DBusObjectID,
2635 add DBUS_TYPE_OBJECT_PATH
2637 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
2638 dbus/dbus-objectid.[hc]: remove these, we are moving to
2639 path-based object IDs
2641 2003-08-25 Havoc Pennington <hp@pobox.com>
2643 Just noticed that dbus_message_test is hosed, I wonder when I
2644 broke that. I thought make check was passing earlier...
2646 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
2647 container tree, will replace most of dbus-object-registry
2649 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
2652 2003-08-19 Havoc Pennington <hp@pobox.com>
2654 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
2655 (dbus_message_is_error): fix this function
2657 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
2660 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
2661 reflect clarified man page
2662 (bus_client_policy_check_can_send): ditto
2664 * bus/session.conf.in: fixup
2666 * bus/system.conf.in: fixup
2668 2003-08-18 Havoc Pennington <hp@redhat.com>
2670 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
2672 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2673 dumb bug created earlier (wrong order of args to
2674 decode_header_data())
2676 * tools/dbus-send.c: port
2678 * tools/dbus-print-message.c (print_message): port
2680 * test/data/*messages: port all messages over
2682 * dbus/dbus-message-builder.c: support including
2685 * bus/driver.c: port over
2687 * bus/dispatch.c: port over to new stuff
2689 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2690 rename disconnect signal to "Disconnected"
2692 2003-08-17 Havoc Pennington <hp@pobox.com>
2694 This doesn't compile yet, but syncing up so I can hack on it from
2695 work. What are branches for if not broken code? ;-)
2697 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
2698 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
2699 DBUS_HEADER_FIELD_ERROR_NAME
2701 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
2702 for the interface+member pairs
2703 (string_hash): change to use g_str_hash algorithm
2704 (find_direct_function, find_string_function): refactor these to
2707 * dbus/dbus-message.c: port all of this over to support
2708 interface/member fields instead of name field
2710 * dbus/dbus-object-registry.c: port over
2712 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
2713 from _dbus_string_validate_name
2715 * bus/dbus-daemon-1.1: change file format for the
2716 <deny>/<allow> stuff to match new message naming scheme
2718 * bus/policy.c: port over
2720 * bus/config-parser.c: parse new format
2722 2003-08-16 Havoc Pennington <hp@pobox.com>
2724 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
2727 * glib/dbus-gproxy.c: some hacking
2729 2003-08-15 Havoc Pennington <hp@redhat.com>
2731 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
2733 * dbus/dbus-connection.c
2734 (dbus_connection_send_with_reply_and_block): factor out internals;
2735 change to convert any error replies to DBusError instead of
2736 returning them as a message
2738 2003-08-15 Havoc Pennington <hp@pobox.com>
2740 * dbus/dbus-connection.c,
2741 dbus/dbus-pending-call.c: Finish the pending call stuff
2743 2003-08-14 Havoc Pennington <hp@redhat.com>
2745 * dbus/dbus-pending-call.c: start on new object that will replace
2746 DBusMessageHandler and ReplyHandlerData for tracking outstanding
2749 * dbus/dbus-gproxy.c: start on proxy object used to communicate
2750 with remote interfaces
2752 * dbus/dbus-gidl.c: do the boring boilerplate in here
2754 2003-08-12 Havoc Pennington <hp@pobox.com>
2756 * bus/dispatch.c (bus_dispatch): make this return proper
2757 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
2759 * dbus/dbus-errors.c (dbus_set_error): use
2760 _dbus_string_append_printf_valist
2762 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
2763 (_dbus_string_append_printf): new
2765 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
2768 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
2769 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
2770 message is unhandled.
2772 2003-08-11 Havoc Pennington <hp@pobox.com>
2774 * bus/test.c (client_disconnect_handler): change to return
2775 HANDLED (would have been REMOVE_MESSAGE)
2777 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
2778 HANDLED/NOT_YET_HANDLED instead of
2779 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
2782 2003-08-10 Havoc Pennington <hp@pobox.com>
2784 * tools/dbus-send.c (main): add --type argument, for now
2785 supporting only method_call and signal types.
2787 * tools/dbus-print-message.c: print message type
2789 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2790 init connection->objects
2792 * doc/dbus-specification.sgml: fix sgml
2794 * bus/*.c: port over to object-instance API changes
2796 * test/test-service.c: ditto
2798 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
2799 name, we will have to fix up the rest of the code to also handle
2801 (dbus_message_new): generic message-creation call
2802 (set_string_field): allow appending name field
2804 2003-08-06 Havoc Pennington <hp@pobox.com>
2806 * dbus/dbus-object-registry.c: implement signal connection
2809 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
2811 * dbus/dbus-internals.c (_dbus_memdup): new function
2813 2003-08-02 Havoc Pennington <hp@pobox.com>
2815 * dbus/dbus-message.c (dbus_message_get_no_reply)
2816 (dbus_message_set_no_reply): add these and remove
2817 set_is_error/get_is_error
2819 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
2820 remove the ERROR flag, since there's now an ERROR type
2822 2003-08-01 Havoc Pennington <hp@pobox.com>
2824 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
2827 * dbus/dbus-message.c (dbus_message_get_type): new function
2829 * doc/dbus-specification.sgml: add "type" byte to messages
2831 2003-08-01 Havoc Pennington <hp@pobox.com>
2833 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
2834 a message type enum to distinguish kinds of message
2835 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
2836 that need not be replied to
2838 2003-08-01 Havoc Pennington <hp@pobox.com>
2840 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
2841 (unpack_8_octets): fix no-64-bit-int bug
2843 * dbus/dbus-object-registry.c (validate_id): validate the
2844 connection ID bits, not just the instance ID.
2846 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
2847 the connection-global 33 bits of the object ID
2849 * dbus/dbus-object-registry.c (info_from_entry): fill in
2850 object ID in the new way
2852 * dbus/dbus-objectid.h: rather than high/low bits, specifically
2853 define server/client/instance bits.
2855 2003-07-30 Havoc Pennington <hp@pobox.com>
2857 * dbus/dbus-connection.c (dbus_connection_register_object): fix
2860 2003-07-13 Havoc Pennington <hp@pobox.com>
2862 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2863 fields to DBusObjectVTable and DBusObjectInfo
2865 2003-07-12 Havoc Pennington <hp@pobox.com>
2867 * dbus/dbus-object-registry.c: implement unit test,
2868 fix bugs discovered in process
2870 * dbus/dbus-connection.c: remove handler_table and
2871 register_handler(), add DBusObjectRegistry usage
2873 * dbus/dbus-objectid.c (dbus_object_id_is_null)
2874 (dbus_object_id_set_null): new functions
2876 2003-07-08 Havoc Pennington <hp@pobox.com>
2878 * dbus/dbus-object.c: implement some of this
2880 * dbus/dbus-object-registry.c
2881 (_dbus_object_registry_add_and_unlock): fill in the object_id out
2883 (_dbus_object_registry_new): handle OOM
2885 2003-07-08 Havoc Pennington <hp@pobox.com>
2887 * dbus/dbus-object.h: sketch out an API for registering objects
2888 with a connection, that allows us to use as little as 24 bytes
2889 per object and lets application code represent an object in
2890 any conceivable way.
2892 * dbus/dbus-object-registry.c: implement the hard bits of the
2893 DBusConnection aspect of object API. Not yet wired up.
2895 2003-07-06 Havoc Pennington <hp@pobox.com>
2897 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
2898 (_dbus_marshal_object_id): new
2899 (_dbus_demarshal_object_id): new
2900 (_dbus_marshal_get_arg_end_pos): support object ID type, and
2901 consolidate identical switch cases. Don't conditionalize handling
2902 of DBUS_TYPE_UINT64, need to handle the type always.
2903 (_dbus_marshal_validate_arg): consolidate identical cases, and
2904 handle DBUS_TYPE_OBJECT_ID
2906 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
2908 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
2910 2003-09-28 Havoc Pennington <hp@pobox.com>
2914 2003-09-28 Havoc Pennington <hp@pobox.com>
2916 * doc/Makefile.am (dbus-specification.html): testing a funky hack
2917 to work with Debian db2html
2919 2003-09-28 Havoc Pennington <hp@pobox.com>
2921 * configure.in: 0.13
2923 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
2924 stylesheet-images for benefit of Debian
2926 Change back to using filesystem-linked sockets for the system
2927 bus, so only root can create the default system bus address.
2929 * bus/system.conf.in: change to use
2930 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2932 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
2935 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2936 here, and AC_DEFINE DBUS_SYSTEM_PATH
2938 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2941 * doc/busconfig.dtd:
2944 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2946 * doc/dbus-specification.sgml:
2947 Add activation reply values.
2949 2003-08-05 Havoc Pennington <hp@redhat.com>
2951 * configure.in: 0.12
2953 2003-08-05 Anders Carlsson <andersca@codefactory.se>
2955 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
2956 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
2957 (add_watch), (remove_watch), (create_source):
2958 Refcount fds, fixes some reentrancy issues.
2960 2003-07-30 Havoc Pennington <hp@redhat.com>
2962 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
2963 bus address to be abstract if we have abstract sockets
2967 2003-07-28 Havoc Pennington <hp@redhat.com>
2969 * bus/messagebus.in: fix to avoid processname/servicename
2970 confusion, from Michael Kearey
2971 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
2973 2003-07-23 Havoc Pennington <hp@pobox.com>
2975 * dbus/dbus-message.c (dbus_message_iter_get_named):
2976 fix from Andy Hanton to remove broken "+1"
2978 2003-07-16 Havoc Pennington <hp@pobox.com>
2980 * tools/dbus-launch.c (babysit): close stdout/stderr in the
2981 babysitter process, as suggested by Thomas Leonard, so
2982 an "eval `dbus-launch --exit-with-session`" will actually
2985 2003-07-16 Havoc Pennington <hp@pobox.com>
2987 * configure.in: print out EXPANDED_* variables in the summary at
2988 the end; clean up the code that computes EXPANDED_ variables and
2989 get the ones using exec_prefix right. Should make things work
2990 when you build without --prefix
2992 2003-06-29 Havoc Pennington <hp@pobox.com>
2994 * mono/Test.cs (class Test): fire up a main loop and run it
2996 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
2997 done once, the app has to do it
2999 2003-06-26 Havoc Pennington <hp@pobox.com>
3001 * mono/Connection.cs: set up connection with the glib main loop
3003 2003-07-01 Havoc Pennington <hp@redhat.com>
3005 * doc/dbus-specification.sgml: clarify the format of a type code,
3006 change suggested by Jim Blandy
3008 2003-06-29 Miloslav Trmac <mitr@volny.cz>
3011 * tools/Makefile.am: Don't assume srcdir == builddir.
3013 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3014 the allocated block.
3015 (_dbus_memory_test): New function.
3016 * dbus/dbus-test.h: Add _dbus_memory_test ().
3017 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3019 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3021 (dbus_message_new): Remove obsolete @todo.
3023 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3024 (_dbus_marshal_set_uint64): Fix comment.
3026 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3027 hardcode FIELD_REPLY_SERIAL.
3029 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3030 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3032 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3033 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3035 2003-06-24 Havoc Pennington <hp@pobox.com>
3037 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3039 2003-06-23 Anders Carlsson <andersca@codefactory.se>
3045 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3046 * gcj/org/.cvsignore:
3047 * gcj/org/Makefile.am:
3048 * gcj/org/freedesktop/.cvsignore:
3049 * gcj/org/freedesktop/Makefile.am:
3050 * gcj/org/freedesktop/dbus/.cvsignore:
3051 * gcj/org/freedesktop/dbus/Makefile.am:
3052 * gcj/org/freedesktop/dbus/Message.java: (Message),
3054 * gcj/org/freedesktop/dbus/natMessage.cc:
3055 Fix the build system.
3057 2003-06-22 Havoc Pennington <hp@pobox.com>
3059 * mono/Connection.cs: add more bindings
3061 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3064 2003-06-22 Havoc Pennington <hp@pobox.com>
3066 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3067 Start wrapping more stuff.
3069 2003-06-22 Havoc Pennington <hp@pobox.com>
3071 * mono/Message.cs: implement Message.Wrap() that ensures we only
3072 have a single C# wrapper per DBusMessage, assuming it works which
3073 it probably doesn't.
3075 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3076 (dbus_message_free_data_slot): new
3077 (dbus_message_set_data): new
3078 (dbus_message_get_data): new
3080 2003-06-22 Havoc Pennington <hp@pobox.com>
3082 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3083 (_dbus_data_slot_allocator_alloc): rework these to keep a
3084 reference count on each slot and automatically manage a global
3085 slot ID variable passed in by address
3087 * bus/bus.c: convert to new dataslot API
3089 * dbus/dbus-bus.c: convert to new dataslot API
3091 * dbus/dbus-connection.c: convert to new dataslot API
3093 * dbus/dbus-server.c: convert to new dataslot API
3095 * glib/dbus-gmain.c: ditto
3099 * bus/connection.c: ditto
3101 2003-06-22 Anders Carlsson <andersca@codefactory.se>
3103 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3104 after the gcj checks so that the correct configuration tags
3105 will be added to libtool.
3107 * dbus-glib-1.pc.in: No need to specify any includes since
3108 dbus-1.pc.in has those.
3110 2003-06-22 Havoc Pennington <hp@pobox.com>
3112 * mono/*, gcj/*, configure.in, Makefile.am:
3113 Check in makefiles and subdirs for mono and gcj bindings.
3114 Neither binding actually exists, just trying to get through
3115 all the build and other boring bits.
3117 2003-06-21 Philip Blundell <philb@gnu.org>
3119 * tools/dbus-monitor.1: Updated.
3121 * tools/dbus-send.1: Likewise.
3123 2003-06-20 Anders Carlsson <andersca@codefactory.se>
3125 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3126 for hangup and error after checking read so we won't discard
3127 pending data if both hangup and read are set.
3129 2003-06-19 Philip Blundell <philb@gnu.org>
3131 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3133 * tools/dbus-send.c: Accept both --system and --session.
3135 * tools/dbus-monitor.c: Same here.
3137 2003-06-19 Anders Carlsson <andersca@codefactory.se>
3139 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3140 from C++ (Patch by Miloslav Trmac).
3142 2003-06-15 Joe Shaw <joe@assbarn.com>
3144 * configure.in: Check for socklen_t.
3146 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3148 * test/test-segfault.c: Add #include <sys/time.h>
3150 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3151 dbus-launch needs it.
3153 2003-06-09 Havoc Pennington <hp@redhat.com>
3155 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3156 SUN_LEN, it breaks abstract socket usage
3158 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3161 2003-06-04 Havoc Pennington <hp@pobox.com>
3163 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3164 using unix:abstract=/foo, and when listening in a tmpdir
3165 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3167 * dbus/dbus-transport.c (_dbus_transport_open): support
3170 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3171 support abstract sockets
3173 * dbus/dbus-transport-unix.c
3174 (_dbus_transport_new_for_domain_socket): support abstract sockets
3176 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3177 toggle as an argument, implement abstract namespace support
3178 (_dbus_listen_unix_socket): ditto
3180 * configure.in: add --enable-abstract-sockets and implement
3181 a configure check for autodetection of the right value.
3183 2003-06-01 Havoc Pennington <hp@pobox.com>
3185 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3186 in /tmp (though on Linux this will end up being useless,
3187 when we add abstract namespace support)
3189 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3192 2003-05-28 Colin Walters <walters@verbum.org>
3194 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3196 2003-05-18 Anders Carlsson <andersca@codefactory.se>
3198 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3200 2003-05-17 Colin Walters <walters@gnu.org>
3202 * tools/dbus-send.c: Don't exit with an error code if --help was
3203 passed. Default to using the session bus instead of the system
3206 * tools/dbus-launch.c: Ditto.
3208 * tools/dbus-monitor.c: Ditto.
3210 * tools/dbus-send.1: Update with new arguments.
3212 * tools/dbus-launch.c: Emit code to export variables. New
3213 arguments -s and -c to specify shell syntax, and a bit of code to
3214 autodetect syntax. Also, allow specifying a program to run.
3216 * tools/dbus-launch.1: Update with new arguments.
3218 * tools/dbus-send.1: Ditto.
3220 * tools/dbus-monitor.1: Ditto.
3222 2003-05-17 Havoc Pennington <hp@pobox.com>
3224 * bus/config-parser.c (merge_included): merge in policies from
3225 child configuration file.
3227 * bus/policy.c (bus_policy_merge): function to merge two policies
3230 2003-05-16 Havoc Pennington <hp@redhat.com>
3232 * dbus/dbus-connection.c: disable verbose lock spew
3234 * tools/dbus-send.c: add --print-reply command line option
3236 * tools/dbus-print-message.h (print_message): new util function
3237 shared by dbus-send and dbus-monitor
3239 * tools/dbus-monitor.c (handler_func): exit on disconnect
3241 * dbus/dbus-transport-unix.c (do_reading): if the transport is
3242 disconnected, don't try to use the read_watch
3244 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3245 so we can find this bug more easily
3247 2003-05-16 Havoc Pennington <hp@redhat.com>
3249 * bus/policy.c (free_rule_list_func): avoid a crash when passed
3250 NULL as DBusHashTable is annoyingly likely to do.
3252 2003-05-16 Colin Walters <walters@verbum.org>
3254 * tools/dbus-monitor.c: Add --session argument and usage()
3257 * tools/dbus-monitor.1: Update with new --session arg.
3259 * bus/Makefile.am (install-data-hook): Create
3260 $(libdir)/dbus-1.0/services so that the session bus is happy.
3262 2003-05-15 Havoc Pennington <hp@redhat.com>
3264 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3265 on non-x86. ifdef's are evil.
3267 2003-05-15 Havoc Pennington <hp@redhat.com>
3269 * configure.in: 0.11
3273 * bus/Makefile.am (initddir): apparently we are supposed to put
3274 init scripts in /etc/rc.d/init.d not /etc/init.d
3276 * bus/Makefile.am: remove the "you must --enable-tests to make
3277 check" as it broke distcheck
3279 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3281 2003-05-13 James Willcox <jwillcox@gnome.org>
3284 * bus/activation.c: (bus_activation_service_created),
3285 (bus_activation_activate_service):
3286 * bus/driver.c: (bus_driver_send_service_deleted),
3287 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3288 (bus_driver_send_service_acquired),
3289 (bus_driver_send_welcome_message),
3290 (bus_driver_handle_list_services):
3291 * bus/session.conf.in:
3292 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3293 (dbus_bus_service_exists), (dbus_bus_activate_service):
3296 Add some convenience API which lets you activate a service, and did a
3297 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3298 and dbus_message_get_args()
3300 2003-05-11 Havoc Pennington <hp@pobox.com>
3302 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3303 calling _dbus_marshal_validate_arg() for every byte in a byte
3306 * dbus/dbus-message-handler.c: use atomic reference counting to
3307 reduce number of locks slightly; the global lock in here sucks
3309 * dbus/dbus-connection.c
3310 (_dbus_connection_update_dispatch_status_and_unlock): variant of
3311 update_dispatch_status that can be called with lock held; then use
3312 in a couple places to reduce locking/unlocking
3313 (dbus_connection_send): hold the lock over the whole function
3314 instead of acquiring it twice.
3316 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3318 * bus/connection.c (bus_connections_setup_connection): fix access
3319 to already-freed memory.
3321 * dbus/dbus-connection.c: keep a little cache of linked list
3322 nodes, to avoid using the global linked list alloc lock in the
3323 normal send-message case. Instead we just use the connection lock
3324 that we already have to take.
3326 * dbus/dbus-list.c (_dbus_list_find_last): new function
3328 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3329 change to use a struct for the atomic type; fix docs,
3330 they return value before increment, not after increment.
3332 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3333 (_dbus_string_append_8_aligned): new functions to try to
3334 microoptimize this operation.
3335 (reallocate_for_length): break this out of set_length(), to
3336 improve profile info, and also so we can consider inlining the
3339 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3340 strings with some preallocation, cuts down on our calls to realloc
3341 a fair bit. Though if we can get the "move entire string to empty
3342 string" optimization below to kick in here, it would be better.
3344 * dbus/dbus-string.c (_dbus_string_move): just call
3345 _dbus_string_move_len
3346 (_dbus_string_move_len): add a special case for moving
3347 an entire string into an empty string; we can just
3348 swap the string data instead of doing any reallocs.
3349 (_dbus_string_init_preallocated): new function
3351 2003-05-11 Havoc Pennington <hp@pobox.com>
3353 Write a "test-profile" that does echo client-server with threads;
3354 profile reveals lock contention, memcpy/realloc of buffers, and
3355 UTF-8 validation as hot spots. 20% of lock contention eliminated
3356 with dbus_atomic_inc/dec implementation on x86. Much remaining
3357 contention is global mempool locks for GList and DBusList.
3359 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3362 * dbus/dbus-connection.c (struct DBusConnection): use
3363 dbus_atomic_t for the reference count
3365 * dbus/dbus-message.c (struct DBusMessage): declare
3366 dbus_atomic_t values as volatile
3368 * configure.in: code to detect ability to use atomic integer
3369 operations in assembly, from GLib patch
3371 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3372 time, tired of it being wrong in threads and forked processes
3374 * glib/test-profile.c: a little program to bounce messages back
3375 and forth between threads and eat CPU
3377 * dbus/dbus-connection.c: add debug spew macros for debugging
3378 thread locks; include config.h at top; fix deadlock in
3379 dbus_connection_flush()
3381 2003-05-08 Havoc Pennington <hp@pobox.com>
3383 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3384 data from getting written, and there wasn't a good reason to
3387 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3388 dbus_verbose lines in test coverage
3389 (main): add list of functions sorted by # of untested blocks
3390 to the coverage report
3392 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3394 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3396 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3397 extend test coverage
3399 * test/data/auth/cancel.auth-script: test canceling an
3402 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3403 aren't used. in CVS history if we end up needing them.
3405 2003-05-04 Havoc Pennington <hp@pobox.com>
3407 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3410 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3411 function, which assumed length was in # of strings, not bytes
3413 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3416 * dbus/dbus-connection.c
3417 (_dbus_connection_queue_received_message): disable function for
3418 now, we are only using it in test mode
3420 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3421 remove a mistaken FIXME
3423 2003-05-04 Havoc Pennington <hp@pobox.com>
3425 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3426 unlock mutex on successful return, patch from Anders Gustafsson
3428 2003-05-04 Havoc Pennington <hp@pobox.com>
3430 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3433 2003-05-04 Havoc Pennington <hp@pobox.com>
3435 * tools/dbus-launch.c: implement
3437 * bus/main.c (main), bus/bus.c (bus_context_new):
3438 implement --print-pid and --fork
3440 2003-05-03 Havoc Pennington <hp@redhat.com>
3442 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3443 the address had no value, and add to test suite. Fix and
3444 regression test from Miloslav Trmac
3446 2003-05-03 Havoc Pennington <hp@pobox.com>
3448 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3449 watch is invalid when handled
3451 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3452 dbus-launch utility to launch the bus from a shell script. Didn't
3453 actually implement dbus-launch yet, it's just a placeholder still.
3455 2003-05-03 Havoc Pennington <hp@pobox.com>
3457 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3458 daemon; also documents daemon config file, so replaces
3459 doc/config-file.txt. Corrected some stuff from config-file.txt in
3460 the process of moving it.
3462 2003-05-03 Havoc Pennington <hp@pobox.com>
3464 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3467 2003-05-03 Colin Walters <walters@verbum.org>
3469 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3470 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3472 * Makefile.am: Update to use new .pc versioning scheme.
3474 2003-05-02 Havoc Pennington <hp@redhat.com>
3476 * bus/system.conf.in: allow send/receive to/from message bus
3479 2003-04-30 Havoc Pennington <hp@redhat.com>
3481 * configure.in: print a note when building with unit tests and
3484 2003-04-30 Havoc Pennington <hp@redhat.com>
3486 * Makefile.am: add a check-local that complains if you didn't
3487 configure with --enable-tests
3489 2003-04-29 Havoc Pennington <hp@redhat.com>
3491 * glib/dbus-gmain.c: docs cleanups
3493 * dbus/dbus-types.h: add docs on int64 types
3495 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3496 public API docs section
3498 2003-04-29 Havoc Pennington <hp@redhat.com>
3500 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3501 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3502 parallel install API version, not with the D-BUS package version.
3504 * HACKING: move some of README over here
3506 * README: updates, and document API/ABI policy
3508 * configure.in: reindentation
3510 2003-04-29 Havoc Pennington <hp@redhat.com>
3512 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3513 to use this library" to be sure people have the right
3516 2003-04-28 Havoc Pennington <hp@redhat.com>
3518 * configure.in: add --enable-docs which by default is auto yes if
3519 doxygen and db2html found, no otherwise; but can be forced on/off
3521 * doc/Makefile.am: conditionalize whether to build docs on
3524 2003-04-28 Havoc Pennington <hp@redhat.com>
3526 * configure.in: 0.10
3530 * bus/system.conf.in: add <includedir>system.d</includedir>
3532 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3533 username was provided but not uid
3535 * bus/config-parser.c (struct BusConfigParser): keep track of
3536 whether the parser is toplevel or was included; change some
3537 of the error handling if it's included.
3539 2003-04-27 Havoc Pennington <hp@pobox.com>
3543 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3544 report correct status if we finish processing authentication
3545 inside this function.
3547 * bus/activation.c (try_send_activation_failure): use
3548 bus_transaction_send_error_reply
3550 * bus/connection.c (bus_connection_get_groups): return an error
3551 explaining the problem
3553 * bus/bus.c (bus_context_check_security_policy): implement
3554 restriction here that inactive connections can only send the
3555 hello message. Also, allow bus driver to send anything to
3558 * bus/connection.c (bus_connection_complete): create the
3559 BusClientPolicy here instead of on-demand.
3560 (bus_connection_get_policy): don't return an error
3562 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3563 sender field in message being replied to
3565 * bus/bus.c (bus_context_check_security_policy): fix silly typo
3566 causing it to return FALSE always
3568 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3569 we checked sender rather than destination
3571 2003-04-25 Havoc Pennington <hp@redhat.com>
3573 test suite is slightly hosed at the moment, will fix soon
3575 * bus/connection.c (bus_connections_expire_incomplete): fix to
3576 properly disable the timeout when required
3577 (bus_connection_set_name): check whether we can remove incomplete
3578 connections timeout after we complete each connection.
3580 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3581 probably still broken.
3583 * bus/services.c (bus_registry_acquire_service): implement max
3584 number of services owned, and honor allow/deny rules on which
3585 services a connection can own.
3587 * bus/connection.c (bus_connection_get_policy): report errors here
3589 * bus/activation.c: implement limit on number of pending
3592 2003-04-25 Havoc Pennington <hp@redhat.com>
3594 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3595 where we used >= 0 instead of != DBUS_UID_UNSET.
3597 2003-04-25 Havoc Pennington <hp@redhat.com>
3599 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3600 were toggled without add/remove, fix from Anders Gustafsson
3602 2003-04-24 Havoc Pennington <hp@redhat.com>
3604 * test/data/valid-config-files/basic.conf: add <limit> tags to
3607 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3608 <limit> tag in configuration file.
3610 2003-04-24 Havoc Pennington <hp@redhat.com>
3612 * bus/dispatch.c: somehow missed some name_is
3614 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
3615 (_dbus_timeout_set_interval): new
3617 * bus/connection.c (bus_connections_setup_connection): record time
3618 when each connection is first set up, and expire them after the
3619 auth timeout passes.
3621 2003-04-24 Havoc Pennington <hp@redhat.com>
3623 * dbus/dbus-message.c (dbus_message_name_is): rename
3624 (dbus_message_service_is): rename
3625 (dbus_message_sender_is): rename
3626 (dbus_message_get_service): rename
3628 2003-04-24 Havoc Pennington <hp@redhat.com>
3630 * configure.in: add --enable-checks
3632 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
3634 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
3635 to use thread locks.
3636 (_dbus_connection_handler_destroyed_locked): move some private
3637 functions into proper docs group
3639 * dbus/dbus-internals.h: add _dbus_return_if_fail,
3640 _dbus_return_val_if_fail
3642 Throughout: use dbus_return_if_fail
3644 2003-04-23 James Willcox <jwillcox@gnome.org>
3647 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
3648 (dbus_connection_setup_with_g_main),
3649 (dbus_server_setup_with_g_main):
3650 * glib/test-dbus-glib.c: (main):
3651 * glib/test-thread-client.c: (main):
3652 * glib/test-thread-server.c: (new_connection_callback), (main):
3653 * tools/dbus-monitor.c: (main):
3655 Added a GMainContext argument to dbus_connection_setup_with_g_main()
3656 and dbus_server_setup_with_g_main().
3658 2003-04-20 Havoc Pennington <hp@pobox.com>
3660 * doc/dbus-specification.sgml: document the restrictions on
3661 message and service names
3663 2003-04-22 Havoc Pennington <hp@redhat.com>
3665 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
3666 support, and do some code cleanups to share more code and
3667 speed up array marshal/demarshal.
3669 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
3671 * configure.in: generate dbus-arch-deps.h
3673 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
3676 2003-04-22 Havoc Pennington <hp@redhat.com>
3678 * test/data/valid-messages/opposite-endian.message: fix test
3679 to use proper type for rply field
3681 * test/data/invalid-messages: add tests for below validation
3683 * dbus/dbus-message.c (decode_header_data): validate field types,
3684 and validate that named fields are valid names
3685 (decode_name_field): consider messages in the
3686 org.freedesktop.Local. namespace to be invalid.
3688 * dbus/dbus-string.c (_dbus_string_validate_name): new
3690 2003-04-19 Havoc Pennington <hp@pobox.com>
3692 * bus/driver.c (bus_driver_handle_hello): check limits and
3693 return an error if they are exceeded.
3695 * bus/connection.c: maintain separate lists of active and inactive
3696 connections, and a count of each. Maintain count of completed
3697 connections per user. Implement code to check connection limits.
3699 * dbus/dbus-list.c (_dbus_list_unlink): export
3701 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
3702 number of bytes in the message queue for a connection
3704 2003-04-18 Havoc Pennington <hp@pobox.com>
3706 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
3708 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
3711 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
3712 on realloc be sure to update the pointer in the keyring
3714 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
3715 offset to avoid writing to unallocated memory
3717 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
3718 try the next mechanism, so we properly handle OOM
3720 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
3722 (_dbus_keyring_new): fix OOM bug
3723 (_dbus_keyring_new_homedir): always set error; impose a maximum
3724 number of keys we'll load from the file, mostly to speed up the
3725 test suite and make its OOM checks more useful, but also for
3728 * dbus/dbus-auth.c (process_error_server): reject authentication
3729 if we get an error from the client
3730 (process_cancel): on cancel, send REJECTED, per the spec
3731 (process_error_client): send CANCEL if we get an error from the
3734 2003-04-18 Havoc Pennington <hp@pobox.com>
3736 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
3739 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
3742 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
3743 about DBUS_TEST_HOMEDIR once
3745 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
3748 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
3749 config file so we test the right thing
3751 Throughout: assorted docs improvements
3753 2003-04-18 Havoc Pennington <hp@pobox.com>
3755 * glib/dbus-gmain.c: adapt to watch changes
3757 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
3759 * dbus/dbus-server.h: remove dbus_server_handle_watch
3761 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
3763 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
3764 like DBusTimeout, so we don't need dbus_connection_handle_watch
3767 2003-04-17 Havoc Pennington <hp@redhat.com>
3769 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
3770 database usage so it all goes via the DBusUserDatabase cache.
3772 2003-04-17 Havoc Pennington <hp@redhat.com>
3774 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
3775 there was an OOM watch we skipped, we always return TRUE so we
3776 iterate again to have a look at it again. Fixes test suite hang.
3777 Code rearrangement also lets us lose some memset and only iterate
3778 over callbacks once.
3780 * bus/driver.c (bus_driver_handle_message): sense of test for
3783 2003-04-16 Havoc Pennington <hp@pobox.com>
3785 * doc/dbus-specification.sgml: make spec say serials are unsigned
3787 * dbus/dbus-message.h: change message serials to unsigned
3789 * dbus/dbus-connection.c: adapt to message serials being unsigned
3791 2003-04-15 Havoc Pennington <hp@pobox.com>
3793 * bus/bus.c: create and keep around a shared DBusUserDatabase
3796 * bus/connection.c (bus_connection_get_groups): don't cache
3797 groups for user in the connection object, since user database
3798 object now does that.
3800 2003-04-16 Havoc Pennington <hp@redhat.com>
3802 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
3803 list of size counters
3804 (_dbus_message_loader_putback_message_link): put back a popped link
3806 * dbus/dbus-connection.c
3807 (dbus_connection_set_max_live_messages_size): rename
3809 (dbus_connection_get_outgoing_size): get size of outgoing
3811 (_dbus_connection_set_connection_counter): remove this cruft
3813 2003-04-14 Havoc Pennington <hp@redhat.com>
3815 * dbus/dbus-userdb.c: user database abstraction, mostly to get
3816 caching, but at some point we might want to be able to use a
3819 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
3820 SHA1 conf file to test the sha1 auth mechanism, since the regular
3821 test always uses EXTERNAL when available.
3824 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
3825 add conf file that requires use of sha1 auth
3827 2003-04-13 Havoc Pennington <hp@pobox.com>
3829 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
3830 from Philip Blundell to send messages and monitor them.
3832 2003-04-13 Havoc Pennington <hp@pobox.com>
3834 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
3837 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
3840 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3841 fix to only recover unused bytes if we're already authenticated
3842 (_dbus_transport_get_is_authenticated): fix to still mark us
3843 authenticated if there are unused bytes.
3845 * bus/dispatch.c: implement security policy checking
3847 * bus/connection.c (bus_transaction_send_from_driver): new
3849 * bus/bus.c (bus_context_check_security_policy): new
3851 * bus/dispatch.c (send_service_nonexistent_error): delete this,
3852 now we just set the DBusError and it gets converted to an error
3855 * bus/connection.c (allow_user_function): enable code using actual
3856 data from the config file
3858 * bus/policy.c (list_allows_user): handle wildcard rules for
3859 user/group connection perms
3861 2003-04-13 Havoc Pennington <hp@pobox.com>
3863 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3865 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3867 * bus/policy.c (bus_policy_append_mandatory_rule)
3868 (bus_policy_append_default_rule, bus_policy_append_user_rule)
3869 (bus_policy_append_group_rule): new functions
3871 2003-04-12 Havoc Pennington <hp@pobox.com>
3873 * bus/config-parser.c (bus_config_parser_new): fix a memleak
3875 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
3876 the pid/gid/uid, just for paranoia.
3878 * test/break-loader.c (randomly_do_n_things): find a byte
3879 containing a type code, and randomly change it to a different
3882 2003-04-12 Havoc Pennington <hp@pobox.com>
3884 * bus/policy.h: change BusPolicy to be the thing from the config
3885 file, and rename old BusPolicy to BusClientPolicy
3887 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
3888 match change in how policy works
3890 * dbus/dbus-internals.h: mark assert_not_reached as
3891 __attribute((noreturn))__
3893 2003-04-11 Havoc Pennington <hp@redhat.com>
3895 * doc/dbus-specification.sgml: fix a spot with the wrong name for
3896 the broadcast service. Use boolean return for ServiceExists.
3898 2003-04-11 Havoc Pennington <hp@redhat.com>
3900 * configure.in: add another directory to look for qt in.
3902 2003-04-11 Havoc Pennington <hp@redhat.com>
3904 * AUTHORS: add Colin Walters
3906 2003-04-11 Havoc Pennington <hp@redhat.com>
3912 2003-04-11 Havoc Pennington <hp@redhat.com>
3914 * bus/messagebus.in: remove pid file when stopping the
3915 message bus, since the bus won't have privileges to remove it
3918 2003-04-11 Havoc Pennington <hp@redhat.com>
3920 * bus/bus.c (bus_context_new): move credentials change after
3923 2003-04-11 Havoc Pennington <hp@pobox.com>
3925 * test/decode-gcov.c: add "below average functions" to the
3926 coverage report, and change how some of the code works.
3928 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
3929 not in the coverage stats.
3931 * test/test-service.c (main): use _dbus_verbose not fprintf in a
3932 couple places so running the test suite doesn't result in megaspam.
3934 2003-04-11 Havoc Pennington <hp@pobox.com>
3936 * bus/dispatch.c (check_existent_service_activation): accept a no
3937 memory error in a place we didn't before
3939 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
3940 in case the first one failed," since the test suite is less
3943 2003-04-10 Havoc Pennington <hp@pobox.com>
3945 * bus/dispatch.c (check_segfault_service_activation): add test
3946 for launching an executable that just crashes.
3948 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
3949 don't leave a million cores. We'll see how portable this is.
3951 2003-04-10 Havoc Pennington <hp@pobox.com>
3953 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
3954 the possible parent failures before we fork, so that we don't
3955 fail to create a babysitter after creating the child.
3957 * bus/activation.c (bus_activation_activate_service): kill child
3958 if we don't successfully complete the activation.
3960 2003-04-10 Havoc Pennington <hp@redhat.com>
3962 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
3963 the connection if it's disconnected
3965 * bus/activation.c (bus_activation_service_created): use new
3966 transaction features to roll back removal of pending activation if
3967 we don't successfully create the service after all. Don't remove
3968 pending activation if the function fails.
3970 * dbus/dbus-list.c (_dbus_list_insert_before_link)
3971 (_dbus_list_insert_after_link): new code to facilitate
3974 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
3975 new functionality, so we can preallocate the ability to insert
3978 * bus/connection.c (bus_transaction_add_cancel_hook): new function
3979 allowing us to put custom hooks in a transaction to be used for
3980 cancelling said transaction
3982 * doc/dbus-specification.sgml: add some discussion of secondary
3983 service owners, and disallow zero-length service names
3985 * bus/services.c (bus_registry_acquire_service): new function,
3986 splits out part of bus_driver_handle_acquire_service() and fixes
3987 a bug where we didn't remove the service doing the acquiring
3988 from the secondary queue if we failed to remove the current owner
3989 from the front of the queue.
3991 2003-04-10 Alexander Larsson <alexl@redhat.com>
3993 * doc/dbus-specification.sgml:
3994 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
3996 2003-04-10 Alexander Larsson <alexl@redhat.com>
4001 Added files to cvsignore
4003 * dbus/dbus-message.h:
4004 * dbus/dbus-message.c: (dbus_message_iter_get_named):
4005 Make get_named() take two out argument and return a boolean.
4006 (dbus_message_iter_get_args_valist):
4007 Update usage of get_named().
4008 (dbus_message_iter_append_byte):
4010 (dbus_message_iter_append_named)
4012 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4015 2003-04-10 Alexander Larsson <alexl@redhat.com>
4017 * dbus/dbus-marshal.[ch]:
4018 Add array_type_pos argument to _dbus_marshal_validate_arg.
4019 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4021 * dbus/dbus-message.[ch]:
4022 Multi-dimensional arrays have full type specification in the
4023 outermost array. Iter code re-arranged to handle this.
4024 Added some more iter tests.
4026 * doc/dbus-specification.sgml:
4029 Update new array encoding description.
4030 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4032 * test/data/invalid-messages/array-with-mixed-types.message:
4033 * test/data/valid-messages/array-of-array-of-uint32.message:
4034 Change to the new array format.
4036 * test/data/invalid-messages/too-short-dict.message:
4039 * test/data/valid-messages/recursive-types.message:
4040 Fix up and extend test.
4042 2003-04-10 Havoc Pennington <hp@pobox.com>
4044 * bus/dispatch.c: lots of fixes
4046 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4047 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4048 that was crack, broke the test service.
4050 * dbus/dbus-transport.c (_dbus_transport_open): fix error
4051 handling to avoid piling up errors if we get a failure on the
4054 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4055 pid in assertion failures.
4057 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4058 to some fixed size of file descriptor array. Don't return TRUE
4059 anytime a timeout exists, that led to lots of busy loop silliness
4062 2003-04-09 Havoc Pennington <hp@redhat.com>
4064 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4065 I'd checked this in earlier but hadn't.
4067 2003-04-09 Havoc Pennington <hp@redhat.com>
4069 * bus/dispatch.c (bus_dispatch_test): get a bit further through
4070 the activation test (man this is getting old!)
4072 2003-04-09 Havoc Pennington <hp@redhat.com>
4074 * test/test-utils.c: use dispatch status function to fix this up
4076 * bus/connection.c (connection_watch_callback): don't dispatch
4078 (connection_timeout_callback): don't dispatch from here
4079 (bus_connections_setup_connection): set the dispatch status function
4080 (bus_connection_disconnected): unset it
4082 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4083 used to add a connection to be dispatched
4084 (_dbus_loop_iterate): do the dispatching at the end of each
4087 * dbus/dbus-connection.c
4088 (dbus_connection_set_dispatch_status_function): new function
4089 allowing us to fix up main loop usage
4090 (_dbus_connection_last_unref): free all the various function
4092 (dbus_connection_dispatch): call the DispatchStatusFunction
4093 whenever this function returns
4094 (dbus_connection_handle_watch): call DispatchStatusFunction
4095 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4096 (reply_handler_timeout): call DispatchStatusFunction
4097 (dbus_connection_flush): call DispatchStatusFunction
4099 2003-04-09 Havoc Pennington <hp@redhat.com>
4101 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4104 * bus/dispatch.c (check_service_activated): fix bug in test
4106 * dbus/dbus-mainloop.c (check_timeout): fix this up
4108 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4109 verbose output so we can sort out output from different processes,
4110 e.g. in the activation case.
4112 2003-04-08 Colin Walters <walters@gnu.org>
4114 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4116 (bus_context_new): Set it.
4117 (bus_context_unref): Use it to delete the pid file.
4119 2003-04-08 Havoc Pennington <hp@redhat.com>
4121 * test/data/invalid-messages/array-with-mixed-types.message:
4122 regression test that fails for the moment
4124 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4125 tests for convenience
4127 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4128 array of nil, it broke things.
4130 * test/data/invalid-messages/array-of-nil.message: regression test
4132 * test/data/valid-messages/array-of-array-of-uint32.message:
4133 happened to write this so added it to suite
4135 2003-04-08 Havoc Pennington <hp@redhat.com>
4137 * bus/driver.c (bus_driver_handle_acquire_service): init
4138 retval/reply before checking name
4140 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4141 recursion depth argument
4143 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4144 in the public struct for future extension
4146 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4149 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4152 * doc/dbus-specification.sgml: fix typo
4154 2003-04-08 Alexander Larsson <alexl@redhat.com>
4156 Implemented recursive types, named types and new-style iters
4159 * glib/test-thread-client.c: (thread_func):
4160 * glib/test-thread-server.c: (handle_test_message):
4161 * test/test-service.c: (handle_echo):
4170 * dbus/dbus-internals.c: (_dbus_type_to_string):
4171 Update for new types.
4173 * dbus/dbus-marshal.[ch]:
4174 Implement recursive types and the new marshalling format.
4175 Remove hardcoded dict marshalling.
4176 Marshal named types.
4178 * dbus/dbus-message-builder.c:
4180 Remove references to old types
4182 * dbus/dbus-message.[ch]:
4183 New non-refcounted iter API that supports recursive iters.
4184 Use iters for appending, including support for recursive
4186 Add byte and named type support.
4187 Update everything to new marshalling formats.
4188 Add tests for new API.
4190 * dbus/dbus-protocol.h:
4191 Remove old array types.
4192 Add types: BYTE, ARRAY, DICT, NAMED
4194 * dbus/dbus-string.c:
4195 * dbus/dbus-sysdeps.c:
4196 Make parse_double locale safe.
4198 * dbus/dbus-test-main.c:
4204 * doc/dbus-specification.sgml:
4207 * test/data/incomplete-messages/missing-body.message:
4208 * test/data/invalid-messages/bad-boolean.message:
4209 * test/data/invalid-messages/bad-boolean-array.message:
4210 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4211 * test/data/invalid-messages/boolean-has-no-value.message-raw:
4212 * test/data/invalid-messages/too-short-dict.message:
4213 * test/data/valid-messages/dict-simple.message:
4214 * test/data/valid-messages/dict.message:
4215 * test/data/valid-messages/emptiness.message:
4216 * test/data/valid-messages/lots-of-arguments.message:
4217 * test/data/valid-messages/no-padding.message:
4218 * test/data/valid-messages/recursive-types.message:
4219 Add missing NAME fields
4220 Fix up dicts & arrays
4222 * test/data/invalid-messages/dict-with-nil-value.message:
4223 Removed, this is not invalid anymore.
4225 * test/data/valid-messages/recursive-types.message:
4226 Add new test for deeply recursive types.
4228 2003-04-07 Havoc Pennington <hp@pobox.com>
4230 * bus/driver.c (bus_driver_handle_acquire_service): return an
4231 error if you try to acquire a service that starts with ':'
4233 2003-04-07 Havoc Pennington <hp@redhat.com>
4235 * doc/dbus-specification.sgml: require that base service names
4236 start with ':' and that the base service is created/deleted
4237 as first and last things a connection does on the bus
4239 * bus/dispatch.c (check_existent_service_activation): lots more
4240 work on the activation test; it doesn't fully pass yet...
4242 * test/test-service.c (main): fix so we don't memleak the
4243 connection to the message bus
4244 (filter_func): accept a message asking us to exit
4246 2003-04-06 Havoc Pennington <hp@pobox.com>
4248 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4251 * configure.in: fixes to Qt detection from Colin Walters
4253 * doc/Makefile.am: Only remove generated docbook dirs if they
4254 exist, from Colin Walters
4256 * dbus/dbus-bus.c: change how we set well-known connections to
4257 NULL, so that it works if a single connection is stored in
4258 two well-known array slots.
4260 * test/Makefile.am: remove a lot of stuff that isn't immediately
4261 useful, it's in CVS history if we want it.
4263 * test/test-service.c: use dbus-mainloop instead of that
4266 2003-04-06 Havoc Pennington <hp@pobox.com>
4268 * dbus/Makefile.am: split lists of sources into stuff that goes in
4269 the library, util functions that go in the lib and are also used
4270 elsewhere, and util functions that are used in tests/daemon but
4271 don't go in the lib.
4273 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4274 here so it can be used in test binaries also
4276 2003-04-06 Havoc Pennington <hp@pobox.com>
4278 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4279 here in the parent process, so we can return an error if it
4280 fails. Also, move some of the code into the child so the parent
4281 is less hosed if we fail midway through.
4283 * bus/bus.c (bus_context_new): move pidfile detection further up
4284 in the function, before we start overwriting sockets and such.
4286 * bus/messagebus.in: adjust this a bit, not sure if it will work.
4288 * configure.in: add --with-system-pid-file and --with-system-socket
4290 2003-04-06 Colin Walters <walters@verbum.org>
4292 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4294 * bus/system.conf.in: Declare a pidfile.
4296 * bus/bus.c (bus_context_new): Test for an existing pid file, and
4297 create one (if appropriate).
4299 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4300 (struct BusConfigParser) [pidfile]: New.
4301 (element_type_to_name, merge_included, start_busconfig_child)
4302 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4303 (bus_config_parser_unref): Free it.
4304 (bus_config_parser_get_pidfile): New function.
4306 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4308 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4310 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4312 * dbus/dbus-sysdeps.h: Prototype it.
4314 2003-04-06 Havoc Pennington <hp@pobox.com>
4316 * bus/bus.c (bus_context_new): print the address in here, rather
4317 than in main(), because we need to do it before forking the daemon
4319 * bus/dispatch.c (send_service_nonexistent_error): set the sender
4320 on the service nonexistent error
4322 * bus/driver.c (bus_driver_handle_acquire_service): set the
4323 sender on the AcquireService reply
4325 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4326 server also listen on a UNIX socket so services can connect to it.
4328 2003-04-06 Havoc Pennington <hp@pobox.com>
4330 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4331 so it detects deadlocks and also we actually init threads when
4334 2003-04-06 Havoc Pennington <hp@pobox.com>
4336 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4337 save the domain socket name, and unlink it when we disconnect the
4338 server. Means that at least when we exit normally, we won't leave
4339 a bunch of junk in /tmp
4341 * dbus/dbus-transport-unix.c
4342 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4343 memory management). (I was making a real change here but then
4346 2003-04-06 Havoc Pennington <hp@pobox.com>
4348 * bus/bus.c (bus_context_new): fix wrong handling of
4349 server_data_slot_unref() in the error case.
4351 * dbus/dbus-internals.h (_dbus_assert): change so it passes
4352 "(condition) != 0" to _dbus_real_assert so that
4353 "_dbus_assert (pointer)" doesn't cause a warning
4355 * bus/main.c (main): accept --print-address option to print out
4356 the message bus address
4358 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4360 * dbus/dbus-transport.c (_dbus_transport_open): special error for
4361 "tmpdir" option to unix: address on client side
4363 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4366 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4367 we can use to create sockets in the test suite.
4369 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4370 cleanly. To be used for testing.
4372 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4374 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4376 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4377 handle trying to call this when there's no servers active
4379 2003-04-05 Havoc Pennington <hp@pobox.com>
4385 2003-04-05 Havoc Pennington <hp@pobox.com>
4387 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4388 crash on startup. Need to get "try starting the daemon"
4389 in the test suite I guess. ;-)
4391 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4392 tracked the number of open connections; it's better done in
4393 application-specific code as you want it to span all servers etc.
4395 2003-04-05 Havoc Pennington <hp@pobox.com>
4397 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4398 patch from Colin Walters
4400 2003-04-05 Havoc Pennington <hp@pobox.com>
4402 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4403 reality; in fact multiple mechanisms are allowed.
4405 * dbus/dbus-internals.c (_dbus_real_assert)
4406 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4407 _dbus_assert_not_reached() into functions, so that they don't show
4408 up in basic block counts for test coverage, and don't use up as
4409 much disk space. Does mean slower execution speed though, so
4410 assumes --disable-asserts is the normal production case.
4412 2003-04-05 Havoc Pennington <hp@pobox.com>
4414 * test/Makefile.am (dist-hook): also dist *.in files
4420 2003-04-05 Havoc Pennington <hp@pobox.com>
4422 * dbus/dbus-string.c: docs warning
4424 * dbus/dbus-spawn.c: missing docs
4426 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4428 2003-04-05 Havoc Pennington <hp@pobox.com>
4430 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4433 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4434 to -1 once we've reaped the babysitter
4435 (_dbus_babysitter_handle_watch): do as much work as we can, not
4438 * bus/activation.c: add code using DBusBabysitter so that we
4439 handle it when a service fails to start up properly.
4440 (bus_activation_service_created): don't remove the activation
4441 entries as we go, just let them get removed when we free the pending
4442 activation. Unref reply messages after sending them.
4444 2003-04-05 Havoc Pennington <hp@pobox.com>
4446 * test/decode-gcov.c (main): print per-directory stats in the report
4448 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4450 2003-04-05 Havoc Pennington <hp@pobox.com>
4452 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4454 * test/decode-gcov.c: hack up a little program to suck data
4455 out of gcov files. Yes this is sort of silly.
4457 * configure.in: define something in config.h and do an
4458 AM_CONDITIONAL when gcov is enabled
4460 2003-04-04 Havoc Pennington <hp@redhat.com>
4462 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4463 return a "babysitter" object that is used to monitor the status of
4464 the spawned process and reap it when required.
4466 * test/test-segfault.c, test/test-exit.c,
4467 test/test-sleep-forever.c: binaries that do various lame things,
4468 used in the test suite.
4470 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4472 2003-04-03 Havoc Pennington <hp@pobox.com>
4474 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4475 in preparation for modifying it, dbus-sysdeps is getting
4478 2003-04-03 Havoc Pennington <hp@redhat.com>
4480 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4483 * bus/*.[hc]: adapt to mainloop change
4485 2003-04-03 Havoc Pennington <hp@redhat.com>
4487 * bus/activation.c (load_directory): fix up memleaks
4488 (bus_activation_entry_free): free the entry
4490 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4491 we get one from the message bus; fix memleaks.
4493 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4495 2003-04-03 Havoc Pennington <hp@pobox.com>
4497 * bus/config-parser.c (bus_config_parser_unref): free
4498 list of mechanisms, bug discovered by test suite enhancements
4499 (putting system.conf and session.conf into suite)
4501 * test/Makefile.am, test/test-service.c: add placeholder for a
4502 test service that we'll activate as part of test suite. Doesn't
4505 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4506 setting NULL value, and use system malloc not dbus_malloc()
4507 when we have unavoidable memleakage.
4509 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4510 didn't work, and support DBUS_BUS_ACTIVATION.
4512 * bus/activation.c (child_setup): pass our well-known bus type to
4515 * bus/config-parser.c: support <type> to specify well-known type
4517 * doc/dbus-specification.sgml: document the env variables to
4518 locate well-known buses and find service activator
4520 2003-04-02 Havoc Pennington <hp@redhat.com>
4522 * test/Makefile.am (all-local): add a rule to copy tests to
4523 builddir, so we can have generated tests. Use this to remove the
4524 silly hack for testing system.conf and session.conf. Will use this
4525 shortly to generate .service files pointing to test binaries.
4527 2003-04-02 Havoc Pennington <hp@redhat.com>
4529 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4530 current alloc and needed new length, not max of the doubled
4531 allocation and needed new length. Also, when building tests,
4532 don't do the double-allocation stuff, just realloc every time.
4534 2003-04-02 Havoc Pennington <hp@redhat.com>
4536 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4538 (_dbus_string_get_dirname): new
4539 (_dbus_sysdeps_test): new
4540 (_dbus_directory_open): include dirnames in error messages
4542 * bus/config-parser.c: interpret <include> and <includedir> and
4543 <servicedir> relative to config file location if the given
4544 filename is not absolute.
4546 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4548 2003-04-02 Havoc Pennington <hp@redhat.com>
4550 * bus/connection.c (bus_transaction_send_error_reply): set sender
4551 service for the error, and unref the reply on success
4553 * bus/activation.c: convert to use BusTransaction so OOM can be
4555 (bus_activation_service_created): set sender of the message
4557 2003-04-01 Havoc Pennington <hp@redhat.com>
4559 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4560 <includedir> (at least mostly)
4562 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4563 first, then the user ID
4565 2003-04-01 Havoc Pennington <hp@pobox.com>
4567 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4570 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4572 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4574 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4575 socket 0777, and unlink any existing socket.
4577 * bus/bus.c (bus_context_new): change our UID/GID and fork if
4578 the configuration file so specifies; set up auth mechanism
4581 * bus/config-parser.c (bus_config_parser_content): add support
4582 for <fork> option and fill in code for <auth>
4584 * bus/system.conf.in: add <fork/> to default configuration,
4585 and limit auth mechanisms to EXTERNAL
4587 * doc/config-file.txt (Elements): add <fork>
4589 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4590 (_dbus_change_identity): new function
4592 2003-03-31 Havoc Pennington <hp@redhat.com>
4594 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4595 (_dbus_listen_unix_socket): fix off-by-one error in null
4596 termination spotted by Nalin
4598 2003-03-31 Havoc Pennington <hp@redhat.com>
4600 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4601 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4602 having a real home directory available.
4604 2003-03-31 Havoc Pennington <hp@redhat.com>
4606 * bus/Makefile.am (install-data-hook): create /var/run/dbus
4608 * bus/messagebus.in: add init script for Red Hat /etc/init.d
4610 * configure.in: add support for specifying a style of init script
4613 2003-03-31 Havoc Pennington <hp@redhat.com>
4615 Fix some annoying DBusString API and fix all affected code.
4617 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
4619 (_dbus_string_get_data): change to return string instead of using
4621 (_dbus_string_get_const_data): ditto
4622 (_dbus_string_get_data_len): ditto
4623 (_dbus_string_get_const_data_len): ditto
4625 2003-03-31 Havoc Pennington <hp@redhat.com>
4627 * bus/main.c (main): fix up the command line arguments to be nicer
4629 2003-03-31 Havoc Pennington <hp@redhat.com>
4631 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
4632 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
4633 final location that lands in the config file
4635 * bus/config-loader-expat.c (bus_config_load): fix type of
4638 * doc/TODO: remove TODO item for dbus_bus_get()
4640 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
4642 2003-03-31 Havoc Pennington <hp@pobox.com>
4644 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
4645 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
4646 argument since they are always client side
4648 * dbus/dbus-server.c (dbus_server_get_address): new function
4650 * bus/main.c (main): take the configuration file as an argument.
4652 * test/data/valid-config-files/debug-allow-all.conf: new file to
4653 use with dispatch.c tests for example
4655 * bus/test-main.c (main): require test data dir
4657 * bus/bus.c (bus_context_new): change this to take a
4658 configuration file name as argument
4660 * doc/config-file.txt (Elements): add <servicedir>
4662 * bus/system.conf, bus/session.conf: new files
4664 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
4665 well-known socket if none set
4667 * configure.in: create system.conf and session.conf
4669 2003-03-30 Havoc Pennington <hp@pobox.com>
4671 * bus/config-parser.c: hacking
4673 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
4674 to shut down, since it could cause weirdness with the DBusList
4677 * dbus/dbus-list.c (_dbus_list_test): add tests for the
4678 link-oriented stack routines
4679 (alloc_link): free the mempool if the first alloc from it fails
4681 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
4683 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
4685 (_dbus_string_skip_white): new
4687 * doc/config-file.txt (Elements): add <includedir>
4689 2003-03-28 Havoc Pennington <hp@pobox.com>
4691 * dbus/dbus-string.c (_dbus_string_copy_data_len)
4692 (_dbus_string_copy_data): new functions
4694 2003-03-28 Anders Carlsson <andersca@codefactory.se>
4696 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
4700 * dbus/dbus-memory.c:
4703 2003-03-28 Havoc Pennington <hp@pobox.com>
4705 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
4706 I think it may have just been superstition. Not sure.
4708 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
4709 failures that were not being handled.
4711 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
4713 * dbus/dbus-memory.c: add ability to set number of mallocs in a
4714 row that will fail on out-of-memory.
4716 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
4717 function for testing out-of-memory handling.
4719 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
4720 allocation functions, they do map exactly to the expat ones.
4722 2003-03-27 Havoc Pennington <hp@redhat.com>
4724 * bus/config-loader-libxml.c (bus_config_load): add another error
4727 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4730 Add note about automatic service activation.
4732 * doc/dbus-specification.sgml:
4733 Rename the specification and clarify a few things.
4735 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4738 * dbus/dbus-address.c:
4740 * dbus/dbus-marshal.c:
4741 * dbus/dbus-server-debug-pipe.c:
4742 * dbus/dbus-transport-unix.c:
4743 Fix documentation warnings.
4745 2003-03-26 Havoc Pennington <hp@pobox.com>
4747 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
4748 after every test so it's quick and easy to see which leaked, and
4749 so we test multiple dbus_shutdown() calls
4751 * configure.in: change configure.in XML stuff to also support
4754 * config-loader-libxml.c: some hacking
4756 * config-loader-expat.c: some hacking
4758 * config-parser.c: some hacking, plus tests
4760 2003-03-25 Havoc Pennington <hp@redhat.com>
4762 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
4764 * configure.in: add --with-xml option to specify XML library,
4765 right now only libxml is supported.
4767 * bus/config-loader-libxml.c, config-parser.c: sync some minor
4768 nonworking code between home and work, still just stubs
4770 2003-03-24 Havoc Pennington <hp@redhat.com>
4772 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
4775 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
4776 NULL argument for "message" if the error is a well-known one,
4777 fill in a generic message in this case.
4779 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
4782 * bus/test.c (bus_test_flush_bus): add
4784 * bus/policy.c (bus_policy_test): test code stub
4786 2003-03-24 Havoc Pennington <hp@pobox.com>
4788 * bus/connection.c (bus_connections_setup_connection): set up
4789 the "can this user connect" function, but it always returns
4790 TRUE until we have a config file parser so we can have a config
4791 file that allows connections.
4793 2003-03-23 Havoc Pennington <hp@pobox.com>
4795 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
4796 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
4797 the mutex, so we can check for proper memory management
4800 * dbus/dbus-dataslot.c: remove the mutex from
4801 DBusDataSlotAllocator and lock it manually when using it,
4802 to simplify fitting it into the global slots framework.
4804 * dbus/dbus-threads.c (init_static_locks): rework how we're
4805 handling global locks so they are easily shut down.
4807 * bus/policy.c (bus_policy_append_rule): fix
4809 * bus/test-main.c (main): check for memleaks
4811 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
4812 test suite check for memleaks
4814 * dbus/dbus-memory.c: add support in test mode for tracking
4815 number of outstanding blocks
4817 2003-03-23 Havoc Pennington <hp@pobox.com>
4819 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
4822 * dbus/dbus-hash.h: add ULONG hash keys
4824 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
4825 (_dbus_get_group_id): new function
4827 2003-03-20 Havoc Pennington <hp@redhat.com>
4829 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
4831 (dbus_connection_get_unix_user): new function
4833 2003-03-20 Havoc Pennington <hp@pobox.com>
4835 * bus/connection.c (bus_connection_send_oom_error): assert that
4836 message has a sender
4837 (connection_execute_transaction): ditto
4838 (bus_connection_preallocate_oom_error): fix to set the sender, and
4839 set recipient to the destination service, not the bus driver
4841 * bus/policy.c: hacking
4843 * dbus/dbus-message.c (dbus_message_service_is): new function
4844 (dbus_message_sender_is): new
4846 2003-03-19 Havoc Pennington <hp@redhat.com>
4848 * bus/policy.c: start sketching code for policy restrictions on
4849 what connections can do.
4851 2003-03-18 Havoc Pennington <hp@redhat.com>
4853 * doc/TODO: some notes on high-level todo items. Little nitpick
4854 stuff is all in @todo, so no need to add it here.
4856 * doc/config-file.txt: some notes on how config file might look
4858 2003-03-18 Anders Carlsson <andersca@codefactory.se>
4864 2003-03-17 Havoc Pennington <hp@redhat.com>
4866 * dbus/dbus-internals.h: add gcc attributes so that
4867 our printf-style functions warn on bad arguments to
4870 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4873 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4876 2003-03-17 Havoc Pennington <hp@redhat.com>
4878 * bus/test-main.c (main): make it print something as it runs
4879 so make check doesn't look stuck
4881 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
4882 from CVS, now obsolete
4884 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4886 * bus/dispatch.c: (bus_dispatch):
4887 Refetch the service name since it may have been reallocated
4888 when dbus_message_set_sender was called.
4890 * dbus/dbus-sysdeps.c: (_dbus_accept):
4891 Add address and address length variables and use them to stop
4892 valgrind from complaining.
4894 2003-03-17 Havoc Pennington <hp@pobox.com>
4896 All tests pass, no memleaks, no valgrind complaints.
4898 * bus/test.c: refcount handler_slot
4900 * bus/connection.c (bus_connections_new): refcount
4901 connection_data_slot
4903 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
4904 bytes so that auth scripts pass.
4906 * bus/dispatch.c: init message_handler_slot so it gets allocated
4909 * bus/dispatch.c (message_handler_slot_ref): fix memleak
4911 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
4912 dealloc server_pipe_hash when no longer used for benefit of
4915 * dbus/dbus-auth.c (process_command): memleak fix
4917 * bus/dispatch.c (check_hello_message): memleak fix
4919 2003-03-16 Havoc Pennington <hp@pobox.com>
4921 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
4923 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4925 * bus/activation.c (bus_activation_activate_service): Append
4926 the pending activation entry to the list of pending activations.
4928 2003-03-16 Havoc Pennington <hp@pobox.com>
4930 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
4933 * dbus/dbus-address.c (create_entry): fix OOM handling when
4934 failing to alloc entry->method
4936 2003-03-16 Havoc Pennington <hp@pobox.com>
4938 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
4941 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4942 add some missing dbus_set_result
4944 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
4945 alloc the DBusMessageHandler
4947 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
4948 the transport here, since we call this from the finalizer; it
4949 resulted in a double-finalize.
4951 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
4952 where we tried to use transport->connection that was NULL,
4953 happened when transport was disconnected early on due to OOM
4955 * bus/*.c: adapt to handle OOM for watches/timeouts
4957 * dbus/dbus-transport-unix.c: port to handle OOM during
4960 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
4961 reference to unused bytes instead of a copy
4963 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
4966 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
4969 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
4972 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4974 * doc/dbus-specification.sgml:
4975 Document reply message for ActivateService.
4977 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4979 * bus/activation.c: (bus_pending_activation_entry_free),
4980 (bus_pending_activation_free), (bus_activation_new),
4981 (bus_activation_unref), (bus_activation_service_created),
4982 (bus_activation_activate_service):
4984 * bus/bus.c: (bus_context_new):
4985 * bus/desktop-file.c: (new_section):
4986 * bus/driver.c: (bus_driver_send_service_deleted),
4987 (bus_driver_handle_activate_service):
4988 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
4990 * dbus/dbus-connection.c:
4991 (dbus_connection_send_with_reply_and_block):
4992 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4993 * dbus/dbus-protocol.h:
4994 Make activation work better. Now pending activations will be queued
4995 and the daemon won't try to activate services that are already registered.
4997 2003-03-16 Havoc Pennington <hp@pobox.com>
4999 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5002 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5003 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5005 2003-03-16 Havoc Pennington <hp@pobox.com>
5007 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5008 this. always run the test suite before commit...
5010 * bus/*: adapt to DBusConnection API changes
5012 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5013 requires renaming stuff to avoid dbus_connection_dispatch name
5016 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5019 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5020 separate from _dbus_message_loader_return_buffer()
5022 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5023 this, because it's now always broken to use; the number of
5024 messages in queue vs. the number still buffered by the message
5025 loader is undefined/meaningless. Should use
5026 dbus_connection_get_dispatch_state().
5027 (dbus_connection_dispatch): rename from
5028 dbus_connection_dispatch_message
5030 2003-03-16 Havoc Pennington <hp@pobox.com>
5032 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5035 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5037 * dbus/dbus-connection.c:
5038 (dbus_connection_send_with_reply_and_block):
5039 Decrease connection->n_incoming when removing an entry
5041 * dbus/dbus-dict.c: (dbus_dict_entry_free),
5042 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5043 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5044 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5045 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5046 (dbus_dict_get_byte_array):
5047 Handle NULL arrays and strings. Also add support for byte arrays.
5049 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5050 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5051 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5052 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5053 (_dbus_demarshal_dict), (demarshal_and_validate_len),
5054 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5055 * dbus/dbus-marshal.h:
5056 Add support for marshalling and demarshalling empty arrays and strings.
5058 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5059 (dbus_message_append_string_array),
5060 (dbus_message_iter_get_boolean),
5061 (dbus_message_iter_get_boolean_array),
5062 (dbus_message_iter_get_int32_array),
5063 (dbus_message_iter_get_uint32_array),
5064 (dbus_message_iter_get_double_array),
5065 (dbus_message_iter_get_byte_array),
5066 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5067 (check_message_handling):
5068 Add support for getting empty arrays and dicts.
5070 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5071 Don't do any validation at all for now, that's better than just checking
5074 * test/data/valid-messages/emptiness.message:
5075 New test message with lots of empty arrays.
5077 2003-03-16 Havoc Pennington <hp@pobox.com>
5079 * dbus/dbus-connection.c
5080 (_dbus_connection_queue_received_message_link): new function that
5081 can't fail due to OOM
5083 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5084 new function pops a message together with a list link
5087 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5088 message queuing functions to avoid needing to alloc memory
5090 2003-03-16 Havoc Pennington <hp@pobox.com>
5092 Oops - test code was only testing failure of around 30 of the
5093 mallocs in the test path, but it turns out there are 500+
5094 mallocs. I believe this was due to misguided linking setup such
5095 that there was one copy of dbus_malloc etc. in the daemon and one
5096 in the shared lib, and only daemon mallocs were tested. In any
5097 case, the test case now tests all 500+ mallocs, and doesn't pass
5098 yet, though there are lots of fixes in this patch.
5100 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5101 this so that it doesn't need to allocate memory, since it
5102 has no way of indicating failure due to OOM (and would be
5103 annoying if it did).
5105 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5107 * bus/Makefile.am: rearrange to create two self-contained
5108 libraries, to avoid having libraries with overlapping symbols.
5109 that was resulting in weirdness, e.g. I'm pretty sure there
5110 were two copies of global static variables.
5112 * dbus/dbus-internals.c: move the malloc debug stuff to
5115 * dbus/dbus-list.c (free_link): free list mempool if it becomes
5118 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5120 * dbus/dbus-address.c (dbus_parse_address): free list nodes
5123 * bus/dispatch.c (bus_dispatch_add_connection): free
5124 message_handler_slot when no longer using it, so
5125 memory leak checkers are happy for the test suite.
5127 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5129 * bus/bus.c (new_connection_callback): disconnect in here if
5130 bus_connections_setup_connection fails.
5132 * bus/connection.c (bus_connections_unref): fix to free the
5134 (bus_connections_setup_connection): if this fails, don't
5135 disconnect the connection, just be sure there are no side
5138 * dbus/dbus-string.c (undo_alignment): unbreak this
5140 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5142 (_dbus_auth_new): fix the order in which we free strings
5145 * bus/connection.c (bus_connection_disconnected): fix to
5146 not send ServiceDeleted multiple times in case of memory
5149 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5150 get the base service name
5151 (dbus_bus_register_client): don't return base service name,
5152 instead store it on the DBusConnection and have an accessor
5154 (dbus_bus_register_client): rename dbus_bus_register()
5156 * bus/dispatch.c (check_hello_message): verify that other
5157 connections on the bus also got the correct results, not
5158 just the one sending hello
5160 2003-03-15 Havoc Pennington <hp@pobox.com>
5162 Make it pass the Hello handling test including all OOM codepaths.
5163 Now to do other messages...
5165 * bus/services.c (bus_service_remove_owner): fix crash when
5166 removing owner from an empty list of owners
5167 (bus_registry_ensure): don't leave service in the list of
5168 a connection's owned services if we fail to put the service
5171 * bus/connection.c (bus_connection_preallocate_oom_error): set
5172 error flag on the OOM error.
5174 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5175 handle _dbus_transport_set_connection failure
5177 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5178 to create watches up front and simply enable/disable them as
5180 (unix_connection_set): this can now fail on OOM
5182 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5183 of enabling/disabling a watch or timeout.
5185 * bus/loop.c (bus_loop_iterate): don't touch disabled
5188 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5190 2003-03-15 Havoc Pennington <hp@pobox.com>
5192 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5193 write useful test code, after all that futzing around ;-)
5195 Test does not yet pass because we can't handle OOM in
5196 _dbus_transport_messages_pending (basically,
5197 dbus_connection_preallocate_send() does not prealloc the write
5198 watch). To fix this, I think we need to add new stuff to
5199 set_watch_functions, namely a SetEnabled function so we can alloc
5200 the watch earlier, then enable it later.
5202 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5203 dbus-memory.c to the convenience lib
5205 * bus/test.c: rename some static functions to keep them clearly
5206 distinct from stuff in connection.c. Handle client disconnection.
5208 2003-03-14 Havoc Pennington <hp@pobox.com>
5210 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5211 transport, tests more of the real codepath. Set up clients
5212 with bus_setup_debug_client.
5214 * bus/test.c (bus_setup_debug_client): function to set up debug
5215 "clients" on the main loop
5217 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5220 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5223 * dbus/dbus-server-debug.c: support a debug server based on pipes
5225 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5226 (_dbus_close): new function
5228 * configure.in: check for socketpair
5230 2003-03-14 Havoc Pennington <hp@redhat.com>
5232 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5235 * dbus/dbus-transport-debug.c: rework this a good bit to be
5236 less complicated. hopefully still works.
5238 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5241 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5244 * dbus/dbus-message.c (dbus_message_copy): rename from
5245 dbus_message_new_from_message, fix it up to copy
5246 all the message fields, add test case
5248 * bus/dispatch.c (bus_dispatch_test): add some more test code,
5249 not quite passing yet
5251 2003-03-14 Havoc Pennington <hp@pobox.com>
5253 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5254 until no work remains" in test code. (the large diff here
5255 is just code movement, no actual changes)
5257 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5258 1, no point waiting around for test code.
5259 (_dbus_server_debug_accept_transport): unref the timeout
5260 after adding it (right?)
5262 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5264 2003-03-13 Havoc Pennington <hp@redhat.com>
5266 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5269 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5272 * dbus/dbus-connection.h: Make AddWatchFunction and
5273 AddTimeoutFunction return a bool so they can fail on out-of-memory
5275 * bus/bus.c (bus_context_new): set up timeout handlers
5277 * bus/connection.c (bus_connections_setup_connection): set up
5280 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5283 * bus/bus.c (bus_context_new): adapt to changes
5285 * bus/connection.c: adapt to changes
5287 * test/watch.c: adapt to DBusWatch changes
5289 * bus/dispatch.c (bus_dispatch_test): started adding this but
5292 2003-03-14 Anders Carlsson <andersca@codefactory.se>
5294 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5296 2003-03-13 Havoc Pennington <hp@pobox.com>
5298 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5299 set up a test framework as for the library
5301 2003-03-12 Havoc Pennington <hp@pobox.com>
5303 Throughout: purge global variables, introduce BusActivation,
5304 BusConnections, BusRegistry, etc. objects instead.
5306 * bus/bus.h, bus/bus.c: introduce BusContext as a global
5309 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5310 going to redo this a bit differently I think
5312 2003-03-12 Havoc Pennington <hp@redhat.com>
5314 Mega-patch that gets the message bus daemon initially handling
5315 out-of-memory. Work still needed. Also lots of random
5316 moving stuff to DBusError instead of ResultCode.
5318 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5320 * dbus/dbus-connection.c
5321 (dbus_connection_send_with_reply_and_block): use DBusError
5323 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5326 * dbus/dbus-connection.c (dbus_connection_send): drop the result
5327 code here, as the only failure possible is OOM.
5329 * bus/connection.c (bus_connection_disconnect):
5330 rename bus_connection_disconnected as it's a notification only
5332 * bus/driver.c (bus_driver_handle_acquire_service): don't free
5333 "name" on get_args failure, should be done by get_args;
5334 don't disconnect client for bad args, just return an error.
5335 (bus_driver_handle_service_exists): ditto
5337 * bus/services.c (bus_services_list): NULL-terminate returned array
5339 * bus/driver.c (bus_driver_send_service_lost)
5340 (bus_driver_send_service_acquired): send messages from driver to a
5341 specific client to the client's unique name, not to the broadcast
5344 * dbus/dbus-message.c (decode_header_data): reject messages that
5345 contain no name field
5346 (_dbus_message_get_client_serial): rename to
5347 dbus_message_get_serial and make public
5348 (_dbus_message_set_serial): rename from set_client_serial
5349 (_dbus_message_set_reply_serial): make public
5350 (_dbus_message_get_reply_serial): make public
5352 * bus/connection.c (bus_connection_foreach): allow stopping
5353 iteration by returning FALSE from foreach function.
5355 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5356 (dbus_connection_free_preallocated_send)
5357 (dbus_connection_preallocate_send): new API for sending a message
5358 without possibility of malloc failure.
5359 (dbus_connection_send_message): rename to just
5360 dbus_connection_send (and same for whole function family)
5362 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5364 * dbus/dbus-sysdeps.c (_dbus_exit): new function
5366 * bus/activation.c: handle/return errors
5368 * dbus/dbus-errors.h: add more DBUS_ERROR #define
5370 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5371 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5372 (_dbus_result_from_errno): move to this file
5374 2003-03-10 Anders Carlsson <andersca@codefactory.se>
5376 * dbus/dbus-marshal.c:
5377 (_dbus_marshal_set_string):
5378 Take a length argument so we can marshal the correct string
5381 (_dbus_marshal_dict), (_dbus_demarshal_dict),
5382 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5383 (_dbus_marshal_test):
5384 * dbus/dbus-marshal.h:
5385 Add support for marshalling and demarshalling dicts.
5387 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5388 Add support for TYPE DICT.
5390 * dbus/dbus-message.c: (set_string_field):
5391 Adjust header padding.
5393 (dbus_message_append_args_valist), (dbus_message_append_dict),
5394 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5395 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5396 (check_message_handling), (check_have_valid_message):
5397 * dbus/dbus-message.h:
5398 Add functions for setting and getting dicts.
5400 * dbus/dbus-protocol.h:
5406 * doc/dbus-specification.sgml:
5407 Add information about how dicts are marshalled.
5409 * test/data/invalid-messages/dict-with-nil-value.message:
5410 * test/data/invalid-messages/too-short-dict.message:
5411 * test/data/valid-messages/dict-simple.message:
5412 * test/data/valid-messages/dict.message:
5413 Add sample messages containing dicts.
5415 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5417 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5419 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5422 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5423 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5424 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5425 (dbus_dict_set_double), (dbus_dict_set_string),
5426 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5427 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5428 (dbus_dict_set_string_array), (_dbus_dict_test):
5430 Fix according to comments from Havoc.
5432 2003-03-06 Michael Meeks <michael@server.home>
5434 * configure.in: if we don't have kde-config, disable have_qt.
5436 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5441 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5442 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5443 (dbus_dict_remove), (dbus_dict_get_value_type),
5444 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5445 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5446 (dbus_dict_put_double), (dbus_dict_put_string),
5447 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5448 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5449 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5450 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5451 (dbus_dict_get_double), (dbus_dict_get_string),
5452 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5453 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5454 (dbus_dict_get_string_array), (_dbus_dict_test):
5456 Add DBusDict implementation
5458 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5462 2003-03-04 Havoc Pennington <hp@pobox.com>
5464 * test/data/auth/*: adapt to changes
5466 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5467 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5470 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5471 more stuff from being in a context name, to make the protocol
5472 simpler to deal with
5474 * dbus/dbus-errors.c (dbus_error_has_name): new function
5475 (dbus_error_is_set): new function
5477 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5478 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5480 * dbus/dbus-connection.c (dbus_connection_flush): also read
5481 messages during a flush operation
5483 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5485 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5487 * configure.in: Check for gethostbyname on Solaris.
5489 * dbus/dbus-transport.c: (_dbus_transport_open):
5490 Remove duplicate "tcp" entry.
5492 * doc/dbus-specification.sgml:
5493 Clarify some things.
5495 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5497 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5498 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5499 (_dbus_keyring_test):
5500 * dbus/dbus-md5.c: (_dbus_md5_compute):
5501 * dbus/dbus-sha.c: (_dbus_sha_compute):
5504 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5506 * README: Add some things.
5508 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5510 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5511 after case DBUS_TYPE_BOOELAN.
5513 2003-03-02 Havoc Pennington <hp@pobox.com>
5515 * test/break-loader.c (randomly_set_extreme_ints): add test that
5516 sets really huge and small integers
5518 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5519 that length of boolean array fits in the string, and that
5520 string has room for boolean value in single-bool case.
5522 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5523 optional value to "ALIGN" command which is what to fill the
5526 * test/data/valid-messages/no-padding.message: add regression
5527 test for the message padding problem
5529 2003-03-02 Havoc Pennington <hp@pobox.com>
5531 * dbus/dbus-message.c (decode_header_data): fix to always init
5532 message_padding, from Benjamin Dauvergne
5534 2003-03-02 Havoc Pennington <hp@pobox.com>
5540 2003-03-01 Joe Shaw <joe@assbarn.com>
5542 * configure.in: Check for "struct cmsgcred" and try to access its
5543 members for BSD-like unices.
5545 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5546 _dbus_read_credentials_unix_socket().
5547 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5548 read() for reading the credential byte off the unix socket. Use
5549 struct cmsgcred on systems that support it.
5551 2003-02-27 Alexander Larsson <alexl@redhat.com>
5555 Make gthreads-2.0 dependency optional. Don't build thread test if
5558 2003-02-27 Havoc Pennington <hp@pobox.com>
5560 * dbus/dbus-connection.c
5561 (dbus_connection_send_message_with_reply_and_block): fix doh!
5562 doh! doh! bug that resulted in never removing a reply from the
5563 queue, no wonder we called get_reply_serial so much ;-)
5565 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5566 and client serial instead of demarshaling them every time
5568 2003-02-27 Havoc Pennington <hp@pobox.com>
5570 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5571 more inlined, using dbus-string-private.h, speeds things up
5574 * dbus/dbus-string.c (_dbus_string_free): apply align offset
5575 when freeing the string
5576 (_dbus_string_steal_data): fix for align offset
5577 (undo_alignment): new function
5579 2003-02-26 Havoc Pennington <hp@redhat.com>
5581 All kinds of audit fixes from Owen, plus initial attempt to
5582 handle unaligned memory returned from malloc.
5584 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5585 leave room for align_offset and nul byte
5586 (fixup_alignment): function to track an align_offset and
5587 ensure real->str is aligned
5588 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5589 to allow a nul byte plus align offset
5590 (_dbus_string_lock): fix overflow issue
5591 (_dbus_string_init_const_len): add assertions on sanity of len,
5592 assign allocated to be ALLOCATION_PADDING larger than len
5593 (set_length): fixup the overflow handling
5594 (_dbus_string_get_data_len): fix overflow in assertion
5595 (open_gap): detect overflow in size of gap to be opened
5596 (_dbus_string_lengthen): add overflow check
5597 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5598 (_dbus_string_append): add overflow check
5599 (_dbus_string_append_unichar): overflow
5600 (_dbus_string_delete): fix overflow in assertion
5601 (_dbus_string_copy_len): overflow in assertion
5602 (_dbus_string_replace_len): overflows in assertions
5603 (_dbus_string_find): change to implement in terms of
5604 _dbus_string_find_to
5605 (_dbus_string_find_to): assorted fixage
5606 (_dbus_string_equal_c_str): assert c_str != NULL,
5607 fix logic so the function works
5608 (_dbus_string_ends_with_c_str): fix overflow thingy
5609 (_dbus_string_base64_encode): overflow fix
5610 (_dbus_string_validate_ascii): overflow
5611 (_dbus_string_validate_nul): overflow
5613 2003-02-26 Havoc Pennington <hp@redhat.com>
5615 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
5617 2003-02-26 Alexander Larsson <alexl@redhat.com>
5620 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
5622 * dbus/dbus-connection.c:
5623 * dbus/dbus-connection.h:
5624 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
5625 Add dbus_connection_set_wakeup_main_function and use it when queueing
5626 incoming and outgoing messages.
5629 * dbus/dbus-dataslot.c:
5630 Threadsafe usage of DBusDataSlotAllocator
5632 * dbus/dbus-message.c: (dbus_message_get_args_iter):
5635 * dbus/dbus-server-unix.c:
5638 * glib/dbus-gmain.c:
5639 Implement the new wakeup functions for glib.
5642 * glib/test-thread-client.c:
5643 * glib/test-thread-server.c:
5644 * glib/test-thread.h:
5645 Initial cut at some thread test code. Not really done yet.
5647 2003-02-26 Havoc Pennington <hp@pobox.com>
5649 * dbus/dbus-connection.c
5650 (dbus_connection_send_message_with_reply_and_block): fix crash
5651 where we ref'd the outgoing message instead of the returned reply
5653 * dbus/dbus-transport-unix.c (do_authentication): check read watch
5654 at the end of this function, so if we didn't need to read for
5655 authentication, we reinstall it for receiving messages
5657 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
5658 a NULL sender for peer-to-peer case
5660 * dbus/dbus-transport-unix.c (check_read_watch): handle
5661 !authenticated case correctly
5663 * glib/dbus-gmain.c: add support for DBusServer
5665 * dbus/dbus-server.c: add data slot support
5667 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
5668 return values and handle errors
5670 * dbus/dbus-dataslot.c: factor out the data slot stuff from
5673 * Doxyfile.in (INPUT): add glib subdir
5675 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
5676 setup_with_g_main instead of hookup_with_g_main; write docs
5678 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5680 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
5681 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5682 * dbus/dbus-message.c: (dbus_message_append_boolean),
5683 (dbus_message_append_boolean_array),
5684 (dbus_message_get_args_valist), (_dbus_message_test):
5685 * dbus/dbus-message.h:
5686 * doc/dbus-specification.sgml:
5687 Various fixes as pointed out by Havoc.
5689 * test/data/invalid-messages/bad-boolean-array.message:
5690 * test/data/invalid-messages/bad-boolean.message:
5691 Add invalid boolean value test cases.
5693 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5695 * dbus/dbus-internals.c: (_dbus_type_to_string):
5696 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5697 (_dbus_marshal_validate_arg):
5698 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5699 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5700 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
5701 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
5702 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
5703 (dbus_message_iter_get_double),
5704 (dbus_message_iter_get_boolean_array), (message_iter_test):
5705 * dbus/dbus-message.h:
5706 * dbus/dbus-protocol.h:
5707 * doc/dbus-specification.sgml:
5708 * test/data/valid-messages/lots-of-arguments.message:
5709 Add support for boolean and boolean array types.
5711 2003-02-23 Havoc Pennington <hp@pobox.com>
5713 * dbus/dbus-keyring.c: finish most of this implementation and
5716 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
5717 these barf if the error isn't cleared to NULL
5719 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
5720 (_dbus_create_directory): new function
5722 * dbus/dbus-errors.c (dbus_set_error): fix warning
5724 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
5725 (_dbus_string_hex_decode): new function
5726 (test_hex_roundtrip): test code
5728 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
5730 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
5732 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
5733 the save-to-temp/rename trick to atomically write the new file
5734 (_dbus_string_parse_uint): new function
5736 2003-02-22 Havoc Pennington <hp@pobox.com>
5738 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
5740 2003-02-22 Havoc Pennington <hp@pobox.com>
5742 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
5743 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
5745 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
5747 * dbus/test/data/sha-1: add US government test suite for SHA-1
5749 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5751 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5752 Make string arrays NULL-terminated.
5754 * dbus/dbus-memory.c: (dbus_free_string_array):
5755 * dbus/dbus-memory.h:
5756 New function for freeing NULL-terminated string arrays.
5758 * dbus/dbus-message-builder.c: (append_quoted_string),
5759 (_dbus_message_data_load):
5760 Add support for array types.
5762 * dbus/dbus-message.c: (check_message_handling):
5763 Add more types as test cases.
5765 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
5766 (_dbus_string_parse_double):
5767 Add the start offset to the end offset.
5769 * test/data/valid-messages/lots-of-arguments.message:
5770 New test message with lots of arguments.
5772 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5774 * dbus/dbus-message.c: (dbus_message_append_nil),
5775 (dbus_message_append_int32), (dbus_message_append_uint32),
5776 (dbus_message_append_double), (dbus_message_append_string),
5777 (dbus_message_append_int32_array),
5778 (dbus_message_append_uint32_array),
5779 (dbus_message_append_double_array),
5780 (dbus_message_append_byte_array),
5781 (dbus_message_append_string_array):
5782 Fix all out-of-memory handling in these functions.
5784 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5786 * dbus/dbus-message.c: (dbus_message_append_nil):
5789 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5791 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5792 (dbus_message_append_nil), (dbus_message_append_int32_array),
5793 (dbus_message_append_uint32_array),
5794 (dbus_message_append_double_array),
5795 (dbus_message_append_byte_array),
5796 (dbus_message_append_string_array), (dbus_message_get_args_valist),
5797 (dbus_message_iter_get_int32_array),
5798 (dbus_message_iter_get_uint32_array),
5799 (dbus_message_iter_get_double_array),
5800 (dbus_message_iter_get_byte_array),
5801 (dbus_message_iter_get_string_array):
5803 * dbus/dbus-message.h:
5804 Add functions for appending and getting arrays.
5806 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5808 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
5809 element size at least 8 bytes, fixes mempool tests on
5812 2003-02-20 Alexander Larsson <alexl@redhat.com>
5814 * dbus/dbus-transport-unix.c (unix_do_iteration):
5815 Unlock the connection mutex during a blocking select call.
5816 Add todo about how we need a way to wake up the select.
5818 * dbus/dbus-connection-internal.h:
5819 * dbus/dbus-connection.c:
5820 Add _dbus_connection_lock and _dbus_connection_unlock.
5822 2003-02-19 Havoc Pennington <hp@pobox.com>
5824 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
5825 Doxyfile.in, not Doxyfile
5827 * dbus/dbus-keyring.c: do some hacking on this
5829 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
5831 * dbus/dbus-errors.c (dbus_set_error_const): do not call
5833 (dbus_set_error): remove dbus_error_init, check for message ==
5834 NULL *before* we sprintf into it, and add @todo about including
5835 system headers in this file
5837 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
5839 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
5841 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
5842 get various bits of user information based on either username
5844 (_dbus_homedir_from_username): new function
5846 2003-02-19 Anders Carlsson <andersca@codefactory.se>
5849 Add check for nonposix getpwnam_r
5851 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5852 Align the pool element size to a sizeof (void *) boundary.
5854 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5855 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5856 General Solaris fixes.
5858 * test/data/valid-messages/simplest-manual.message:
5859 Explicitly state that we want little-endian packing.
5861 2003-02-19 Mikael Hallendal <micke@codefactory.se>
5863 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5865 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5866 Added to create a transport connecting using a tcp/ip socket.
5868 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5869 to a tcp socket at given host and port.
5870 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5873 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5875 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5876 Added to create a server listening on a TCP/IP socket.
5878 2003-02-19 Havoc Pennington <hp@pobox.com>
5880 Throughout: mop up all the Doxygen warnings and undocumented
5883 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
5884 to search any paths.
5886 * dbus/dbus-threads.c: move global mutex initializers to
5887 dbus-internals.h, multiple prototypes was confusing doxygen
5888 besides being kind of ugly
5890 * Doxyfile (PREDEFINED): have Doxygen define
5891 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
5892 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
5893 (do not abuse the feature! it's for stuff like the autogenerated
5894 macros in dbus-md5.c, not just for things you don't feel like
5897 2003-02-18 Havoc Pennington <hp@pobox.com>
5899 * dbus/dbus-string.c (_dbus_string_zero): new function
5901 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
5902 wrap it in some dbus-friendly API
5904 * dbus/dbus-types.h: add 16-bit types
5906 2003-02-18 Joe Shaw <joe@assbarn.com>
5908 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
5909 credentials from our currently running process.
5910 (get_word): Fix a buglet where we were copying the entire length
5911 instead of relative to our position.
5913 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
5914 keys on the stack... it's 640k of data.
5916 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
5917 read the credentials byte off the socket, even if we don't have
5919 (_dbus_poll): Implement poll() using select() for systems which
5922 * glib/test-dbus-glib.c (main): Print out an error if no
5923 parameters are given.
5925 * test/data/auth/fallback.auth-script: Added. Tests that a client
5926 can fallback to a secondary auth mechanism if the first fails.
5928 2003-02-18 Havoc Pennington <hp@pobox.com>
5932 2003-02-17 Havoc Pennington <hp@pobox.com>
5934 * doc/dbus-specification.sgml: lots of cosmetic
5935 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
5936 env variable to DBUS_BUS_ADDRESS, s/client/application/,
5937 s/server/bus/ (except in authentication section). Add a section
5938 "Message Bus Message Routing"
5940 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
5946 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5948 * doc/dbus-specification.sgml:
5949 Specification updates.
5951 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5953 * bus/activation.c: (bus_activation_init), (child_setup),
5954 (bus_activation_activate_service):
5956 * bus/main.c: (main):
5957 Set DBUS_ADDRESS environment variable.
5959 * dbus/dbus-errors.c: (dbus_set_error):
5960 Don't use va_copy since that's a C99 feature.
5962 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
5963 (_dbus_spawn_async):
5964 * dbus/dbus-sysdeps.h:
5965 Add child_setup_func to _dbus_spawn_async.
5967 * doc/dbus-specification.sgml:
5968 Update specification.
5970 * test/spawn-test.c: (setup_func), (main):
5973 2003-02-17 Alexander Larsson <alexl@redhat.com>
5975 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
5978 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5982 * doc/dbus-test-plan.sgml:
5983 Add test plan document.
5988 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5990 * dbus/dbus-message.c: (decode_header_data),
5991 (_dbus_message_loader_return_buffer):
5992 Set the header padding amount when loading a message.
5994 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5996 * bus/dispatch.c: (send_one_message):
5997 Only send broadcast messages to registered connections.
5999 * dbus/dbus-message.c: (dbus_message_name_is):
6000 * dbus/dbus-message.h:
6001 New convenience function.
6003 * dbus/dbus-transport-debug.c: (do_reading):
6004 Only dispatch one message per run.
6007 * test/bus-test.c: (new_connection_callback), (die),
6008 (test_hello_client1_handler), (test_hello_client2_handler),
6009 (test_hello_replies), (main):
6011 * test/bus-test-loop.[ch]:
6014 2003-02-16 Havoc Pennington <hp@pobox.com>
6016 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6017 backward conditional
6019 2003-02-16 Alexander Larsson <alexl@redhat.com>
6021 * dbus/dbus-connection.c:
6022 Implement sent_message_with_reply. (with_reply_and block is still
6024 Made dispatch_message not lose message if OOM.
6026 * dbus/dbus-errors.h:
6027 Add NoReply error (for reply timeouts).
6029 2003-02-16 Alexander Larsson <alexl@redhat.com>
6031 * dbus/dbus-hash.c (_dbus_hash_table_unref):
6032 Actually free keys and values when destroying hashtable.
6034 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6036 * dbus/dbus-auth.c: (client_try_next_mechanism):
6039 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6040 Return TRUE if there's no thread implementation around.
6042 * glib/dbus-gmain.c: (free_source),
6043 (dbus_connection_hookup_with_g_main):
6044 Make sure to remove the GSource when the connection is finalized.
6046 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6048 * bus/dispatch.c: (bus_dispatch_message_handler):
6049 * dbus/dbus-errors.h:
6050 Return an error if someone tries to send a message to a service
6053 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6055 * bus/activation.c: (load_directory), (bus_activation_init),
6056 (bus_activation_activate_service):
6059 (bus_driver_handle_activate_service), (bus_driver_handle_message):
6060 More work on the activation handling.
6062 * dbus/dbus-errors.h:
6063 Add some error messages
6065 * dbus/dbus-message.c: (dbus_message_new_error_reply):
6066 * dbus/dbus-message.h:
6067 New function that creates an error message.
6069 * dbus/dbus-protocol.h:
6070 Add ACTIVATE_SERVER message.
6072 * dbus/dbus-server-unix.c: (unix_handle_watch),
6073 (_dbus_server_new_for_domain_socket):
6074 Call _dbus_fd_set_close_on_exec.
6076 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6077 (_dbus_spawn_async), (_dbus_disable_sigpipe),
6078 (_dbus_fd_set_close_on_exec):
6079 * dbus/dbus-sysdeps.h:
6080 Add _dbus_fd_set_close_on exec function. Also add function that checks
6081 that all open fds are set to close-on-exec and warns otherwise.
6083 * dbus/dbus-transport-unix.c:
6084 (_dbus_transport_new_for_domain_socket):
6085 Call _dbus_fd_set_close_on_exec.
6087 2003-02-16 Havoc Pennington <hp@pobox.com>
6089 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6090 allow people to avoid setting SIGPIPE to SIG_IGN
6091 (_dbus_connection_new_for_transport): disable SIGPIPE unless
6092 we've been asked not to
6094 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6096 * dbus/dbus-list.c: (_dbus_list_append_link),
6097 (_dbus_list_prepend_link):
6098 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6102 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6105 * bus/activation.c: (bus_activation_entry_free),
6106 (add_desktop_file_entry), (load_directory), (bus_activation_init):
6108 * bus/main.c: (main):
6109 Add simple activation support, doesn't work yet though.
6111 2003-02-15 Zack Rusin <zack@kde.org>
6113 * qt/dbus-qthread.cpp: small casting fix
6115 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6117 * dbus/dbus-errors.c: (dbus_set_error):
6118 * dbus/dbus-errors.h:
6119 Add a few errors and make dbus_set_error void.
6121 * dbus/dbus-sysdeps.c:
6122 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6123 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6124 * dbus/dbus-sysdeps.h:
6125 Add _dbus_spawn_async.
6127 * test/spawn-test.c: (main):
6128 Test for _dbus_spawn_async.
6130 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6132 * dbus/dbus-internals.h:
6133 Fix build without tests.
6135 * dbus/dbus-list.c: (alloc_link):
6136 Fix a segfault when a malloc fails.
6138 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6139 (dbus_malloc0), (dbus_realloc):
6140 Add support for malloc debugging.
6142 2003-02-15 Alexander Larsson <alexl@redhat.com>
6144 * dbus/dbus-threads.c:
6145 * dbus/dbus-threads.h:
6146 Add condvars. Remove static mutext from API.
6147 Implement static mutexes by initializing them from threads_init.
6149 * glib/dbus-gthread.c:
6150 * qt/dbus-qthread.cpp:
6151 Update with the thread api changes.
6156 Turn StaticMutex into normal mutex + init function.
6157 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6158 _dbus_list_append_link, _dbus_list_prepend_link
6161 * dbus/dbus-sysdeps.c:
6162 * dbus/dbus-sysdeps.h:
6163 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6164 _dbus_atomic_dec. Only slow fallback implementation at the moment.
6166 * dbus/dbus-protocol.h:
6167 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6169 * dbus/dbus-message.c:
6170 Make ref/unref atomic.
6173 * dbus/dbus-connection-internal.h:
6174 * dbus/dbus-connection.c:
6175 * dbus/dbus-connection.h:
6177 Change _peek to _borrow,_return & _steal_borrowed.
6178 Change disconnect callback to event.
6179 Make dbus_connection_dispatch_messages reentrant.
6181 * dbus/dbus-transport.c:
6182 Don't ref the connection on calls to the transport
6185 * dbus/dbus-message-handler.c:
6188 * glib/dbus-gmain.c:
6189 Don't use peek_message anymore
6192 * test/debug-thread.c:
6193 * test/debug-thread.h:
6194 Simple thread implementation that asserts() on deadlocks in
6195 single-threaded code.
6198 (main) Call debug_threads_init.
6201 Use disconnect message instead of disconnect callback.
6205 Don't call dbus_connection_set_disconnect_function. Instead export
6206 bus_connection_disconnect.
6209 Call bus_connection_disconnect when we get a disconnected message.
6211 2003-02-15 Havoc Pennington <hp@pobox.com>
6213 * dbus/dbus-message.c (dbus_message_new): fool around with the
6216 2003-02-14 Havoc Pennington <hp@pobox.com>
6218 * dbus/dbus-mempool.c: fail if the debug functions so indicate
6220 * dbus/dbus-memory.c: fail if the debug functions indicate we
6223 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6224 (_dbus_decrement_fail_alloc_counter): debug functions to
6225 simulate memory allocation failures
6227 2003-02-14 Havoc Pennington <hp@pobox.com>
6229 * dbus/dbus-errors.h (struct DBusError): add a word of padding
6232 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6234 * bus/driver.c: (bus_driver_handle_hello):
6236 * bus/services.c: (bus_service_lookup):
6237 Reorder message sending so we get a more sane order.
6239 * test/bus-test.c: (message_handler):
6242 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6244 * bus/driver.c: (bus_driver_send_service_deleted),
6245 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6246 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6247 (bus_driver_send_welcome_message),
6248 (bus_driver_handle_list_services),
6249 (bus_driver_handle_acquire_service),
6250 (bus_driver_handle_service_exists):
6251 * dbus/dbus-bus.c: (dbus_bus_register_client),
6252 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6253 * dbus/dbus-errors.c: (dbus_result_to_string):
6254 * dbus/dbus-errors.h:
6255 * dbus/dbus-message.c: (dbus_message_append_args),
6256 (dbus_message_append_args_valist), (dbus_message_get_args),
6257 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6258 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6259 (dbus_message_iter_get_byte_array),
6260 (dbus_message_iter_get_string_array), (message_iter_test),
6261 (check_message_handling), (_dbus_message_test):
6262 * dbus/dbus-message.h:
6263 * test/bus-test.c: (main):
6264 Change fields to arguments in messages, so that they won't be
6265 confused with header fields.
6267 * glib/test-dbus-glib.c: (main):
6268 Remove append_fields from hello message.
6270 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6272 * dbus/dbus-errors.c:
6273 * dbus/dbus-message.c:
6274 * dbus/dbus-string.c:
6275 Documentation fixes.
6277 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6279 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6281 Implement support for timeouts in dbus-glib.
6283 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6285 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6286 * dbus/dbus-message.c: (process_test_subdir):
6287 * test/break-loader.c: (find_breaks_based_on):
6288 Plug some memory leaks.
6290 2003-02-13 Richard Hult <rhult@codefactory.se>
6292 * bus/main.c: Fix build.
6294 * dbus/dbus-errors.h:
6295 * dbus/dbus-errors.c: Fix copyright for Anders.
6297 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6302 * bus/connection.c: (bus_connection_foreach):
6305 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6306 (unescape_string), (new_section), (parse_section_start),
6307 (parse_key_value), (report_error), (bus_desktop_file_load),
6308 (bus_desktop_file_get_string):
6309 * bus/desktop-file.h:
6310 Use DBusError for error reporting.
6312 * bus/dispatch.c: (send_one_message),
6313 (bus_dispatch_message_handler):
6314 * bus/driver.c: (bus_driver_send_service_deleted),
6315 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6316 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6317 (bus_driver_send_welcome_message),
6318 (bus_driver_handle_list_services),
6319 (bus_driver_handle_acquire_service),
6320 (bus_driver_handle_service_exists):
6321 * bus/loop.c: (bus_loop_run):
6323 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6325 * bus/utils.c: (bus_wait_for_memory):
6327 New files with general utility functions.
6329 * dbus/dbus-internals.h:
6330 Remove _DBUS_HANDLE_OOM.
6332 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6334 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6335 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6336 * dbus/dbus-errors.h:
6337 Add DBusError structure.
6339 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6341 * test/data/valid-messages/standard-acquire-service.message:
6342 * test/data/valid-messages/standard-hello.message:
6343 * test/data/valid-messages/standard-list-services.message:
6344 * test/data/valid-messages/standard-service-exists.message:
6345 Add some standard messages.
6347 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6349 * bus/driver.c: (bus_driver_send_welcome_message),
6350 (bus_driver_handle_list_services),
6351 (bus_driver_handle_acquire_service),
6352 (bus_driver_handle_service_exists), (bus_driver_handle_message):
6353 Update for API changes in libdbus.
6355 * dbus/dbus-message.c: (dbus_message_new_reply):
6356 * dbus/dbus-message.h:
6357 Remove the name argument. The spec states that replies shouldn't
6360 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6362 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6363 (report_error), (bus_desktop_file_load), (lookup_section),
6364 (lookup_line), (bus_desktop_file_get_raw),
6365 (bus_desktop_file_get_string):
6366 * bus/desktop-file.h:
6367 Some fixes, and new functions for getting a key value from a section.
6369 2003-02-13 Havoc Pennington <hp@pobox.com>
6371 * test/data/auth/fail-after-n-attempts.auth-script: new test
6373 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6376 2003-02-13 Havoc Pennington <hp@pobox.com>
6378 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6379 dbus_credentials_match were backward
6381 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6382 NO_CREDENTIALS and ROOT_CREDENTIALS
6384 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6385 into here. Never process more commands after we've reached an
6386 end state; store further data as unused bytes.
6388 * test/data/auth/*: add more auth tests
6390 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6391 command to match exact string and EXPECT_UNUSED to match unused
6394 * test/Makefile.am (dist-hook): fix to dist all the test stuff
6396 2003-02-12 Havoc Pennington <hp@pobox.com>
6398 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6399 \r off of popped lines
6401 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6404 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6407 2003-02-12 Havoc Pennington <hp@pobox.com>
6409 * dbus/Makefile.am: remove break-loader from the build, since it
6412 * configure.in: add --enable-gcov to turn on coverage profiling
6413 flags and disable optimization
6415 2003-02-10 Havoc Pennington <hp@pobox.com>
6417 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6418 initial cut at test framework for DBusAuth from laptop.
6419 Doesn't quite work yet but it compiles and I need to get
6420 it off the 266mhz laptop. ;-)
6422 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6423 fix a memleak in error case
6425 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6428 * bus/desktop-file.c:
6429 * bus/desktop-file.h:
6430 Add a desktop file parser.
6432 2003-02-11 Zack Rusin <zack@kde.org>
6434 * qt/message.[h|cpp]: sample implementation
6435 of the KDE wrapper for DBusMessage
6437 2003-02-09 Zack Rusin <zack@kde.org>
6439 * test/bus-test.c: make_it_compile
6440 * doc/dbus-specification.sgml: minimal semantic fix
6442 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6448 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6451 * dbus/dbus-break-loader.c:
6453 * test/break-loader.c:
6454 Move dbus-break-loader to test/ and rename it to break-loader.
6456 2003-02-02 Havoc Pennington <hp@pobox.com>
6458 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6459 for code to manage cookies in your home directory
6461 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6463 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6464 to authenticate, then disconnect the client.
6466 2003-02-03 Alexander Larsson <alexl@redhat.com>
6468 * dbus/dbus-message.c (dbus_message_append_fields):
6471 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6473 * doc/dbus-specification.sgml:
6474 Update address format section.
6476 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6479 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6480 (message_handler), (new_connection_callback), (loop_quit),
6484 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6486 * bus/driver.c: (bus_driver_handle_service_exists):
6487 Simplify the code a bit.
6489 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6492 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6495 Add libdbus-daemon.la and link to it.
6497 2003-02-01 James Willcox <jwillcox@gnome.org>
6499 * bus/driver.c: (bus_driver_handle_own_service):
6500 Actually include the service reply code in the message.
6502 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6504 * bus/driver.c: (bus_driver_handle_service_exists):
6505 Don't unref the incoming message.
6507 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6509 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6511 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6513 * dbus/dbus-server.c: (dbus_server_listen):
6514 * dbus/dbus-transport.c: (_dbus_transport_open):
6515 ifdef out the calls to the debug transport and server.
6517 2003-02-02 Alexander Larsson <alexl@redhat.com>
6519 * dbus/dbus-watch.c (dbus_watch_get_flags):
6520 Add note in the docs that ERROR or HANGUP won't be returned
6521 and are assumed always on.
6523 * glib/dbus-gmain.c (add_watch):
6524 Always add IO_ERR | IO_HUP
6526 * dbus/dbus-message.h:
6527 Add semicolon after dbus_message_iter_get_string_array().
6528 Makes qt code build again
6530 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6532 * bus/driver.c: (create_unique_client_name),
6533 (bus_driver_handle_hello):
6534 Don't take a name, just use a numeric id to identify
6538 * dbus/dbus-bus.c: (dbus_bus_register_client),
6539 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6541 Add new convenience functions for communicating with the bus.
6543 * dbus/dbus-message.h:
6545 * dbus/dbus-protocol.h:
6548 2003-02-01 Alexander Larsson <alexl@redhat.com>
6550 * dbus/dbus-message.c (dbus_message_append_fields):
6551 Add some more doc comments.
6553 2003-02-01 Havoc Pennington <hp@pobox.com>
6555 * dbus/dbus-break-loader.c (randomly_modify_length): change
6556 a 4-byte value in the message as if it were a length
6558 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6559 execute bit on saved files
6561 2003-02-01 Havoc Pennington <hp@pobox.com>
6563 * dbus/dbus-break-loader.c (main): new program to find messages
6564 that break the loader.
6566 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6567 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6569 * dbus/dbus-string.c (_dbus_string_set_byte): new
6571 2003-01-31 Havoc Pennington <hp@pobox.com>
6573 * dbus/dbus-message.c: refactor the test code to be more general,
6574 in preparation for writing a "randomly permute test cases to
6575 try to break the loader" program.
6577 2003-01-31 Havoc Pennington <hp@pobox.com>
6579 * doc/dbus-specification.sgml: work on the specification
6581 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6582 the protocol version of the message.
6584 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6585 no longer specifies that.
6586 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6589 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6590 "break" for DBUS_TYPE_NIL, remove @todo
6592 2003-01-31 Havoc Pennington <hp@pobox.com>
6594 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6595 just set_is_error/get_is_error as this is a commonly-used
6596 function, and write docs.
6598 2003-01-31 Anders Carlsson <andersca@codefactory.se>
6600 * dbus/dbus-address.c: (dbus_address_entry_free):
6601 Free key and value lists.
6603 * dbus/dbus-internals.c: (_dbus_type_to_string):
6604 Add the types we didn't have.
6606 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6607 (_dbus_marshal_validate_arg):
6610 * dbus/dbus-message.c: (dbus_message_set_sender):
6611 Remove todo about being able to set sender to NULL.
6613 (dbus_message_set_is_error_reply),
6614 (dbus_message_get_is_error_reply):
6615 * dbus/dbus-message.h:
6618 * dbus/dbus-protocol.h:
6619 Add error reply flag.
6621 * test/data/valid-messages/opposite-endian.message:
6622 Add NIL type to test.
6624 2003-01-31 Havoc Pennington <hp@pobox.com>
6626 * doc/dbus-specification.sgml: fully specify the header. Add
6627 flags and major protocol version, and change header/body len to
6630 * dbus/dbus-message-builder.c (append_saved_length): append length
6633 * dbus/dbus-message.c (dbus_message_create_header): change header
6634 length and body length to unsigned. Add the new fields from the
6636 (_dbus_message_loader_return_buffer): unsigned header/body len
6638 2003-01-30 Havoc Pennington <hp@pobox.com>
6640 * dbus/dbus-auth.c: rework to use only REJECTED, no
6643 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
6644 use REJECTED, suggested by Mark McLoughlin
6646 2003-01-30 Havoc Pennington <hp@pobox.com>
6648 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
6649 a better way to report errors here. e.g. "unix address lacks
6650 path" or something. also "no such file" when the path doesn't
6653 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
6655 (dbus_parse_address): add @todo about documenting address format,
6656 and allowing , and ; to be escaped
6658 2003-01-30 Anders Carlsson <andersca@codefactory.se>
6661 Add dbus-address.[ch]
6663 * dbus/dbus-address.c: (dbus_address_entry_free),
6664 (dbus_address_entries_free), (create_entry),
6665 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
6666 (dbus_parse_address), (_dbus_address_test):
6667 * dbus/dbus-address.h:
6668 New files for dealing with address parsing.
6670 * dbus/dbus-connection.c:
6671 Document timeout functions.
6673 * dbus/dbus-message.c:
6674 Document dbus_message_new_from_message.
6676 * dbus/dbus-server-debug.c:
6679 * dbus/dbus-server.c: (dbus_server_listen):
6680 Parse address and use correct server implementation.
6682 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
6683 * dbus/dbus-string.h:
6684 New function with test.
6686 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
6690 * dbus/dbus-transport-debug.c:
6693 * dbus/dbus-transport.c: (_dbus_transport_open):
6694 Parse address and use correct transport implementation.
6696 2003-01-30 Havoc Pennington <hp@pobox.com>
6698 * dbus/dbus-message.c: use message->byte_order instead of
6699 DBUS_COMPILER_BYTE_ORDER throughout.
6700 (dbus_message_create_header): pad header to align the
6701 start of the body of the message to 8-byte boundary
6703 * dbus/dbus-marshal.h: make all the demarshalers take const
6704 DBusString arguments.
6706 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
6707 validate message args here, so we don't have to do slow validation
6708 later, and so we catch bad messages as they are incoming. Also add
6709 better checks on header_len and body_len. Also fill in
6712 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
6713 implemented properly)
6714 (_dbus_string_validate_nul): new function to check all-nul
6716 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
6717 get_arg_end_pos and remove all validation
6718 (_dbus_marshal_validate_arg): actually do validation here.
6720 2003-01-29 Havoc Pennington <hp@pobox.com>
6722 * dbus/dbus-message.c (check_message_handling): fix assertion
6723 failure on set_client_serial
6725 2003-01-28 Havoc Pennington <hp@pobox.com>
6727 * dbus/dbus-server-debug.c: Add doc section comments
6729 * dbus/dbus-transport-debug.c: add doc section comments
6731 2003-01-28 Havoc Pennington <hp@redhat.com>
6733 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
6734 the reverse order from how I had it
6735 (_dbus_string_base64_encode): reverse encoding order. I was
6736 basically byteswapping everything during encoding.
6738 2003-01-28 Anders Carlsson <andersca@codefactory.se>
6740 * dbus/dbus-connection-internal.h:
6741 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
6742 (_dbus_connection_remove_timeout):
6743 Add functions for adding and removing timeouts.
6745 * dbus/dbus-message.c: (dbus_message_new_from_message):
6746 Add new function that takes a message and creates an exact
6747 copy of it, but with the refcount set to 1.
6748 (check_message_handling):
6751 * dbus/dbus-server-protected.h:
6752 * dbus/dbus-server.c: (_dbus_server_init_base),
6753 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
6754 (dbus_server_set_timeout_functions):
6755 (_dbus_server_remove_timeout):
6756 New functions so that a server can add and remove timeouts.
6758 (dbus_server_listen):
6759 Add commented out call to dbus_server_debug_new.
6761 * dbus/dbus-timeout.c: (_dbus_timeout_new):
6762 Actually set the handler, doh.
6764 * dbus/dbus-transport.c: (_dbus_transport_open):
6765 Add commented out call to dbus_transport_debug_client_new.
6768 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
6770 2003-01-28 Havoc Pennington <hp@pobox.com>
6772 * dbus/dbus-message.c (check_message_handling): function to check
6773 on the loaded message, iterates over it etc.
6775 2003-01-28 Havoc Pennington <hp@pobox.com>
6777 * test/Makefile.am (dist-hook): fix make distdir
6779 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
6781 2003-01-27 Havoc Pennington <hp@pobox.com>
6783 * dbus/dbus-mempool.c (time_for_size): replace printf with
6786 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
6787 empty lines; fix the SAVE_LENGTH stuff to be
6788 START_LENGTH/END_LENGTH so it actually works; couple other
6791 * test/Makefile.am (dist-hook): add dist-hook for .message files
6793 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
6794 can be constant or locked.
6795 (_dbus_string_free): allow freeing a const string as
6798 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
6800 * dbus/dbus-test-main.c (main): take an argument which is the
6801 directory containing test data
6803 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
6804 argument to this and load all the messages in test/data/
6805 checking that they can be loaded or not loaded as appropriate.
6807 2003-01-27 Anders Carlsson <andersca@codefactory.se>
6809 * bus/dispatch.c: (bus_dispatch_message_handler):
6810 Dispatch messages sent to services.
6812 * bus/driver.c: (bus_driver_send_service_deleted),
6813 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6814 (bus_driver_send_service_acquired):
6815 Add helper functions for sending service related messages.
6817 (bus_driver_send_welcome_message):
6818 Send HELLO_REPLY instead of WELCOME.
6820 (bus_driver_handle_list_services):
6821 Send LIST_SERVICES_REPLY instead of SERVICES.
6823 (bus_driver_handle_own_service),
6824 (bus_driver_handle_service_exists):
6825 New message handlers.
6827 (bus_driver_handle_message):
6828 Invoke new message handlers.
6830 (bus_driver_remove_connection):
6831 Don't remove any services here since that's done automatically
6832 by bus_service_remove_owner now.
6835 New function signatures.
6837 * bus/services.c: (bus_service_add_owner):
6838 Send ServiceAcquired message if we're the only primary owner.
6840 (bus_service_remove_owner):
6841 Send ServiceAcquired/ServiceLost messages.
6843 (bus_service_set_prohibit_replacement),
6844 (bus_service_get_prohibit_replacement):
6845 Functions for setting prohibit replacement.
6847 (bus_service_has_owner):
6848 New function that checks if a connection is in the owner queue of
6852 Add new function signatures.
6854 * dbus/dbus-list.c: (_dbus_list_test):
6855 Add tests for _dbus_list_remove_last and traversing the list backwards.
6858 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6859 go any further, so return NULL then.
6861 * dbus/dbus-protocol.h:
6862 Add new messages, service flags and service replies.
6864 2003-01-26 Havoc Pennington <hp@pobox.com>
6866 * dbus/dbus-message-builder.c: implement, completely untested.
6868 * test/data/*: add data to be used in testing.
6869 ".message" files are our simple loadable text format.
6870 ".message-raw" will be binary dumps of messages.
6872 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6874 2003-01-26 Havoc Pennington <hp@pobox.com>
6876 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
6878 * dbus/dbus-errors.c (dbus_result_to_string): add
6881 * dbus/dbus-message-builder.c: new file, will contain code to load
6882 up messages from files. Not implemented yet.
6884 2003-01-26 Havoc Pennington <hp@pobox.com>
6886 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
6887 the sender by setting to NULL
6889 2003-01-26 Havoc Pennington <hp@pobox.com>
6891 The unit tests pass, but otherwise untested. If it breaks, the
6892 tests should have been better. ;-)
6894 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
6897 * dbus/dbus-message.c: redo everything so we maintain
6898 message->header as the only copy of the various fields.
6899 This avoids the possibility of out-of-memory in some cases,
6900 for example dbus_message_lock() can't run out of memory anymore,
6901 and avoids extra copying. Figured I may as well go ahead and do
6902 this since it was busted for dbus_message_lock to not return
6903 failure on OOM, and dbus_message_write_header was totally
6904 unchecked for OOM. Also fixed some random other bugs.
6906 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
6907 that strings are nul-terminated. Also, end_pos can be equal
6908 to string length just not greater than, I think.
6909 (_dbus_marshal_set_int32): new function
6910 (_dbus_marshal_set_uint32): new function
6911 (_dbus_marshal_set_string): new function
6913 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
6914 a warning, init timeout_list to NULL
6915 (dbus_connection_send_message): don't use uninitialized variable
6918 * dbus/dbus-string.c (_dbus_string_replace_len): new function
6920 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6922 * bus/driver.c: (bus_driver_handle_hello),
6923 (bus_driver_send_welcome_message):
6926 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6928 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
6929 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6930 (dbus_connection_unref):
6931 * dbus/dbus-marshal.c: (_dbus_marshal_test):
6932 * dbus/dbus-message.c: (dbus_message_unref),
6935 (dbus_message_get_fields):
6936 Remove debugging printout.
6938 (_dbus_message_loader_return_buffer):
6939 Don't store the header string.
6941 (_dbus_message_test):
6944 2003-01-26 Richard Hult <rhult@codefactory.se>
6946 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
6947 the file descriptor list, since it can change under us.
6949 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6951 * glib/dbus-gmain.c: (dbus_connection_prepare),
6952 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
6953 (remove_watch), (dbus_connection_hookup_with_g_main):
6954 Rewrite the glib handling to use its own GSource instead of a
6955 GIOChannel so we can catch messages put in the queue while waiting
6958 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6961 * bus/connection.c: (connection_disconnect_handler),
6962 (connection_watch_callback), (bus_connection_setup):
6963 * bus/dispatch.c: (send_one_message),
6964 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
6965 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
6967 * bus/driver.c: (bus_driver_send_service_deleted),
6968 (bus_driver_send_service_created), (bus_driver_handle_hello),
6969 (bus_driver_send_welcome_message),
6970 (bus_driver_handle_list_services), (bus_driver_remove_connection),
6971 (bus_driver_handle_message):
6973 Refactor code, put the message dispatching in its own file. Use
6974 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
6977 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6979 * dbus/dbus-internals.h:
6980 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
6982 * dbus/dbus-message.c: (dbus_message_get_sender):
6983 * dbus/dbus-message.h:
6984 Implement dbus_message_get_sender.
6986 * dbus/dbus-protocol.h:
6987 Add message and service defines.
6989 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6991 * dbus/dbus-connection.c: (dbus_connection_send_message):
6992 * dbus/dbus-message-internal.h:
6993 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
6994 (dbus_message_write_header):
6995 Remove _dbus_messag_unlock and don't set the client serial on a
6996 message if one already exists.
6998 2003-01-24 Havoc Pennington <hp@pobox.com>
7000 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7003 * bus/driver.c (bus_driver_handle_list_services): fix a leak
7006 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7008 * dbus/dbus-list.c: (alloc_link), (free_link):
7009 Use a memory pool for the links.
7011 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7013 * bus/connection.c: (bus_connection_foreach):
7015 Add new bus_connection_foreach function.
7017 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7018 Add function that broadcasts a message to all clients.
7020 (bus_driver_send_service_created), (bus_driver_handle_hello),
7021 (bus_driver_send_welcome_message),
7022 (bus_driver_handle_list_services), (bus_driver_message_handler):
7023 Implement functions that take care of listing services, and notifying
7024 clients when new services are created.
7026 * bus/services.c: (bus_services_list):
7028 Add new function that returns an array of strings with the currently
7029 registered services.
7032 * glib/dbus-gmain.c:
7033 Update copyright year.
7035 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7037 * dbus/dbus-connection.c: (dbus_connection_send_message):
7038 Unlock the message in case it was sent earlier.
7040 (dbus_connection_send_message_with_reply_and_block):
7041 Remove the reply message from the list.
7043 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7044 Set array_len and new_pos correctly.
7046 (_dbus_marshal_test):
7047 Remove debug output.
7049 * dbus/dbus-message-internal.h:
7050 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7051 New function that returns the reply serial.
7053 (_dbus_message_unlock):
7054 New function that unlocks a message and resets its header.
7056 (dbus_message_append_string_array),
7057 (dbus_message_get_fields_valist),
7058 (dbus_message_iter_get_field_type),
7059 (dbus_message_iter_get_string_array),
7060 (dbus_message_get_fields),
7061 (dbus_message_append_fields_valist):
7062 Handle string arrays.
7064 (dbus_message_set_sender):
7065 Make this function public since the bus daemon needs it.
7067 (decode_header_data):
7068 Set the reply serial to -1 initially.
7070 * dbus/dbus-message.h:
7071 Add dbus_message_set_sender.
7073 2003-01-24 Havoc Pennington <hp@pobox.com>
7075 * doc/dbus-specification.sgml: add some stuff
7077 2003-01-22 Havoc Pennington <hp@pobox.com>
7079 * doc/dbus-specification.sgml: Start to document the protocol.
7081 2003-01-22 Havoc Pennington <hp@pobox.com>
7083 * dbus/dbus-connection.c
7084 (dbus_connection_send_message_with_reply_and_block): add some @todo
7086 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7088 2003-01-21 Havoc Pennington <hp@pobox.com>
7090 (patch untested because can't compile)
7092 * bus/driver.c (create_unique_client_name): make this function
7093 never recycle client names. Also, caller should initialize
7096 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7098 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7100 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7101 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7102 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7103 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7104 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7105 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7106 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7107 * dbus/dbus-marshal.h:
7108 * dbus/dbus-protocol.h:
7109 Add support for marshalling and demarshalling integer, double
7112 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7117 * bus/connection.c: (connection_disconnect_handler):
7118 Remove the connection from the bus driver's list.
7120 (connection_watch_callback): Dispatch messages.
7122 (free_connection_data): Free connection name.
7124 (bus_connection_setup): Add connection to the bus driver's list.
7125 (bus_connection_remove_owned_service):
7126 (bus_connection_set_name), (bus_connection_get_name):
7127 Add functions for setting and getting the connection's name.
7130 Add function headers.
7132 * bus/driver.c: (create_unique_client_name),
7133 (bus_driver_handle_hello_message),
7134 (bus_driver_send_welcome_message), (bus_driver_message_handler),
7135 (bus_driver_add_connection), (bus_driver_remove_connection):
7138 * bus/services.c: (bus_service_free):
7140 New file that handles communication and registreation with the bus
7143 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7145 * dbus/dbus-connection.c: (dbus_connection_send_message):
7146 Add a new client_serial parameter.
7148 (dbus_connection_send_message_with_reply):
7149 Remove a @todo since we've implemented the blocking function.
7151 (dbus_connection_send_message_with_reply_and_block):
7152 New function that sends a message and waits for a reply and
7153 then returns the reply.
7155 * dbus/dbus-connection.h:
7158 * dbus/dbus-errors.c: (dbus_result_to_string):
7159 * dbus/dbus-errors.h:
7160 Add new DBUS_RESULT.
7162 * dbus/dbus-message-internal.h:
7163 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7164 (_dbus_message_set_sender), (dbus_message_write_header),
7165 (dbus_message_new_reply), (decode_header_data),
7166 (_dbus_message_loader_return_buffer), (_dbus_message_test):
7167 * dbus/dbus-message.h:
7168 Add new functions that set the reply serial and sender.
7169 Also marshal and demarshal them correctly and add test.
7171 * dbus/dbus-protocol.h:
7172 Add new DBUS_MESSAGE_TYPE_SENDER.
7175 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7176 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7177 (dbus_connection_hookup_with_g_main):
7178 * glib/test-dbus-glib.c: (main):
7179 Rewrite to use GIOChannel and remove the GSource crack.
7181 * test/echo-client.c: (main):
7182 * test/watch.c: (check_messages):
7183 Update for changed APIs
7185 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7187 * dbus/Makefile.am: Add dbus-timeout.[cħ]
7189 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7190 Create a DBusTimeoutList.
7191 (dbus_connection_set_timeout_functions): Add new function to
7192 set timeout callbacks
7194 * dbus/dbus-connection.h: Add public DBusTimeout API.
7196 * dbus/dbus-message.c: (dbus_message_get_service):
7197 * dbus/dbus-message.h: New function.
7199 * dbus/dbus-server.c: Fix small doc typo.
7201 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7203 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7205 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7206 of the string, just as long as specified.
7208 2003-01-19 Havoc Pennington <hp@pobox.com>
7210 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7213 * dbus/dbus-server.c (dbus_server_set_max_connections)
7214 (dbus_server_get_max_connections, dbus_server_get_n_connections):
7215 keep track of current number of connections, and add API for
7216 setting a max (but haven't implemented enforcing the max yet)
7218 2003-01-18 Havoc Pennington <hp@pobox.com>
7220 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7221 reading/writing if read_watch != NULL or write_watch != NULL.
7223 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7224 the message loader code to actually load message->header and
7225 message->body into the newly-created message.
7227 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7230 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7231 (dbus_connection_get_max_message_size)
7232 (dbus_connection_set_max_live_messages_size)
7233 (dbus_connection_get_max_live_messages_size): implement some
7234 resource limitation functions
7236 * dbus/dbus-resources.c: new file implementing some of the
7237 resource limits stuff
7239 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7240 missing docs, add @todo to handle OOM etc.
7242 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7245 2003-01-18 Havoc Pennington <hp@pobox.com>
7247 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7248 connection if it hasn't been already.
7250 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7251 replace with DisconnectFunction.
7253 2003-01-18 Havoc Pennington <hp@pobox.com>
7255 Building --disable-verbose-mode --disable-asserts --disable-tests
7256 cuts the library from 112K to 45K or so
7258 * configure.in: check for varargs macro support,
7259 add --enable-verbose-mode, --enable-asserts.
7261 * dbus/dbus-internals.h (_dbus_assert): support
7263 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7265 2003-01-18 Havoc Pennington <hp@pobox.com>
7267 * dbus/dbus-test.c: include config.h so that tests actually run
7269 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7270 so the failure mode when that assumption fails will be plenty
7273 2003-01-18 Havoc Pennington <hp@pobox.com>
7275 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7277 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7280 * test/Makefile.am: don't use special variable "TESTS" for echo-*
7281 since we don't want to use those in make check
7283 2003-01-15 Havoc Pennington <hp@redhat.com>
7289 2003-01-15 Havoc Pennington <hp@redhat.com>
7291 * test/Makefile.am: fix so that test source code ends up in the
7292 distribution on make distcheck
7294 2003-01-15 Havoc Pennington <hp@redhat.com>
7300 2003-01-15 Havoc Pennington <hp@redhat.com>
7302 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7303 fix build when --disable-tests
7305 * Makefile.am (EXTRA_DIST): put HACKING in here
7307 * HACKING: document procedure for making a tarball release.
7309 2003-01-14 Anders Carlsson <andersca@codefactory.se>
7311 * bus/connection.c: (connection_error_handler),
7312 (bus_connection_setup):
7313 * bus/main.c: (main):
7314 Make sure that the DBusConnectionData struct is NULLed
7315 out to prevent a segfault.
7317 * dbus/dbus-errors.c: (dbus_result_to_string):
7318 * dbus/dbus-errors.h:
7319 * dbus/dbus-message.c: (dbus_message_get_fields),
7320 (dbus_message_get_fields_valist), (_dbus_message_test):
7321 * dbus/dbus-message.h:
7322 Make dbus_message_get_fields return a result code so we can
7323 track invalid fields as well as oom.
7325 2003-01-11 Havoc Pennington <hp@pobox.com>
7327 * configure.in: change --enable-test/--enable-ansi action-if-given
7328 to enable_foo=$enableval instead of enable_foo=yes
7330 2003-01-08 Havoc Pennington <hp@pobox.com>
7332 * dbus/dbus-string.c (_dbus_string_align_length): new function
7334 * dbus/dbus-test-main.c: move main() for test app here
7336 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7337 symbol to run tests, because dbus-test isn't in the main
7340 Code review nitpicks.
7342 * dbus/dbus-message.c (dbus_message_write_header): add newlines
7343 for people with narrow emacs ;-). Assert client_serial was filled
7344 in. Assert message->name != NULL.
7345 (dbus_message_append_fields): have "first_field_type" arg separate
7346 from va list, needed for C++ binding that also uses varargs IIRC
7347 and helps with type safety
7348 (dbus_message_new): add @todo about using DBusString to store
7349 service/name internally
7350 (dbus_message_new): don't leak ->service and ->name on OOM later
7352 (dbus_message_unref): free the service name
7353 (dbus_message_get_fields): same change to varargs
7354 i.e. first_field_type
7355 (_dbus_message_loader_return_buffer): assert that the message data
7356 is aligned (if not it's a bug in our code). Put in verbose griping
7357 about why we set corrupted = TRUE.
7358 (decode_header_data): add FIXME that char* is evil. Was going to
7359 add FIXME about evil locale-specific string.h strncmp, but just
7360 switched to wacky string-as-uint32 optimization. Move check for
7361 "no room for field name" above get_const_data_len() to avoid
7362 assertion failure in get_const_data_len if we have trailing 2
7363 bytes or the like. Check for service and name fields being
7364 provided twice. Don't leak service/name on error. Require field
7365 names to be aligned to 4 bytes.
7367 * dbus/dbus-marshal.c: move byte swap stuff to header
7368 (_dbus_pack_int32): uscore-prefix
7369 (_dbus_unpack_int32): uscore-prefix
7370 (_dbus_unpack_uint32): export
7371 (_dbus_demarshal_string): add @todo complaining about use of
7373 (_dbus_marshal_get_field_end_pos): add @todo about bad error
7374 handling allowing corrupt data to go unchecked
7376 2003-01-08 Havoc Pennington <hp@redhat.com>
7378 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7379 to the select() as needed for authentication. (should be using
7380 _dbus_poll() not select, but for another day)
7382 * dbus/dbus.h: include dbus/dbus-protocol.h
7384 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7386 * dbus/Makefile.am (dbusinclude_HEADERS): Install
7389 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7391 * dbus/dbus-internals.c: (_dbus_type_to_string):
7392 New function that returns a string describing a type.
7394 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7395 * dbus/dbus-marshal.h:
7396 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7397 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7398 (dbus_message_iter_get_byte_array):
7399 * dbus/dbus-message.h:
7400 Add new convenience functions for appending and getting message fields.
7401 Also add demarshalling routines for byte arrays.
7403 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7405 * dbus/dbus-connection-internal.h:
7406 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7407 (_dbus_connection_get_next_client_serial),
7408 (dbus_connection_send_message):
7409 * dbus/dbus-internals.h:
7410 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7411 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7412 (_dbus_marshal_uint32), (_dbus_demarshal_double),
7413 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7414 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7415 (_dbus_verbose_bytes), (_dbus_marshal_test):
7416 * dbus/dbus-marshal.h:
7417 * dbus/dbus-message-internal.h:
7418 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7419 (dbus_message_write_header), (_dbus_message_lock),
7420 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7421 (dbus_message_get_name), (dbus_message_append_int32),
7422 (dbus_message_append_uint32), (dbus_message_append_double),
7423 (dbus_message_append_string), (dbus_message_append_byte_array),
7424 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7425 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7426 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7427 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7428 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7429 (decode_header_data), (_dbus_message_loader_return_buffer),
7430 (message_iter_test), (_dbus_message_test):
7431 * dbus/dbus-message.h:
7432 * dbus/dbus-protocol.h:
7433 * dbus/dbus-test.c: (main):
7435 * glib/test-dbus-glib.c: (message_handler), (main):
7436 * test/echo-client.c: (main):
7437 * test/watch.c: (check_messages):
7438 Make messages sendable and receivable for real.
7440 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7442 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7443 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7444 * dbus/dbus-message.c: (dbus_message_append_int32),
7445 (dbus_message_append_uint32), (dbus_message_append_double),
7446 (dbus_message_append_string), (dbus_message_append_byte_array):
7447 Handle OOM restoration.
7449 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7451 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7452 (_dbus_demarshal_string), (_dbus_marshal_test):
7453 * dbus/dbus-marshal.h:
7454 * dbus/dbus-message.c: (dbus_message_get_name),
7455 Document these functions.
7457 (dbus_message_append_int32), (dbus_message_append_uint32),
7458 (dbus_message_append_double), (dbus_message_append_string),
7459 (dbus_message_append_byte_array):
7460 * dbus/dbus-message.h:
7461 Add functions for adding message fields of different types.
7463 * dbus/dbus-protocol.h:
7464 Add the different types.
7466 2003-01-05 Havoc Pennington <hp@pobox.com>
7468 * bus/connection.c: implement routines for handling connections,
7469 first thing is keeping a list of owned services on each connection
7470 and setting up watches etc.
7472 * bus/services.c: implement a mapping from service names to lists
7475 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7477 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7478 to use static mutexes for global data
7480 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7481 collection of functions to set/get application-specific data
7482 on the DBusConnection.
7484 2003-01-04 Havoc Pennington <hp@pobox.com>
7486 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7487 (_dbus_poll): new function
7489 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7492 * bus/loop.c: initial code for the daemon main loop
7494 2003-01-04 Havoc Pennington <hp@pobox.com>
7496 * test/watch.c (error_handler): make it safe if the error handler
7497 is called multiple times (if we s/error handler/disconnect
7498 handler/ we should just guarantee it's called only once)
7500 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7501 error handler on disconnect (it's quite possible we should
7502 just change the error handler to a "disconnect handler," I'm
7503 not sure we have any other meaningful errors)
7505 * configure.in: check for getpwnam_r
7507 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7508 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7509 mechanism as in SASL spec, using socket credentials
7511 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7512 (_dbus_send_credentials_unix_socket): new function
7514 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7516 (_dbus_write): only check errno if <0 returned
7517 (_dbus_write_two): ditto
7519 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7521 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7522 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7523 (_dbus_marshal_test):
7524 * dbus/dbus-marshal.h:
7525 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7526 to _dbus_marshal_utf8_string. Also fix some tests.
7528 2002-12-28 Harri Porten <porten@kde.org>
7530 * configure.in: added check for C++ compiler and a very cheesy
7531 check for the Qt integration
7533 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7535 * qt/Makefile.am: added
7537 * qt/.cvsignore: added
7539 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7540 latter, added #ifdef QT_THREAD_SUPPORT guard.
7542 * dbus/Makefile.am: added missing headers for make dist
7544 2002-12-28 Kristian Rietveld <kris@gtk.org>
7546 * dbus/Makefile.am: fixup export-symbols-regex.
7548 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7550 * acinclude.m4: Add this file and put the
7551 PKG_CHECK_MODULE macro in it.
7553 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7555 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7556 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7557 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7558 (_dbus_marshal_test):
7559 Make the demarshalling routines align the pos argument.
7560 Add string marshalling tests and fix the obvious bugs
7563 2002-12-26 Havoc Pennington <hp@pobox.com>
7565 * dbus/dbus-auth.c: fixes fixes fixes
7567 * dbus/dbus-transport-unix.c: wire up support for
7568 encoding/decoding data on the wire
7570 * dbus/dbus-auth.c (_dbus_auth_encode_data)
7571 (_dbus_auth_decode_data): append to target string
7572 instead of nuking it.
7574 2002-12-26 Havoc Pennington <hp@pobox.com>
7576 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7577 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7580 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7581 avoid swap_bytes() overhead (ignoring possible assembly stuff for
7582 now). Main point is because I wanted unpack_uint32 to implement
7584 (_dbus_verbose_bytes): new function
7586 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7588 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7589 mechanism to handle a corrupt message stream
7590 (_dbus_message_loader_new): fix preallocation to only prealloc,
7593 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7594 (_dbus_string_test): enhance tests for copy/move and fix the
7597 * dbus/dbus-transport-unix.c: Hold references in more places to
7598 avoid reentrancy problems
7600 * dbus/dbus-transport.c: ditto
7602 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7603 leak reference count in no-message case
7605 * test/watch.c (do_mainloop): handle adding/removing watches
7606 during iteration over the watches. Also, ref the connection/server
7607 stored on a watch, so we don't try to mangle a destroyed one.
7609 * dbus/dbus-transport-unix.c (do_authentication): perform
7612 * dbus/dbus-auth.c (get_state): add a state
7613 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7614 (_dbus_auth_get_unused_bytes): append the unused bytes
7615 to the passed in string, rather than prepend
7617 * dbus/dbus-transport.c (_dbus_transport_init_base): create
7618 the auth conversation DBusAuth
7620 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
7621 (_dbus_transport_new_for_domain_socket): when creating a
7622 transport, pass in whether it's a client-side or server-side
7623 transport so we know which DBusAuth to create
7625 2002-12-03 Havoc Pennington <hp@pobox.com>
7627 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
7628 _after_ finalizing the derived members
7629 (unix_connection_set): unref watch if we fail to add it
7631 * dbus/dbus-connection.c (dbus_connection_unref): delete the
7632 transport first, so that the connection owned by the
7633 transport will be valid as the transport finalizes.
7635 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
7636 if necessary, and remove watches from the connection.
7638 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
7640 2002-12-26 Anders Carlsson <andersca@codefactory.se>
7642 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7643 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7644 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7645 (_dbus_marshal_test):
7646 * dbus/dbus-marshal.h:
7647 Add string marshal functions and have the demarshal functions
7648 return the new position.
7650 2002-12-25 Havoc Pennington <hp@pobox.com>
7652 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
7653 it is a simple protocol that just maps directly to SASL.
7655 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
7656 initial implementation, not actually used yet.
7658 * dbus/dbus-string.c (_dbus_string_find): new function
7659 (_dbus_string_equal): new function
7660 (_dbus_string_base64_encode): new function
7661 (_dbus_string_base64_decode): new function
7663 2002-12-25 Anders Carlsson <andersca@codefactory.se>
7666 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
7667 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7668 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7669 (_dbus_demarshal_uint32), (_dbus_marshal_test):
7670 * dbus/dbus-marshal.h:
7671 * dbus/dbus-protocol.h:
7672 * dbus/dbus-test.c: (main):
7674 Add un-optimized marshalling/demarshalling routines.
7676 2002-12-25 Harri Porten <porten@kde.org>
7678 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
7680 2002-12-24 Zack Rusin <zack@kde.org>
7682 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
7683 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
7686 2002-12-24 Havoc Pennington <hp@pobox.com>
7688 * glib/dbus-gthread.c: fix include
7690 * glib/dbus-glib.h: rename DBusMessageHandler for now.
7691 I think glib API needs to change, though, as you don't
7692 want to use DBusMessageFunction, you want to use the
7693 DBusMessageHandler object. Probably
7694 dbus_connection_open_with_g_main_loop()
7695 and dbus_connection_setup_g_main_loop() or something like that
7696 (but think of better names...) that just create a connection
7697 that has watch/timeout functions etc. already set up.
7699 * dbus/dbus-connection.c
7700 (dbus_connection_send_message_with_reply): new function just to
7701 show how the message handler helps us deal with replies.
7703 * dbus/dbus-list.c (_dbus_list_remove_last): new function
7705 * dbus/dbus-string.c (_dbus_string_test): free a string that
7708 * dbus/dbus-hash.c: use memory pools for the hash entries
7709 (rebuild_table): be more paranoid about overflow, and
7710 shrink table when we can
7711 (_dbus_hash_test): reduce number of sprintfs and write
7712 valid C89. Add tests for case where we grow and then
7713 shrink the hash table.
7715 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
7717 * dbus/dbus-connection.c (dbus_connection_register_handler)
7718 (dbus_connection_unregister_handler): new functions
7720 * dbus/dbus-message.c (dbus_message_get_name): new
7722 * dbus/dbus-list.c: fix docs typo
7724 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
7725 an object representing a handler for messages.
7727 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7730 * glib/dbus-gthread.c: (dbus_gthread_init):
7731 Don't use the gdbus prefix for public functions.
7733 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7737 Add GLib checks and fixup .pc files
7741 * glib/dbus-gmain.c: (gdbus_connection_prepare),
7742 (gdbus_connection_check), (gdbus_connection_dispatch),
7743 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
7744 (dbus_connection_gsource_new):
7745 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
7746 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
7747 * glib/test-dbus-glib.c: (message_handler), (main):
7750 2002-12-15 Harri Porten <porten@kde.org>
7752 * autogen.sh: check for libtoolize before attempting to use it
7754 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
7757 * .cvsignore: ignore more stamp files
7759 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
7761 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
7762 without make install.
7764 2002-12-15 Havoc Pennington <hp@pobox.com>
7766 * dbus/dbus-threads.c: add thread stubs that a higher library
7767 layer can fill in. e.g. the GLib wrapper might fill them in with
7768 GThread stuff. We still need to use this thread API to
7769 thread-safe-ize the library.
7771 2002-12-12 Havoc Pennington <hp@pobox.com>
7773 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
7774 below new interfaces and include fewer system headers.
7776 * dbus/dbus-sysdeps.c (_dbus_read): new function
7777 (_dbus_write): new function
7778 (_dbus_write_two): new function
7779 (_dbus_connect_unix_socket): new function
7780 (_dbus_listen_unix_socket): new function
7782 * dbus/dbus-message-internal.h: change interfaces to use
7785 2002-12-11 Havoc Pennington <hp@pobox.com>
7787 * dbus/dbus-types.h: add dbus_unichar
7789 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
7791 * dbus/dbus-connection.c (dbus_connection_send_message): return
7794 * dbus/dbus-transport.c: include dbus-watch.h
7796 * dbus/dbus-connection.c: include dbus-message-internal.h
7798 * HACKING: add file with coding guidelines stuff.
7800 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
7801 handling here, for security purposes (as in vsftpd). Not actually
7802 using this class yet.
7804 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
7805 system/libc usage here, as in vsftpd, for ease of auditing (and
7806 should also simplify portability). Haven't actually moved all the
7807 system/libc usage into here yet.
7809 2002-11-25 Havoc Pennington <hp@pobox.com>
7811 * dbus/dbus-internals.c (_dbus_verbose): fix to not
7812 always print the first verbose message.
7814 2002-11-24 Havoc Pennington <hp@pobox.com>
7816 * test/echo-client.c, test/echo-server.c: cheesy test
7819 * configure.in (AC_CHECK_FUNCS): check for writev
7821 * dbus/dbus-message.c (_dbus_message_get_network_data): new
7824 * dbus/dbus-list.c (_dbus_list_foreach): new function
7826 * dbus/dbus-internals.c (_dbus_verbose): new function
7828 * dbus/dbus-server.c, dbus/dbus-server.h: public object
7829 representing a server that listens for connections.
7831 * dbus/.cvsignore: create
7833 * dbus/dbus-errors.h, dbus/dbus-errors.c:
7834 public API for reporting errors
7836 * dbus/dbus-connection.h, dbus/dbus-connection.c:
7837 public object representing a connection that
7838 sends/receives messages. (Same object used for
7839 both client and server.)
7841 * dbus/dbus-transport.h, dbus/dbus-transport.c:
7842 Basic abstraction for different kinds of stream
7843 that we might read/write messages from.
7845 2002-11-23 Havoc Pennington <hp@pobox.com>
7847 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7850 * dbus/dbus-test.c (main): add list test, and include
7851 dbus-test.h as intended
7853 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7854 (_dbus_hash_table_remove_int): return value indicates
7855 whether the entry existed to remove
7857 * dbus/dbus-list.c: add linked list utility class,
7860 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7863 2002-11-23 Havoc Pennington <hp@pobox.com>
7865 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7866 DBUS_END_DECLS to nothing, that should fix this once and for all
7868 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7870 * dbus/dbus-message.c, dbus/dbus-hash.c:
7871 add some missing @brief
7873 2002-11-23 Havoc Pennington <hp@pobox.com>
7875 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
7876 to avoid confusing Doxygen
7878 * dbus/dbus-hash.c: @} not }@
7880 * dbus/dbus-message.c (struct DBusMessage): split out
7883 2002-11-23 Havoc Pennington <hp@pobox.com>
7885 * configure.in: pile on more warning flags if using gcc
7887 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
7888 to document static functions
7890 * configure.in: add summary to end of configure so it
7891 looks nice and attractive
7893 * dbus/dbus-hash.c: finish implementation and write unit
7896 * configure.in: add --enable-tests to enable unit tests
7898 * dbus/dbus-test.c: test program to run unit tests
7899 for all files in dbus/*, initially runs a test for
7902 * dbus/dbus-internals.h: file to hold some internal utility stuff
7904 2002-11-22 Havoc Pennington <hp@redhat.com>
7906 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
7907 "ported" away from Tcl
7909 * dbus/dbus-types.h: header for types such as dbus_bool_t
7911 2002-11-22 Havoc Pennington <hp@redhat.com>
7913 * dbus/dbus.h: fixups for doc warnings
7915 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
7917 (QUIET): make it quiet so we can see warnings
7919 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
7921 2002-11-22 Havoc Pennington <hp@redhat.com>
7923 * Makefile.am: include "Doxyfile" target in all-local
7925 * configure.in: generate the Doxyfile
7927 * Doxyfile.in: move Doxyfile here, so we can use
7928 configure to generate a Doxyfile with the right
7931 2002-11-22 Havoc Pennington <hp@redhat.com>
7933 * dbus/dbus-message.c: move inline docs into .c file
7935 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
7936 so all docs are under doc/
7937 (MAN_EXTENSION): generate man pages. Use extension
7938 ".3dbus" which matches ".3qt" on my system,
7939 I guess this is OK, I don't know really.
7940 (FILE_PATTERNS): look for .c files not .h, makes sense
7943 2002-11-22 Havoc Pennington <hp@pobox.com>
7945 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
7946 because any app can be a server, and any app can be a client,
7947 the bus is a special kind of server.
7949 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
7951 * Doxyfile : adding. Still needs Makefile rules to be generated
7952 automatically (just run "doxygen" in the toplevel dir for now to
7955 * dbus/dbus-message.h : Adding sample docs (javadoc since
7956 resembles gtk-doc a little more)
7958 * dbus/dbus.h : Adding sample docs
7960 2002-11-21 Havoc Pennington <hp@redhat.com>
7962 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
7963 so we can allow ourselves to include files directly,
7964 instead of having to use dbus.h
7966 * dbus/dbus.h: fill in
7968 * dbus/dbus-message.h: sketch out a sample header file.
7969 Include griping if you include it directly instead of
7972 * dbus/dbus-macros.h: new file with macros for extern "C",
7973 TRUE/FALSE, NULL, etc.
7975 * doc/file-boilerplate.c: put include guards in here
7977 2002-11-21 Havoc Pennington <hp@redhat.com>
7979 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
7981 * COPYING: include the GPL as well, and license code
7982 under both AFL and GPL.
7984 2002-11-21 Havoc Pennington <hp@redhat.com>
7986 * acconfig.h: get rid of this
7988 * autogen.sh (run_configure): add --no-configure option
7990 * configure.in: remove AC_ARG_PROGRAM to make
7991 autoconf complain less. add AC_PREREQ.
7992 add AC_DEFINE third arg.
7994 2002-11-21 Anders Carlsson <andersca@codefactory.se>
7997 Fix references so we can distcheck.
7999 2002-11-21 Havoc Pennington <hp@redhat.com>
8001 * Initial module creation