1 2005-01-01 Havoc Pennington <hp@redhat.com>
3 * configure.in: add -Wfloat-equal
5 2005-01-01 Havoc Pennington <hp@redhat.com>
7 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
8 for a variety of reasons '==' doesn't do this.
10 2004-12-31 Havoc Pennington <hp@redhat.com>
12 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
15 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
17 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
19 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
21 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
22 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
23 dbus-protocol.h. Because they are defines and not enums they are not
26 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
28 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
29 dbus_bus_activate_service
31 * python/dbus.py (Bus.activate_service): activate a service on the
34 2004-12-24 Havoc Pennington <hp@redhat.com>
36 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
37 file format has also changed and I haven't adapted to that yet
39 * Makefile.am: load .gcno files from latest gcc
41 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
42 * Patch from Rob Taylor <robtaylor@fastmail.fm>
44 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
47 * python/dbus.py (get_unix_user): Added binding to
48 call dbus_bindings.bus_get_unix_user
50 * python/extract.py: Modified the proto_pat regex to
53 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
55 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
56 better POSIX compliance.
58 2004-12-19 Havoc Pennington <hp@redhat.com>
60 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
61 (_dbus_string_insert_8_aligned): new functions
63 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
65 2004-12-18 Havoc Pennington <hp@redhat.com>
67 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
70 * dbus/dbus-message.c: fix a comment, and add a still-unused
71 not-implemented function
73 * dbus/dbus-marshal.h: fix comment
75 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
77 2004-12-17 Joe Shaw <joeshaw@novell.com>
79 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
80 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
81 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
82 Type.UnderlyingSystemType to get the actual system type
83 underneath. This code previously depended on the broken Mono
84 behavior, which was fixed in 1.1.3.
86 2004-11-27 Havoc Pennington <hp@redhat.com>
88 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
90 (_dbus_string_get_const_data): inline when asserts are disabled
92 * dbus/dbus-message.c: record the _dbus_current_generation of
93 creation so we can complain if dbus_shutdown() is used improperly.
94 Do this only if checks are enabled.
96 * dbus/dbus-connection.c: ditto
98 2004-11-26 Havoc Pennington <hp@redhat.com>
100 * test/glib/test-profile.c: add with_bus mode to profile echoes
101 that go through the bus.
103 * test/glib/run-test.sh: add ability to run test-profile
105 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
108 2004-11-26 Havoc Pennington <hp@redhat.com>
110 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
111 thing was implemented
113 2004-11-26 Havoc Pennington <hp@redhat.com>
115 * test/glib/test-profile.c: tweak a bit, add support for some
116 made-up minimal malloc overhead with plain sockets, since in
117 real life some sort of buffers are unavoidable thus we could
118 count them in the theoretical best case
120 2004-11-26 Havoc Pennington <hp@redhat.com>
122 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
123 where I was trying to cache one too many messages
125 2004-11-26 Havoc Pennington <hp@redhat.com>
127 * dbus/dbus-message.c: reimplement message cache as an array which
128 makes the cache about twice as fast and saves maybe 1.5% overall
130 2004-11-26 Havoc Pennington <hp@redhat.com>
132 * dbus/dbus-threads.c (init_global_locks): forgot to put the
133 message cache lock here
135 2004-11-26 Havoc Pennington <hp@redhat.com>
137 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
138 the "char byte_order" next to each other to save 4 bytes
139 (dbus_message_new_empty_header): reduce preallocation, since the
140 message cache should achieve a similar effect
141 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
142 message cache that keeps a few DBusMessage around in a pool,
143 another 8% speedup or so.
145 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
147 2004-11-25 Havoc Pennington <hp@redhat.com>
149 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
150 to write, without reading or blocking, try it before the poll()
151 and skip the poll() if nothing remains to write. This is about a
152 3% speedup in the echo client/server
154 2004-11-25 Havoc Pennington <hp@redhat.com>
156 The primary change here is to always write() once before adding
157 the write watch, which gives us about a 10% performance increase.
159 * dbus/dbus-transport-unix.c: a number of modifications to cope
160 with removing messages_pending
161 (check_write_watch): properly handle
162 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
163 messages_pending stuff
164 (check_read_watch): properly handle WAITING_FOR_MEMORY and
166 (unix_handle_watch): after writing, see if the write watch can be
168 (unix_do_iteration): assert that write_watch/read_watch are
169 non-NULL rather than testing that they aren't, since they
170 aren't allowed to be NULL. check_write_watch() at the end so
171 we add the watch if we did not finish writing (e.g. got EAGAIN)
173 * dbus/dbus-transport-protected.h: remove messages_pending call,
174 since it resulted in too much inefficient watch adding/removing;
175 instead we now require that the transport user does an iteration
176 after queueing outgoing messages, and after trying the first
177 write() we add a write watch if we got EAGAIN or exceeded our
178 max bytes to write per iteration setting
180 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
183 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
184 freed and then accessed, valgrind flagged this bug, fix it
186 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
187 as the last valid field plus 1, where really it is equal to the
188 last valid field. Corrects some message corruption issues.
190 * dbus/dbus-mainloop.c: verbosity changes
192 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
193 instead of aborting in one of the test codepaths
195 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
196 caused not printing the pid ever again if a verbose was missing
197 the newline at the end
198 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
200 * dbus/dbus-connection.c: verbosity changes;
201 (dbus_connection_has_messages_to_send): new function
202 (_dbus_connection_message_sent): no longer call transport->messages_pending
203 (_dbus_connection_send_preallocated_unlocked): do one iteration to
204 try to write() immediately, so we can avoid the write watch. This
205 is the core purpose of this patchset
206 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
207 dump the outgoing message queue, so nobody will get confused
208 trying to send them or thinking stuff is pending to be sent
210 * bus/test.c: verbosity changes
212 * bus/driver.c: verbosity/assertion changes
214 * bus/dispatch.c: a bunch of little tweaks to get it working again
215 because this patchset changes when/where you need to block.
217 2004-11-23 Havoc Pennington <hp@redhat.com>
219 * test/glib/test-profile.c: modify to accept a plain_sockets
220 argument in which case it will bench plain sockets instead of
221 libdbus, for comparison purposes.
223 2004-11-22 Havoc Pennington <hp@redhat.com>
225 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
226 threads for more time, so sysprof can get a grip on it.
228 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
231 2004-11-13 Havoc Pennington <hp@redhat.com>
233 * test/glib/test-profile.c: fix this thing up a bit
235 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
236 preallocation sizes by a fair bit; not sure if this will be an
237 overall performance win or not, but it does reduce reallocs.
239 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
240 the test hack that forced constant realloc if asserts are
241 disabled, so we can profile sanely. Sprinkle in some
242 _DBUS_UNLIKELY() which are probably pointless, but before I
243 noticed the real performance problem I put them in.
244 (_dbus_string_validate_utf8): micro-optimize this thing a little
245 bit, though callgrind says it didn't help; then special-case
246 ascii, which did help a lot; then be sure we detect nul bytes as
247 invalid, which is a bugfix.
248 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
249 superstition; use memset to nul the padding instead of a manual
251 (_dbus_string_get_length): inline this as a
252 macro; it showed up in the profile because it's used for loop
255 2004-11-10 Colin Walters <walters@verbum.org>
257 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
260 2004-11-09 Colin Walters <walters@verbum.org>
262 * dbus/dbus-string.c (_dbus_string_get_length): New
263 function, writes DBusString to C buffer.
265 * dbus/dbus-string.h: Prototype it.
267 * dbus/dbus-message.c (dbus_message_type_to_string): New
268 function, converts message type into C string.
270 * dbus/dbus-message.h: Prototype it.
272 * bus/selinux.c (bus_selinux_check): Take source pid,
273 target pid, and audit data. Pass audit data to
275 (log_audit_callback): New function, appends extra
277 (bus_selinux_allows_acquire_service): Also take
278 service name, add it to audit data.
279 (bus_selinux_allows_send): Also take message
280 type, interface, method member, error name,
281 and destination, and add them to audit data.
282 (log_cb): Initialize func_audit.
284 * bus/selinux.h (bus_selinux_allows_acquire_service)
285 (bus_selinux_allows_send): Update prototypes
287 * bus/services.c (bus_registry_acquire_service): Pass
288 service name to bus_selinux_allows_acquire_service.
290 * bus/bus.c (bus_context_check_security_policy): Pass
291 additional audit data. Move assignment of dest
294 2004-11-07 Colin Walters <walters@verbum.org>
296 * dbus/dbus-transport-unix.c (do_authentication): Always
297 initialize auth_completed.
299 2004-11-07 Colin Walters <walters@verbum.org>
301 * bus/bus.c (load_config): Break into three
302 separate functions: process_config_first_time_only,
303 process_config_every_time, and process_config_postinit.
304 (process_config_every_time): Move call of
305 bus_registry_set_service_context_table into
306 process_config_postinit.
307 (process_config_postinit): New function, does
308 any processing that needs to happen late
309 in initialization (and also on reload).
310 (bus_context_new): Instead of calling load_config,
311 open config parser here and call process_config_first_time_only
312 and process_config_every_time directly. Later, after
313 we have forked but before changing UID,
314 invoke bus_selinux_full_init, and then call
315 process_config_postinit.
316 (bus_context_reload_config): As in bus_context_new,
317 load parse file inside here, and call process_config_every_time
318 and process_config_postinit.
320 * bus/services.h, bus/services.c
321 (bus_registry_set_service_context_table): Rename
322 from bus_registry_set_sid_table. Take string hash from config
323 parser, and convert them here into SIDs.
325 * bus/config-parser.c (struct BusConfigParser): Have
326 config parser only store a mapping of service->context
328 (merge_service_context_hash): New function.
329 (merge_included): Merge context string hashes instead
330 of using bus_selinux_id_table_union.
331 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
332 simply create a new string hash.
333 (bus_config_parser_unref): Unref it.
334 (start_selinux_child): Simply insert strings into hash,
335 don't call bus_selinux_id_table_copy_over.
337 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
338 (bus_selinux_id_table_copy_over): Delete.
340 2004-11-03 Colin Walters <walters@verbum.org>
342 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
345 2004-11-03 Colin Walters <walters@verbum.org>
347 * bus/test-main.c (test_pre_hook): Fix test logic,
348 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
350 2004-11-02 Colin Walters <walters@redhat.com>
352 * bus/selinux.c (bus_selinux_init): Split into two functions,
353 bus_selinux_pre_init and bus_selinux_post_init.
354 (bus_selinux_pre_init): Just determine whether SELinux is
356 (bus_selinux_post_init): Do everything else.
358 * bus/main.c (main): Call bus_selinux_pre_init before parsing
359 config file, and bus_selinux_post_init after. This ensures that
360 we don't lose the policyreload notification thread that
361 bus_selinux_init created before forking previously.
363 * bus/test-main.c (test_pre_hook): Update for split.
365 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
367 Patch from Johan Fischer <linux@fischaz.com>
369 * mono/doc/Makefile.am (install-data-local): Added directory
372 2004-10-29 Colin Walters <walters@redhat.com>
374 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
375 parameter for fd to write pid to.
377 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
379 * bus/bus.c (bus_context_new): Pass print_pid_fd
380 to _dbus_become_daemon (bug #1720)
382 2004-10-29 Colin Walters <walters@redhat.com>
384 Patch from Ed Catmur <ed@catmur.co.uk>
386 * mono/doc/Makefile.am (install-data-local): Handle
389 2004-10-29 Colin Walters <walters@redhat.com>
391 * bus/.cvsignore, qt/.cvsignore: Update.
393 2004-10-29 Colin Walters <walters@redhat.com>
395 Patch from Kristof Vansant <de_lupus@pandora.be>
397 * configure.in: Detect Slackware.
398 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
399 * bus/rc.messagebus.in: New file.
401 2004-10-29 Colin Walters <walters@redhat.com>
403 * tools/dbus-monitor.c (filter_func): Return
404 DBUS_HANDLER_RESULT_HANDLED in filter function
406 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
408 2004-10-29 Colin Walters <walters@redhat.com>
410 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
412 * bus/services.c (bus_registry_acquire_service):
413 Correctly retrieve service name from DBusString
416 2004-10-29 Colin Walters <walters@redhat.com>
418 * dbus/dbus-glib.h: Update documentation to not
419 refer to internal APIs.
421 2004-10-27 Joe Shaw <joeshaw@novell.com>
423 * mono/Arguments.cs (GetDBusTypeConstructor):
424 type.UnderlyingSystemType will return "System.Byte" if you do it
425 on "byte[]", which is not what we want. So check the type.IsArray
426 property and use System.Array instead.
428 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
430 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
431 the DBusUserInfo structure since this is passed into the function.
432 This would cause a double free when the function that allocated
433 the structure would try to free it when an error occured.
435 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
436 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
437 for service activation to avoid 32bit/64bit parallel install issues
439 2004-10-21 Colin Walters <walters@verbum.org>
441 * AUTHORS: Fix my email address, the @gnu.org one
442 has been bouncing for some time. Also add J5.
444 2004-10-21 Colin Walters <walters@verbum.org>
446 * dbus/dbus-transport-unix.c (do_authentication): Return
447 authentication status to callers.
448 (unix_handle_watch): If we completed authentication this round,
449 don't do another read. Instead wait until the next iteration,
450 after we've read any pending data in the auth buffer.
451 (unix_do_iteration): Ditto.
452 (unix_handle_watch): Updated for new do_authentication prototype.
454 2004-10-18 Colin Walters <walters@verbum.org>
456 * bus/selinux.c (bus_selinux_enabled): Handle
457 --disable-selinux case.
459 2004-10-18 Colin Walters <walters@verbum.org>
461 * bus/selinux.h: Add bus_selinux_enabled.
463 * bus/selinux.c (bus_selinux_enabled): Implement it.
465 * bus/config-parser.c (struct include): Add
466 if_selinux_enabled member.
467 (start_busconfig_child): Parse if_selinux_enabled
468 attribute for include.
469 (bus_config_parser_content): Handle it.
471 * bus/session.conf.in, bus/system.conf.in: Add
472 inclusion of context mapping to default config files;
473 conditional on SELinux being enabled.
475 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
477 * test/data/invalid-config-files/badselinux-1.conf,
478 test/data/invalid-config-files/badselinux-2.conf:
479 Test files for bad syntax.
481 2004-10-17 Colin Walters <walters@verbum.org>
483 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
484 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
485 format specifier mismatches.
487 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
489 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
492 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
493 pointer (bug #1540, Leonardo Boiko).
495 2004-09-28 Jon Trowbridge <trow@ximian.com>
497 * mono/BusDriver.cs: Changed BusDriver struct to remove
498 the ServiceCreated and ServiceDeleted events and replace them
499 with the new ServiceOwnerChanged event.
501 * mono/example/BusListener.cs: Added a new example program,
502 which listens for and reports any ServiceOwnerChanged events
505 * mono/example/Makefile.am (DESTDIR): Build changes for the
506 new BusListener.cs example.
508 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
510 * bus/signals.c (bus_match_rule_parse): validate the components of
511 match rules (bug #1439).
513 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
515 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
517 * doc/dbus-specification.xml: document ServiceOwnerChanged
520 * bus/driver.c, bus/driver.h, bus/services.c: Use
521 ServiceOwnerChanged signal instead of ServiceCreated and
524 * bus/dispatch.c: update testcase for the new signal.
526 2004-09-20 Jon Trowbridge <trow@ximian.com>
528 Patch from Nat Friedman <nat@novell.com>
530 * mono/Makefile.am: A number of small build fixes to allow "make
531 distcheck" to succeed.
533 * mono/example/Makefile.am: "make distcheck" fixes.
535 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
538 * test/Makefile.am: "make distcheck" fixes.
540 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
542 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
544 * doc/busconfig.dtd: update the DTD for the at_console attribute.
546 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
547 messages after the first one (bug #1389).
549 * bus/dispatch.c (check_double_hello_message): add a test case for
550 the double hello message bug.
551 (check_existent_service_activation): fix check of spawning error.
553 2004-09-16 David Zeuthen <david@fubar.dk>
555 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
557 2004-09-12 David Zeuthen <david@fubar.dk>
559 Patch from Kay Sievers <kay.sievers@vrfy.org>
561 * bus/bus.c (bus_context_new):
565 Add commandline option --nofork to override configuration file
568 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
570 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
571 compilers don't like it (bug #974).
573 2004-09-04 Harald Fernengel <harry@kdevelop.org>
575 * qt/connection.*: Applied patch by Jérôme Lodewyck
576 <lodewyck@clipper.ens.fr> to integrate an existing
577 connection into the Qt eventloop
579 2004-08-30 Jon Trowbridge <trow@ximian.com>
581 * mono/BusDriver.cs: Added. This is a class for interacting with
582 the org.freedesktop.DBus service.
584 * mono/Message.cs: Added a mechanism to expose the message that is
585 currently being dispatched via the static Message.Current
586 property. Added Message.Sender and Message.Destination
589 * mono/Handler.cs: Expose the dispatched message via
590 Message.Current when handling method calls.
592 * mono/Service.cs: Expose the dispatched message via
593 Message.Current when handling signal emissions.
595 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
596 Connection.BaseService property.
598 2004-08-28 Havoc Pennington <hp@redhat.com>
600 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
602 More fixes from Steve Grubb
604 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
605 (_dbus_listen_tcp_socket): fix fd leak
607 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
608 EINTR to a bit lower in the code
610 2004-08-26 Jon Trowbridge <trow@ximian.com>
612 * bus/driver.c (bus_driver_handle_service_exists): Respond with
613 TRUE if we are inquiring about the existence of the built-in
614 org.freedesktop.DBus service.
616 2004-08-25 John Palmieri <johnp@redhat.com>
617 * bus/config-parser.c:
618 (struct PolicyType): Add POLICY_CONSOLE
619 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
620 (start_busconfig_child): Sets up console element when
621 <policy at_console=""> is encountered in a policy file
622 (append_rule_from_element): Convert console elements to console
626 (bus_policy_create_client_policy): Add console rules to the client
627 policy based on if the client is at the console
628 (bus_policy_append_console_rule): New function for adding a
629 console rule to a policy
630 (bus_policy_merge): Handle console rule merging
632 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
633 where we check for console user files
635 * dbus/dbus-sysdeps.c:
636 (_dbus_file_exists): New function which checks if the given
638 (_dbus_user_at_console): New function which does the system
639 specific process of checking if the user is at the console
641 * dbus/dbus-userdb.c:
642 (_dbus_is_console_user): New function converts a UID to user name
643 and then calls the system specific _dbus_user_at_console to
644 see if the user is at the console and therefor a console user
646 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
648 * bus/config-parser.c (set_limit):
649 * bus/dbus-daemon-1.1.in:
650 * test/data/valid-config-files/many-rules.conf: set the
651 max_match_rules_per_connection limt from the config file.
653 * doc/busconfig.dtd: update the DTD.
655 * bus/driver.c: remove some unused variables.
657 2004-08-24 Mikael Hallendal <micke@imendio.com>
659 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
660 it's been replaced by dbus_g_bus_get
662 2004-08-23 Colin Walters <walters@redhat.com>
664 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
666 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
668 * bus/selinux.c: Create a thread for policy reload notification.
669 (bus_selinux_get_policy_root): Implement.
671 * bus/config-parser.c (start_busconfig_child)
672 (bus_config_parser_content): Support SELinux-root relative
675 * configure.in <HAVE_SELINUX>: Add -lpthread.
677 * bus/test-main.c (test_pre_hook, test_post_hook): New.
678 (test_post_hook): Move memory checking into here.
679 (test_pre_hook, test_post_hook): Move SELinux checks in
680 here, but conditional on a DBUS_TEST_SELINUX environment
681 variable. Unfortunately we can't run the SELinux checks
682 as a normal user, since they won't have any permissions
683 for /selinux. So this will have to be tested manually
684 for now, until we have virtualization for most of
687 2004-08-23 Havoc Pennington <hp@redhat.com>
689 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
690 drop supplementary groups, suggested by Steve Grubb
692 2004-08-20 Colin Walters <walters@redhat.com>
694 * bus/config-parser.c (start_busconfig_child): Remove some unused
697 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
700 2004-08-17 Joe Shaw <joeshaw@novell.com>
702 * configure.in: If --enable-mono is passed in, if we can't find
705 * mono/Makefile.am: Use /gacutil to install assemblies into the
708 2004-08-12 Havoc Pennington <hp@redhat.com>
710 * NEWS: update for 0.22
712 * configure.in: release 0.22
714 2004-08-11 Colin Walters <walters@redhat.com>
716 * tools/dbus-send.c (main, usage): Add --reply-timeout
719 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
721 * bus/bus.c (process_config_first_time_only): get rid of an unused
722 DBusError that was causing a memoy leak (bug #989).
724 * dbus/dbus-keyring.c, dbus/dbus-message.c:
725 fix compilation on Solaris/Forte C (bug #974)
727 * bus/main.c (main): plug two minuscule memleaks.
729 2004-08-10 Havoc Pennington <hp@redhat.com>
731 * doc/dbus-tutorial.xml: add some more info on GLib bindings
733 2004-08-09 Havoc Pennington <hp@redhat.com>
735 * COPYING: switch to Academic Free License version 2.1 instead of
736 2.0, to resolve complaints about patent termination clause.
738 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
740 * README: added documentation for the --enable-python
743 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
745 * bus/config-parser.c (bus_config_parser_new): fix an invalid
746 _unref in the SELinux support.
748 * doc/busconfig.dtd: update DTD for SELinux support.
750 * bus/config-loader-libxml.c: fix error handler and parser
751 initialisation/cleanup. OOM test now works with libxml2 HEAD.
753 * configure.in: remove the warning about libxml2.
755 * dbus/dbus-bus.c: silence doxygen warning.
757 2004-07-31 Colin Walters <walters@redhat.com>
759 * configure.in: Move #error in SELinux check to its own line.
761 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
763 * dbus/dbus-internals.h (_DBUS_SET_OOM):
764 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
767 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
768 broken by the change in the _SET_OOM macros.
770 2004-07-31 Colin Walters <walters@redhat.com>
772 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
775 2004-07-31 Colin Walters <walters@redhat.com>
777 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
778 to correctly detect DBUS__ACQUIRE_SVC. Also add an
781 2004-07-24 Havoc Pennington <hp@redhat.com>
783 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
785 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
788 * configure.in: add --enable-selinux
790 * bus/policy.c (bus_policy_merge): add FIXME to a comment
792 * bus/main.c (main): initialize and shut down selinux
794 * bus/connection.c: store SELinux ID on each connection, to avoid
795 repeated getting of the string context and converting it into
798 * bus/bus.c (bus_context_get_policy): new accessor, though it
800 (bus_context_check_security_policy): check whether the security
801 context of sender connection can send to the security context of
804 * bus/config-parser.c: add parsing for <selinux> and <associate>
806 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
807 implement dbus_connection_get_unix_fd()
809 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
810 function, used by the selinux stuff
812 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
814 * bus/config-loader-libxml.c: complete the implementation of
815 libxml backend for config file loader. Doesn't work with full OOM
818 * configure.in: change error when selecting libxml into a warning.
820 * test/data/invalid-config-files: add two non-well-formed XML
823 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
825 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
826 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
827 be necessary to read all the buffer. (bug #894)
829 * bus/activation.c (bus_activation_activate_service): fix a
830 potential assertion failure (bug #896). Small optimization in the
831 case of auto-activation messages.
833 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
834 add test case for byte-through-vararg bug (#901). patch by Kimmo
837 2004-07-28 Anders Carlsson <andersca@gnome.org>
840 * python/dbus_bindings.pyx.in:
841 Add dbus.init_gthreads (), allow emit_signal to pass
842 arguments to the signal.
844 2004-07-24 Havoc Pennington <hp@redhat.com>
846 * AUTHORS: add some people, not really comprehensively, let me
849 2004-07-24 Havoc Pennington <hp@redhat.com>
851 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
854 * test/Makefile.am (DIST_SUBDIRS): here also
856 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
858 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
859 breaking build on Solaris, reported by Farhad Saberi on the ML.
861 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
862 va_arg invocation to account for integer promotion in the case of
863 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
865 * bus/services.c (bus_service_remove_owner): fix bug #902, use
866 _dbus_list_get_first_link, not _dbus_list_get_first.
868 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
870 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
871 handler functions so that the asserts in _dbus_object_subtree_unref
874 * dbus/dbus-transport-unix.c (do_reading):
875 _dbus_transport_queue_messages return value is of type
876 dbus_bool_t, not DBusDispatchStatus.
878 2004-07-19 David Zeuthen <david@fubar.dk>
880 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
883 (check_get_connection_unix_user): Debug says GetProperty; but the
884 method is called GetConnectionUnixUser
885 (check_get_connection_unix_process_id): New function
886 (bus_dispatch_test): Actually call check_get_connection_unix_user();
887 also call check_get_connection_unix_process_id()
890 (bus_driver_handle_get_connection_unix_process_id): New function,
891 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
895 (handle_server_data_external_mech): Set pid from the credentials
896 obtained from the socket
898 * dbus/dbus-connection.c:
899 (dbus_connection_get_unix_process_id): New function
901 * dbus/dbus-connection.h:
902 Add prototype for dbus_connection_get_unix_process_id
904 * dbus/dbus-transport.c:
905 (_dbus_transport_get_unix_process_id): New function
907 * dbus/dbus-transport.h:
908 Add prototype for _dbus_transport_get_unix_process_id
910 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
912 * dbus/dbus-message.c: Message counter fix, patch by Christian
913 Hammond <chipx86@gnupdate.org>
915 2004-07-18 Seth Nickell <seth@gnome.org>
918 * python/dbus_bindings.pyx.in:
919 * python/tests/test-client.py:
921 Add dbus.ByteArray and dbus_bindings.ByteArray
922 types so that byte streams can be passed back.
924 Give jdahlin the heaps of credit that are so
927 2004-07-12 Seth Nickell <seth@gnome.org>
931 Add message argument to the default object_method_handler
934 * python/dbus_bindings.pyx.in:
936 Automatically return NIL when passed an empty list
937 (we can't pass back a list since lists are typed
938 and we don't have any idea what type the the client
939 intended the list to be... :-( )
941 2004-07-10 Seth Nickell <seth@gnome.org>
943 * python/examples/Makefile.am:
945 Fix distcheck breakage caused by new examples.
947 2004-07-10 Seth Nickell <seth@gnome.org>
951 Add "message" argument to service-side dbus.Object
952 methods. This will break existing services written
953 using the python bindings, but will allow extraction
954 of all the message information (e.g. who its from).
956 Add improved "object oriented" signal handling/emission.
958 * python/examples/example-service.py:
962 * python/examples/example-signal-emitter.py:
963 * python/examples/example-signal-recipient.py:
965 Two new examples that show how to emit and receive
966 signals using the new APIs.
968 * python/examples/example-signals.py:
969 * python/examples/gconf-proxy-service.py:
970 * python/examples/gconf-proxy-service2.py:
972 Add "message" argument to service methods.
974 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
976 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
977 * dbus/bus.c (dbus_bus_get_unix_user)
978 * doc/dbus-specification.xml: implement GetConnectionUnixUser
979 method of org.freedesktop.DBus interface.
981 * bus/dispatch.c: test case
983 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
985 * python/Makefile.am: switched include directory from glib/ to dbus/
986 since dbus-glib.h moved
988 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
990 * configure.in: prevent building the gcj stuff and libxml loader
991 since they are broken.
993 2004-06-20 Havoc Pennington <hp@redhat.com>
995 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
996 codes from the dbus error names
998 * glib/dbus-glib.h: move to subdir dbus/ since it's included
999 as dbus/dbus-glib.h and that breakage is now visible due to
1000 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
1002 * glib/dbus-glib.h: s/gproxy/g_proxy/
1004 * dbus/dbus-shared.h: new header to hold stuff shared with
1007 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1010 * glib/dbus-glib.h (dbus_set_g_error): move to
1011 dbus-glib-lowlevel.h
1013 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1014 of stuff to enable this
1016 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1018 * a bunch of other changes with the same basic "separate glib
1019 bindings from dbus.h" theme
1021 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
1023 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1025 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1027 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
1029 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1030 the reply value of the ServiceExists message.
1032 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
1034 * python/dbus_bindings.pyx.in: No longer need to parse path
1035 elements and pass them as arrays of strings. The C API now
1036 accepts plain path strings.
1037 (_build_parsed_path): removed
1039 2004-06-07 Havoc Pennington <hp@redhat.com>
1041 * doc/TODO: remove auto-activation item since it's done; sort
1042 items by importance/milestone
1044 2004-06-07 Havoc Pennington <hp@redhat.com>
1046 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1047 random signature when using REQUIRED_FIELDS (this hack won't work
1050 * dbus/dbus-message.c: change the signature to be a header field,
1051 instead of message->signature special-case string. Incremental
1052 step forward. Then we can fix up code to send the signature in the
1053 message, then fix up code to validate said signature, then fix up
1054 code to not put the typecodes inline, etc.
1055 (load_one_message): don't make up the signature after the fact
1056 (decode_header_data): require signature field for the known
1059 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1061 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1063 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
1065 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1067 * mono/Handler.cs: Updated to follow new path argument for
1068 (un-)registering objects.
1070 * mono/example/Makefile.am:
1072 * configure.in: Bumped required version for mono and use new -pkg
1075 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1077 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1078 registration functions take the path argument as char* instead of
1081 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1082 split off the path decompostion part of
1083 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1086 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1088 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1090 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1091 machine approach. A state is implemented as a function that
1092 handles incoming events as specified for that state.
1094 * doc/dbus-specification.xml: Update auth protocol state machine
1095 specification to match implementation. Remove some leftover
1098 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1100 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1101 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1104 * Doxyfile.in: remove deprecated options.
1106 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1107 glib/test-thread.h, glib/test-thread-client.c,
1108 glib/test-thread-server.c, glib/test-profile.c,
1109 glib/test-dbus-glib.c: remove these unused files.
1111 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
1113 * dbus/dbus-object-tree.c
1114 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1115 non-fallback handlers (bug #684).
1116 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1117 (find_subtree_recurse): report wether the returned subtree is an
1118 exact match or a "fallback" match higher up in the tree.
1119 (object_tree_test_iteration): update test case.
1121 2004-06-01 Seth Nickell <seth@gnome.org>
1123 * python/dbus_bindings.pyx.in:
1124 * python/tests/test-client.py:
1126 Round off basic type support. Add dicts (yay!), and
1127 remaining array types.
1129 Make MessageIter more general so it works for dicts too.
1131 Mark all loop variables as C integers.
1133 2004-05-31 Havoc Pennington <hp@redhat.com>
1135 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1138 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1140 * glib/dbus-glib-tool.c (main): set up to have a --self-test
1141 option that runs the tests, and start filling in some code
1142 including for starters just dumping the interfaces to stdout
1144 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1146 * test/data/valid-introspection-files/lots-of-types.xml: test of
1147 an example introspection file
1149 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1152 2004-05-31 Seth Nickell <seth@gnome.org>
1154 * python/dbus_bindings.pyx.in:
1155 * python/tests/test-client.py:
1160 Fix string array memory trashing bug... oops...
1162 2004-05-30 Seth Nickell <seth@gnome.org>
1166 Add a nicer-but-less-flexible alternate API for handling
1167 calls to virtual objects in dbus.ObjectTree.
1169 Screw up the argument order to the dbus.Object constructor
1170 for consistency with dbus.ObjectTree (and to make dbus_methods
1171 optional for future extension)
1173 * python/examples/Makefile.am:
1174 * python/examples/gconf-proxy-service.py:
1175 * python/examples/gconf-proxy-service2.py:
1177 Alternate implementation of gconf-proxy-service using the
1178 nicer dbus.ObjectTree API.
1180 * python/examples/example-service.py:
1181 * python/tests/test-server.py
1183 Reverse the argument order to deal with dbus.Object constructor
1186 2004-05-30 Seth Nickell <seth@gnome.org>
1188 * python/examples/example-client.py:
1189 * python/examples/example-service.py:
1191 Take it back. Lists seem to work but they're broken
1192 in the test suite. Make the base examples use
1195 2004-05-30 Seth Nickell <seth@gnome.org>
1197 * python/dbus_bindings.pyx.in:
1198 * python/tests/test-client.py:
1200 Add some more tests and fix errors that crop up.
1201 Unfortunately, currently it seems like marshalling
1202 and unmarshalling of lists is completely broken :-(
1204 2004-05-30 Seth Nickell <seth@gnome.org>
1206 * python/dbus_bindings.pyx.in:
1208 Add support for ObjectPath type.
1212 Refactor message handling code to a common function.
1214 * python/tests/test-client.py:
1215 * python/tests/test-server.py:
1217 Add tests that check to make sure values of all types
1218 can be echoed from a service w/o mangling.
1220 2004-05-29 Seth Nickell <seth@gnome.org>
1224 Add ObjectTree class which allows implementation
1225 of trees of "virtual" objects. Basically the python
1226 wrapper for "register_fallback".
1228 * python/examples/Makefile.am
1229 * python/examples/gconf-proxy-client.py:
1230 * python/examples/gconf-proxy-service.py:
1232 Implement a simple GConf proxy service that supports
1233 get/set on string and int GConf keys using the ObjectTree.
1235 2004-05-29 Seth Nickell <seth@gnome.org>
1238 * python/examples/example-client.py:
1239 * python/examples/example-service.py:
1240 * python/examples/list-system-services.py:
1242 Add SessionBus, SystemBus and ActivationBus classes
1243 so you don't need to know the special little BUS_TYPE
1246 2004-05-29 Havoc Pennington <hp@redhat.com>
1248 * bus/config-parser.c (process_test_valid_subdir): temporarily
1249 stop testing config parser OOM handling, since expat has issues
1250 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1252 * bus/dbus-daemon-1.1.in: change requested_reply to
1253 send_requested_reply/receive_requested_reply so we can send the
1254 replies, not just receive them.
1256 * bus/config-parser.c: parse the new
1257 send_requested_reply/receive_requested_reply
1259 * bus/policy.c (bus_client_policy_check_can_send): add
1260 requested_reply argument and use it
1262 * bus/bus.c (bus_context_check_security_policy): pass through
1263 requested_reply status to message send check
1265 * bus/system.conf.in: adapt to requested_reply change
1267 2004-05-28 Havoc Pennington <hp@redhat.com>
1269 * test/glib/test-service-glib.c (main): remove unused variable
1271 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1273 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1274 from the enum, no longer in use.
1276 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1279 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1280 whether error_name passed in is a valid error name.
1282 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
1284 * dbus/dbus-message.c (dbus_message_get_args): Added support for
1285 OBJECT_PATH and OBJECT_PATH_ARRAY
1287 2004-05-28 Seth Nickell <seth@gnome.org>
1289 * python/examples/Makefile.am:
1291 Forget to add Makefile.am. Do not pass go.
1293 2004-05-28 Michael Meeks <michael@ximian.com>
1295 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
1298 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1300 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1301 (_dbus_message_iter_get_basic_type_array): impl.
1302 drastically simplify ~all relevant _get methods to use these.
1303 (_dbus_message_iter_append_basic_array),
1304 (dbus_message_iter_append_basic): impl
1305 drastically simplify ~all relevant _append methods to use these.
1307 * dbus/dbus-message-builder.c (parse_basic_type)
1308 (parse_basic_array, lookup_basic_type): impl.
1309 (_dbus_message_data_load): prune scads of duplicate /
1312 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
1313 (_dbus_demarshal_basic_type): implement,
1314 (demarshal_and_validate_len/arg): beef up debug.
1315 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1317 2004-05-27 Seth Nickell <seth@gnome.org>
1320 * python/Makefile.am:
1322 Include the example python apps in the tarball.
1324 * python/examples/list-system-services.py
1326 Add a python new example that fetches the list of services
1327 from the system bus.
1329 2004-05-27 Seth Nickell <seth@gnome.org>
1332 * python/dbus_bindings.pyx.in:
1334 Fix failure to notify that a signal was not handled,
1335 resulted in hung functions.
1337 2004-05-25 Colin Walters <walters@redhat.com>
1339 * tools/dbus-monitor.c (main): Monitor all types of messages.
1341 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
1343 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1344 which unregisters the object path and disposes the handler.
1346 2004-05-23 Kristian Høgsberg <krh@redhat.com>
1348 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1350 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1351 operands to && so we call dbus_message_iter_next () for the last
1354 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1356 * dbus/dbus-object-tree.c
1357 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1358 children even if the requested path isn't registered.
1359 (object_tree_test_iteration): test object_tree_list_registered.
1361 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1364 2004-05-20 Kristian Høgsberg <krh@redhat.com>
1366 * doc/TODO: Remove resolved items.
1368 * bus/expirelist.h (struct BusExpireList): remove unused n_items
1371 * bus/connection.c (bus_connections_expect_reply): Enforce the
1372 per-connection limit on pending replies.
1374 Patch from Jon Trowbridge <trow@ximian.com>:
1376 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
1377 up a watch that triggers a config reload when one end of the pipe
1379 (signal_handler): Instead of doing the config reload in our SIGHUP
1380 handler, just write to the reload pipe and let the associated
1381 watch handle the reload when control returns to the main loop.
1383 * bus/driver.c (bus_driver_handle_reload_config): Added.
1384 Implements a ReloadConfig method for requesting a configuration
1385 file reload via the bus driver.
1387 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
1389 * HACKING: Updated release instructions concerning the wiki page.
1391 2004-05-18 Kristian Høgsberg <krh@redhat.com>
1393 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1394 filter against auth->allowed_mechs; we only add allowed mechs in
1395 record_mechanisms().
1397 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1398 ALLOWED_MECHS to auth-script format so we can set the list of
1401 * data/auth/client-out-of-mechanisms.auth-script: New test to
1402 check client disconnects when it is out of mechanisms to try.
1404 * dbus/dbus-auth.c (process_command): Remove check for lines
1405 longer that 1 MB; we only buffer up maximum 16 kB.
1407 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1408 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1409 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1410 assume there might be unused bytes.
1412 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1413 client-out-of-mechs, it is handled in process_reject(). Move check
1414 for max failures to send_rejected(), as it's a server-only thing.
1416 * dbus/dbus-auth.c: Factor out protocol reply code into functions
1417 send_auth(), send_data(), send_rejected(), send_error(),
1418 send_ok(), send_begin() and send_cancel().
1420 2004-05-17 Kristian Høgsberg <krh@redhat.com>
1422 Remove base64 encoding, replace with hex encoding. Original patch
1423 from trow@ximian.com, added error handling.
1425 * dbus/dbus-string.c (_dbus_string_base64_encode)
1426 (_dbus_string_base64_decode): Remove.
1427 (_dbus_string_hex_decode): Add end_return argument so we can
1428 distinguish between OOM and invalid hex encoding.
1429 (_dbus_string_test): Remove base64 tests and add test case for
1432 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1433 Replace base64 with hex.
1435 * test/data/auth/invalid-hex-encoding.auth-script: New test case
1436 for invalid hex encoded data in auth protocol.
1438 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1440 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1443 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1445 * mono/dbus-sharp.dll.config.in: Added for GAC
1446 * mono/dbus-sharp.snk: Added for GAC
1447 * mono/Assembly.cs.in: Added for GAC
1448 * mono/Makefile.am: Changes for GAC installation
1449 * configure.in: Added refs for dbus-sharp.dll.config.in and
1450 Assembly.cs.in. More fixes for mono testing
1451 * mono/example/Makefile.am: Changed var to CSC
1452 * Makefile.am: Changed flag name to DBUS_USE_CSC
1454 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1456 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1457 * mono/doc/*: Added documentation framework
1458 * configure.in: Added monodoc check
1459 * README: Added description of mono configure flags
1461 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
1463 * doc/dbus-specification.xml: Added a "Required" column to the
1464 header fields table and changed the "zero or more" verbage in
1465 the above paragraph to read "The header must contain the required
1466 named header fields and zero or more of the optional named header
1468 * test/data/invalid-messages/*.message: Added the required PATH
1469 named header field to the tests so that they don't fail on
1470 'Missing path field'
1472 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
1474 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1475 the stack by implicitly defining variable and parameter types and
1476 removing the hack of defining C pointers as python objects and later
1479 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
1481 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1483 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
1485 * mono/DBusType/Dict.cs: Handle empty dicts
1486 * mono/DBusType/Array.cs: Handle empty arrays
1487 * mono/Arguments.cs: Handle empty arguments
1489 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
1491 * dbus-sharp.pc.in: Modified to include include Libs and Requires
1494 2004-04-25 Kristian Høgsberg <krh@redhat.com>
1496 * test/data/valid-messages/standard-*.message: Update message
1497 test scripts to new header field names.
1499 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
1501 * test/break-loader.c (randomly_do_n_things): tracked down buffer
1502 overflow to times_we_did_each_thing array which would chop off the
1503 first character of the failure_dir string. Increased the size of
1504 the array to 7 to reflect the number of random mutation functions
1507 2004-04-21 Kristian Høgsberg <krh@redhat.com>
1509 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1510 unix_server->watch here, it is unreffed in disconnect.
1511 (_dbus_server_new_for_tcp_socket): convert NULL host to
1512 "localhost" here so we don't append NULL to address.
1514 * dbus/dbus-server.c (_dbus_server_test): Add test case for
1515 various addresses, including tcp with no explicit host.
1517 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1519 * dbus/dbus-message.c (decode_header_data, decode_string_field):
1520 fix incorrect setting of .name_offset in the HeaderField (it was
1521 off by two bytes, positioned right after the name and typecode)
1523 * bus/bus.c (bus_context_new, bus_context_unref): test before
1524 calling dbus_server_free_data_slot and _dbus_user_database_unref
1525 in case of an error.
1527 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1530 2004-04-19 Kristian Høgsberg <krh@redhat.com>
1532 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1533 _dbus_poll() instead of select().
1535 2004-04-15 Jon Trowbridge <trow@ximian.com>
1537 * bus/main.c (signal_handler): Reload the configuration files
1539 (main): Set up our SIGHUP handler.
1541 * bus/bus.c (struct BusContext): Store the config file, user and
1542 fork flag in the BusContext.
1543 (process_config_first_time_only): Added. Contains the code
1544 (previously in bus_context_new) for setting up the BusContext from
1545 the BusConfigParser that should only be run the first time the
1546 config files are read.
1547 (process_config_every_time): Added. Contains the code (previously
1548 in bus_context_new) for setting up the BusContext from the
1549 BusConfigParser that should be run every time the config files are
1551 (load_config): Added. Builds a BusConfigParser from the config
1552 files and passes the resulting structure off to
1553 process_config_first_time_only (assuming this is the first time)
1554 and process_config_every_time.
1555 (bus_context_new): All of the config-related code has been moved
1556 to process_config_first_time_only and process_config_every_time.
1557 Now this function just does the non-config-related initializations
1558 and calls load_config.
1559 (bus_context_reload_config): Added.
1561 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1563 * bus/driver.c (bus_driver_handle_get_service_owner):
1564 implement a GetServiceOwner method.
1565 * doc/dbus-specification.xml: document it.
1566 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1568 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1569 implement, using the bus GetServiceOwner method.
1571 * test/glib/test-dbus-glib.c:
1572 use dbus_gproxy_new_for_service_owner so that we can receive the
1575 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1577 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1578 dbus/dbus-message.c, dbus/dbus-protocol.h
1579 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1581 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1582 dbus/dbus-message.c, dbus/dbus-protocol.h
1583 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1585 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1586 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1587 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1589 * doc/dbus-specification.xml (Header Fields Table):
1590 s/SERVICE/DESTINATION
1591 s/SENDER_SERVICE/SENDER
1594 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1596 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1599 2004-04-13 Michael Meeks <michael@ximian.com>
1601 * glib/dbus-gobject.c (handle_introspect): split out
1602 (introspect_properties): this.
1603 (handle_introspect): implement this.
1605 * test/glib/Makefile.am: use the absolute path so the bus
1606 daemon's chdir ("/") doesn't kill us dead.
1608 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1610 2004-04-12 Jon Trowbridge <trow@ximian.com>
1612 * bus/config-parser.c (struct BusConfigParser): Added
1613 included_files field.
1614 (seen_include): Added. Checks whether or not a file has already
1615 been included by any parent BusConfigParser.
1616 (bus_config_parser_new): Copy the parent's included_files.
1617 (include_file): Track which files have been included, and fail on
1618 circular inclusions.
1619 (process_test_valid_subdir): Changed printf to report if we are
1620 testing valid or invalid conf files.
1621 (all_are_equiv): Changed printf to be a bit clearer about
1622 what we are actually doing.
1623 (bus_config_parser_test): Test invalid configuration files.
1625 2004-04-09 Jon Trowbridge <trow@ximian.com>
1627 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1628 argument. If non-null, the newly-constructed BusConfigParser will
1629 be initialized with the parent's BusLimits instead of the default
1631 (include_file): When including a config file, pass in
1632 the current parser as the parent and then copy the BusLimits
1633 from the included BusConfigParser pack to the current parser.
1634 (process_test_valid_subdir): Renamed from process_test_subdir.
1635 (process_test_equiv_subdir): Added. Walks through a directory,
1636 descending into each subdirectory and loading the config files
1637 it finds there. If any subdirectory contains two config files
1638 that don't produce identical BusConfigParser structs, fail.
1639 For now, the BusConfigParser's BusPolicies are not compared.
1640 (bus_config_parser_test): Call both process_test_valid_subdir and
1641 process_test_equiv_subdir.
1643 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1644 argument and pass it along to the call to bus_config_parser_new.
1645 Also made a few small changes to allow this code to compile.
1647 * bus/config-loader-expat.c (bus_config_load): Take a parent
1648 argument and pass it along to the call to bus_config_parser_new.
1650 * bus/bus.c (bus_context_new): Load the config file
1651 with a NULL parent argument.
1653 2004-03-29 Michael Meeks <michael@ximian.com>
1655 * glib/dbus-gobject.c (introspect_properties): split
1656 out, fix mangled 'while' flow control.
1657 (introspect_signals): implement.
1658 (handle_introspect): update.
1660 2004-03-29 Michael Meeks <michael@ximian.com>
1662 * glib/dbus-gobject.c (set_object_property): split out /
1663 re-work, use the property type, and not the message type(!)
1664 (get_object_property): ditto.
1666 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1667 (dbus_gvalue_marshal): make this code re-usable, needed
1668 for signals too, also on both proxy and server side.
1669 Re-write for more efficiency / readability.
1671 2004-03-29 Michael Meeks <michael@ximian.com>
1673 * dbus/dbus-message.c
1674 (dbus_message_new_error_printf): impl.
1676 * dbus/dbus-connection.c
1677 (dbus_connection_unregister_object_path): fix warning.
1679 * configure.in: fix no-mono-installed situation.
1681 2004-03-27 Havoc Pennington <hp@redhat.com>
1683 Patch from Timo Teräs:
1685 * tools/dbus-send.c (main): if --print-reply, assume type is
1686 method call; support boolean type args
1688 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1689 bunch of memleak and logic bugs
1691 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1693 * mono/Arguments.cs:
1694 * mono/Introspector.cs:
1696 * mono/InterfaceProxy.cs:
1698 * mono/ProxyBuilder.cs:
1700 Added InterfaceProxy class to avoid building proxies for every
1704 * dbus-message.c (dbus_message_append_args_valist)
1705 (dbus_message_iter_get_object_path)
1706 (dbus_message_iter_get_object_path_array)
1707 (dbus_message_iter_append_object_path)
1708 (dbus_message_iter_append_object_path_array):
1709 Added object_path iter functions to handle OBJECT_PATH arguments
1711 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1713 First checkin of mono bindings.
1716 Build stuff for the bindings
1717 * dbus-sharp.pc.in: Added for pkgconfig
1719 2004-03-21 Havoc Pennington <hp@redhat.com>
1721 * test/test-service.c (main): remove debug spew
1723 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1725 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1728 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1729 (dbus_message_iter_init_array_iterator)
1730 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1731 indicate whether the iterator is empty
1733 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1736 2004-03-19 Havoc Pennington <hp@redhat.com>
1738 * NEWS: 0.21 updates
1740 * configure.in: 0.21
1742 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
1744 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
1745 you don't need pyrex to make dist
1747 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
1750 2004-03-18 Richard Hult <richard@imendio.com>
1752 * dbus/dbus-message.c (dbus_message_get_auto_activation)
1753 (dbus_message_set_auto_activation): Add doxygen docs.
1755 2004-03-16 Richard Hult <richard@imendio.com>
1757 * bus/activation.c: (bus_activation_service_created),
1758 (bus_activation_send_pending_auto_activation_messages),
1759 (bus_activation_activate_service):
1761 * bus/dispatch.c: (bus_dispatch),
1762 (check_nonexistent_service_auto_activation),
1763 (check_service_auto_activated),
1764 (check_segfault_service_auto_activation),
1765 (check_existent_service_auto_activation), (bus_dispatch_test):
1766 * bus/driver.c: (bus_driver_handle_activate_service):
1767 * bus/services.c: (bus_registry_acquire_service):
1768 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
1769 (dbus_message_get_auto_activation):
1770 * dbus/dbus-message.h:
1771 * dbus/dbus-protocol.h: Implement auto-activation.
1773 * doc/dbus-specification.xml: Add auto-activation to the spec.
1775 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
1777 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
1778 fix a bug with CUSTOM types.
1780 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
1781 a unit test for this bug (used to fail).
1783 2004-03-12 Mikael Hallendal <micke@imendio.com>
1786 (babysitter_watch_callback): notify all pending activations waiting for
1787 the same exec that the activation failed.
1788 (bus_activation_activate_service): shortcut the activation if we
1789 already waiting for the same executable to start up.
1791 2004-03-12 Mikael Hallendal <micke@imendio.com>
1794 - Added service file reloading.
1795 Each service files directory is kept in an hash table in
1796 BusActivation and each BusActivationEntry knows what .service-file it
1797 was read from. So when you try to activate a service the bus will
1798 check if it's been updated, removed or if new .service-files has
1800 - Test code at the bottom for the service file reloading.
1801 * bus/test-main.c: (main):
1803 - added service reloading test.
1804 * dbus/dbus-sysdeps.c:
1805 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
1807 2004-03-08 Michael Meeks <michael@ximian.com>
1809 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
1810 bail immediately if disconnected, to avoid busy loop.
1812 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
1813 cleanup cut/paste/inefficiency.
1815 2004-03-01 David Zeuthen <david@fubar.dk>
1817 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
1818 bug where args were used twice. This bug resulted in a segfault
1819 on a Debian/PPC system when starting the messagebus daemon. Include
1820 dbus-sysdeps.h for DBUS_VA_COPY
1822 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
1824 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
1825 appropriate va_copy implementation. From GLib
1827 2004-02-24 Joe Shaw <joe@ximian.com>
1829 * bus/services.c (bus_registry_acquire_service): We need to pass
1830 in the service name to dbus_set_error() to prevent a crash.
1832 2003-12-26 Anders Carlsson <andersca@gnome.org>
1834 * AUTHORS: Reveal my True identity.
1836 2003-12-17 Mikael Hallendal <micke@imendio.com>
1838 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1839 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
1841 2003-12-13 Mikael Hallendal <micke@imendio.com>
1843 * doc/TODO: Added not about better error check of configuration files.
1845 2003-12-02 Richard Hult <richard@imendio.com>
1847 * Update AFL version to 2.0 throughout the source files to reflect
1848 the update that was done a while ago.
1850 2003-12-02 Richard Hult <richard@imendio.com>
1852 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
1853 wrote_dict_key to FALSE on the iter that the dict is appended to,
1854 just like when appending other types. Fixes a bug where a dict
1855 couldn't be put inside a dict.
1856 (dbus_message_iter_append_dict_key): Fix typo in warning message.
1857 (message_iter_test, _dbus_message_test): Add test case for dict
1860 2003-12-01 David Zeuthen <david@fubar.dk>
1862 * python/dbus.py: Add the actual message when calling the reciever
1863 of a signal such that parameters can be inspected. Add the method
1864 remove_signal_receiver
1866 2003-11-26 Mikael Hallendal <micke@imendio.com>
1870 * glib/*.[ch]: Made ref functions return the pointer
1872 2003-11-25 Zack Rusin <zack@kde.org>
1874 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
1876 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
1879 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
1880 the Integrator and to better fit with the server,
1882 2003-11-24 Zack Rusin <zack@kde.org>
1884 * qt/connection.h, qt/connection.cpp: removing initDbus method since
1885 the integrator handles it now
1887 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
1888 since QTimer wasn't really meant to be used the way DBusTimeout is
1890 2003-11-24 Zack Rusin <zack@kde.org>
1892 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
1893 Integrator class which integrates D-BUS with the Qt event loop,
1895 * qt/connection.h, qt/connection.cpp: Move all the code which
1896 was dealing with D-BUS integration to the Integrator class,
1897 and start using Integrator,
1899 2003-11-23 Zack Rusin <zack@kde.org>
1901 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
1904 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
1905 switching namespaces to DBusQt, reworking the class,
1907 * Makefile.cvs: switching dependencies so that it matches KDE
1910 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
1913 2003-11-19 Havoc Pennington <hp@redhat.com>
1917 * configure.in: bump version to 0.20
1919 * configure.in (have_qt): add yet another place to look for qt
1920 (someone hand trolltech a .pc file...)
1922 2003-11-01 Havoc Pennington <hp@redhat.com>
1924 * doc/dbus-specification.xml: add state machine docs on the auth
1925 protocol; just a first draft, I'm sure it's wrong.
1927 2003-10-28 David Zeuthen <david@fubar.dk>
1929 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
1930 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
1932 2003-10-28 Havoc Pennington <hp@redhat.com>
1934 * dbus/dbus-message.c (get_next_field): delete unused function
1936 2003-10-28 Havoc Pennington <hp@redhat.com>
1938 * bus/expirelist.c (do_expiration_with_current_time): detect
1939 failure of the expire_func due to OOM
1941 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
1943 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
1944 NoReply error that's now created by the bus when the service exits
1946 2003-10-28 Havoc Pennington <hp@redhat.com>
1948 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
1949 tests for set_path, set_interface, set_member, etc.
1951 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
1953 * dbus/dbus-message.c (set_string_field): always just delete and
1954 re-append the field; accept NULL for deletion
1955 (re_align_fields_recurse): reimplement
1957 2003-10-26 Havoc Pennington <hp@redhat.com>
1959 * dbus/dbus-connection.c: fix docs to properly describe the
1960 disconnected message
1961 (_dbus_connection_notify_disconnected): remove this function;
1962 we can't synchronously add the disconnected message, we have to
1963 do it after we've queued any remaining real messages
1964 (_dbus_connection_get_dispatch_status_unlocked): queue the
1965 disconnect message only if the transport has finished queueing all
1966 its real messages and is disconnected.
1967 (dbus_connection_disconnect): update the dispatch status here
1969 2003-10-22 Havoc Pennington <hp@redhat.com>
1971 * bus/bus.c (bus_context_check_security_policy): fix up assertion
1973 * bus/connection.c (bus_transaction_send_from_driver): set the
1974 destination to the connection's base service
1976 2003-10-20 Havoc Pennington <hp@redhat.com>
1978 hmm, make check is currently not passing.
1980 * doc/dbus-specification.xml: add requirement that custom type
1981 names follow the same rules as interface names.
1983 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1984 duplication and allow 'c' to be 'custom'; dict is now 'm' for
1987 * doc/dbus-specification.xml: update type codes to match
1988 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1989 CUSTOM. Add type OBJECT_PATH to the spec.
1991 2003-10-17 Havoc Pennington <hp@redhat.com>
1993 * bus/driver.c (create_unique_client_name): use "." as separator
1994 in base service names instead of '-'
1996 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1997 byte at the end of the string
1999 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
2000 optimization macros since string validation seems to be a slow
2003 * doc/dbus-specification.xml: restrict valid
2004 service/interface/member/error names. Add test suite code for the
2007 * dbus/dbus-string.c: limit service/interface/member/error names
2010 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2011 format arg to verbose spew
2013 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2014 memory, return instead of g_error
2016 * test/test-service.c (path_message_func): support emitting a
2019 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2020 activation bus type if DBUS_BUS_ACTIVATION was set; default to
2021 assuming the activation bus was the session bus so that services
2022 started manually will still register.
2023 (init_connections_unlocked): fix so that in OOM situation we get
2024 the same semantics when retrying the function
2026 * test/test-service.c (main): change to use path registration, to
2027 test those codepaths; register with DBUS_BUS_ACTIVATION rather
2028 than DBUS_BUS_SESSION
2030 2003-10-16 Havoc Pennington <hp@redhat.com>
2032 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2034 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2035 coverage of the tests
2036 (coverage-report.txt): don't move the .da and .bbg files around
2038 2003-10-16 Havoc Pennington <hp@redhat.com>
2040 * bus/bus.c (struct BusContext): remove struct field I didn't mean
2043 2003-10-16 Havoc Pennington <hp@redhat.com>
2045 * bus/connection.c (bus_pending_reply_expired): either cancel or
2047 (bus_connections_check_reply): use unlink, not remove_link, as we
2048 don't want to free the link; fixes double free mess
2050 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2051 where no reply was received
2053 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2056 * bus/signals.c (match_rule_matches): add special cases for the
2057 bus driver, so you can match on sender/destination for it.
2059 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2060 DBUS_PRINT_BACKTRACE is set
2062 * dbus/dbus-internals.c: add pid to assertion failure messages
2064 * dbus/dbus-connection.c: add message type code to the debug spew
2066 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2067 sender=foo not service=foo
2069 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2070 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
2071 DBUS_ACTIVATION_ADDRESS instead
2073 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2074 DBUS_SYSTEM_BUS_ADDRESS if appropriate
2076 * bus/bus.c (bus_context_new): handle OOM copying bus type into
2079 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2080 (dbus_message_iter_get_object_path_array): new function (half
2081 finished, disabled for the moment)
2083 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2084 DBUS_MESSAGE_TYPE_ERROR
2086 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2087 avoid redirecting stderr to /dev/null
2088 (babysit): close stdin if not doing the "exit_with_session" thing
2090 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2091 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2092 stdout/stdin, so things don't get confused
2094 * bus/system.conf.in: fix to allow replies, I modified .conf
2095 instead of .conf.in again.
2097 2003-10-14 David Zeuthen <david@fubar.dk>
2099 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2100 argtype to arg_type when raising unknown arg type exception.
2101 Changed type list to reflect the changes in dbus-protocol.h so
2102 the bindings actually work.
2104 2003-10-14 Havoc Pennington <hp@redhat.com>
2106 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2107 to have a bug keeping it from outputting the .da files sometimes
2108 (string_get_string): don't append garbage nul bytes to the string.
2110 2003-10-15 Seth Nickell <seth@gnome.org>
2112 * python/Makefile.am:
2114 Include dbus_h_wrapper.h in the dist tarball.
2116 2003-10-14 Havoc Pennington <hp@redhat.com>
2118 * bus/bus.c (bus_context_check_security_policy): revamp this to
2119 work more sanely with new policy-based requested reply setup
2121 * bus/connection.c (bus_transaction_send_from_driver): set bus
2122 driver messages as no reply
2124 * bus/policy.c (bus_client_policy_check_can_receive): handle a
2125 requested_reply attribute on allow/deny rules
2127 * bus/system.conf: add <allow requested_reply="true"/>
2129 * bus/driver.c (bus_driver_handle_message): fix check for replies
2130 sent to the bus driver, which was backward. How did this ever work
2131 at all though? I think I'm missing something.
2133 * dbus/dbus-message.c (decode_header_data): require error and
2134 method return messages to have a reply serial field to be valid
2135 (_dbus_message_loader_queue_messages): break up this function;
2136 validate that reply serial and plain serial are nonzero;
2137 clean up the OOM/error handling.
2138 (get_uint_field): don't return -1 from this
2139 (dbus_message_create_header): fix signed/unsigned bug
2141 * bus/connection.c (bus_connections_expect_reply): save serial of
2142 the incoming message, not reply serial
2144 2003-10-14 Havoc Pennington <hp@redhat.com>
2146 * bus/connection.c: implement pending reply tracking using
2149 * bus/bus.c (bus_context_check_security_policy): verify that a
2150 reply is pending in order to allow a reply to be sent. Deny
2151 messages of unknown type.
2153 * bus/dbus-daemon-1.1.in: update to mention new resource limits
2155 * bus/bus.c (bus_context_get_max_replies_per_connection): new
2156 (bus_context_get_reply_timeout): new
2158 2003-10-13 Seth Nickell <seth@gnome.org>
2160 * python/Makefile.am:
2162 Pass "make distcheck": remove a couple files from DIST_FILES
2163 that weren't included in the final version.
2165 2003-10-12 Havoc Pennington <hp@pobox.com>
2167 Added test code that 1) starts an actual bus daemon and 2) uses
2168 DBusGProxy; fixed bugs that were revealed by the test. Lots
2169 more testing possible, but this is the basic framework.
2171 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2172 empty proxy lists from the proxy list hash
2174 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2175 couple of return_if_fail checks
2177 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2178 to allocate, so everything is cleared to NULL as it should be.
2180 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2181 source as data to dbus_connection_set_timeout_functions() as the
2182 timeout functions expected
2184 * test/glib/run-test.sh: add a little script to start up a message
2185 bus and run tests using it
2187 * tools/dbus-launch.1: updates
2189 * tools/dbus-launch.c (main): add --config-file option
2191 * tools/dbus-launch.c (main): remove confusing else if (runprog)
2192 that could never be reached.
2194 * dbus/dbus-message.c (dbus_message_new_method_return)
2195 (dbus_message_new_error, dbus_message_new_signal): set the
2196 no-reply-expected flag on all these. Redundant, but may
2197 as well be consistent.
2199 2003-10-11 Havoc Pennington <hp@pobox.com>
2201 * test/decode-gcov.c (function_solve_graph): make broken block
2202 graph a nonfatal error since it seems to be broken. Need to debug
2205 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2206 can't just check type > INVALID < LAST anymore
2208 * dbus/dbus-message.c (dbus_message_get_signature): new function
2209 (dbus_message_has_signature): new function
2210 (struct DBusMessage): add signature field (right now it isn't sent
2211 over the wire, just generated on the fly)
2212 (dbus_message_copy): copy the signature, and init strings to
2213 proper length to avoid some reallocs
2214 (dbus_message_iter_init_array_iterator): return void, since it
2216 (dbus_message_iter_init_dict_iterator): return void since it can't fail
2217 (_dbus_message_loader_queue_messages): add silly temporary hack to
2218 fill in message->signature on load
2220 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2221 characters, so they are relatively human-readable.
2223 2003-10-11 Havoc Pennington <hp@pobox.com>
2225 * dbus/dbus-message.c (_dbus_message_test): add more test
2226 coverage, but #if 0 for now since they uncover a bug
2227 not fixed yet; I think in re_align_field_recurse()
2228 (re_align_field_recurse): add FIXME about broken assertion
2230 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2232 * bus/connection.c: share a couple code bits with expirelist.c
2234 * bus/expirelist.h, bus/expirelist.c: implement a generic
2235 expire-items-after-N-seconds facility, was going to share between
2236 expiring connections and replies, decided not to use for expiring
2237 connections for now.
2239 * COPYING: include AFL 2.0 (still need to change all the file headers)
2241 2003-10-09 Havoc Pennington <hp@redhat.com>
2243 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2244 gcc 3.3. Not that we do anything about it yet.
2246 * bus/signals.c (bus_match_rule_parse): impose max length on the
2249 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2251 2003-10-09 Havoc Pennington <hp@redhat.com>
2253 Make matching rules theoretically work (add parser).
2255 * bus/bus.c (bus_context_check_security_policy): fix up to handle
2256 the case where destination is explicitly specified as bus driver
2257 and someone else is eavesdropping.
2259 * bus/policy.c (bus_client_policy_check_can_receive): fix up
2260 definition of eavesdropping and assertion
2262 * tools/dbus-send.c (main): use dbus_message_type_from_string
2264 * bus/signals.c (bus_match_rule_parse): implement
2266 * dbus/dbus-message.c (dbus_message_type_from_string): new
2268 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2270 2003-10-02 Havoc Pennington <hp@pobox.com>
2272 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2273 dbus_gproxy_oneway_call
2275 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
2276 (dbus_server_setup_with_g_main): fix to allow calling them more
2277 than once on the same args
2278 (dbus_bus_get_with_g_main): new function
2280 2003-10-02 Havoc Pennington <hp@redhat.com>
2282 * doc/dbus-tutorial.xml: write some stuff
2284 2003-09-29 Havoc Pennington <hp@pobox.com>
2286 * configure.in: split checks for Doxygen from XML docs, check for
2289 * doc/Makefile.am: XML-ify all the docs, and add a blank
2292 2003-09-29 Havoc Pennington <hp@pobox.com>
2294 * Merge dbus-object-names branch. To see the entire patch
2295 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2296 it's huuuuge though.
2297 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2299 2003-09-28 Havoc Pennington <hp@pobox.com>
2301 * HACKING: update to reflect new server
2303 2003-09-26 Seth Nickell <seth@gnome.org>
2306 * python/examples/example-signals.py:
2308 Start implementing some notions of signals. The API
2309 is really terrible, but they sort of work (with the
2310 exception of being able to filter by service, and to
2311 transmit signals *as* a particular service). Need to
2312 figure out how to make messages come from the service
2315 * python/dbus_bindings.pyx.in:
2317 Removed duplicate message_handler callbacks.
2319 2003-09-25 Havoc Pennington <hp@redhat.com>
2321 * bus/session.conf.in: fix my mess
2323 2003-09-25 Havoc Pennington <hp@pobox.com>
2325 * bus/session.conf.in: fix security policy, reported by Seth Nickell
2327 2003-09-25 Seth Nickell <seth@gnome.org>
2329 * python/examples/example-service.py:
2331 Johan notices complete wrong code in example-service, but
2332 completely wrong in a way that works exactly the same (!).
2333 Johan is confused, how could this possibly work? Example
2334 code fails to serve purpose of making things clear.
2337 2003-09-25 Mark McLoughlin <mark@skynet.ie>
2339 * doc/dbus-specification.sgml: don't require header fields
2340 to be 4-byte aligned and specify that fields should be
2341 distinguished from padding by the fact that zero is not
2344 * doc/TODO: remove re-alignment item and add item to doc
2345 the OBJECT_PATH type.
2347 * dbus/dbus-message.c:
2348 (HeaderField): rename the original member to value_offset
2349 and introduce a name_offset member to keep track of where
2350 the field actually begins.
2351 (adjust_field_offsets): remove.
2352 (append_int_field), (append_uint_field),
2353 (append_string_field): don't align the start of the header
2354 field to a 4-byte boundary.
2355 (get_next_field): impl finding the next marhsalled field
2356 after a given field.
2357 (re_align_field_recurse): impl re-aligning a number of
2358 already marshalled fields.
2359 (delete_field): impl deleting a field of any type and
2360 re-aligning any following fields.
2361 (delete_int_or_uint_field), (delete_string_field): remove.
2362 (set_int_field), (set_uint_field): no need to re-check
2363 that we have the correct type for the field.
2364 (set_string_field): ditto and impl re-aligning any
2366 (decode_header_data): update to take into account that
2367 the fields aren't 4-byte aligned any more and the new
2368 way to distinguish padding from header fields. Also,
2369 don't exit when there is too much header padding.
2370 (process_test_subdir): print the directory.
2371 (_dbus_message_test): add test to make sure a following
2372 field is re-aligned correctly after field deletion.
2374 * dbus/dbus-string.[ch]:
2375 (_dbus_string_insert_bytes): rename from insert_byte and
2376 allow the insert of multiple bytes.
2377 (_dbus_string_test): test inserting multiple bytes.
2379 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2380 warning note to docs about having to re-align any
2381 marshalled values following the string.
2383 * dbus/dbus-message-builder.c:
2384 (append_string_field), (_dbus_message_data_load):
2385 don't align the header field.
2387 * dbus/dbus-auth.c: (process_test_subdir): print the
2390 * test/break-loader.c: (randomly_add_one_byte): upd. for
2393 * test/data/invalid-messages/bad-header-field-alignment.message:
2396 * test/data/valid-messages/unknown-header-field.message: shove
2397 a dict in the unknown field.
2399 2003-09-25 Seth Nickell <seth@gnome.org>
2402 * python/dbus_bindings.pyx.in:
2404 Handle return values.
2406 * python/examples/example-client.py:
2407 * python/examples/example-service.py:
2409 Pass back return values from the service to the client.
2411 2003-09-24 Seth Nickell <seth@gnome.org>
2415 Connect Object methods (when you are sharing an object) up... pass
2416 in a list of methods to be shared. Sharing all the methods just
2417 worked out too weird. You can now create nice Services over the
2420 * python/dbus_bindings.pyx.in:
2422 Keep references to user_data tuples passed into C functions so
2423 Python doesn't garbage collect on us.
2425 Implement MethodReturn and Error subclasses of Message for creating
2426 DBusMessage's of those types.
2428 * python/examples/example-client.py:
2429 * python/examples/example-service.py:
2431 Simple example code showing both how create DBus services and objects,
2432 and how to use them.
2434 2003-09-23 Havoc Pennington <hp@pobox.com>
2436 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2438 2003-09-23 Havoc Pennington <hp@redhat.com>
2440 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2441 (dbus_gproxy_disconnect_signal): implement
2442 (dbus_gproxy_manager_remove_signal_match): implement
2443 (dbus_gproxy_manager_add_signal_match): implement
2444 (dbus_gproxy_oneway_call): implement
2446 2003-09-23 Havoc Pennington <hp@pobox.com>
2448 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2449 subclass. This means dropping the transparent thread safety of the
2450 proxy; you now need a separate proxy per-thread, or your own
2451 locking on the proxy. Probably right anyway.
2452 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2454 2003-09-22 Havoc Pennington <hp@redhat.com>
2456 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2458 2003-09-21 Seth Nickell <seth@gnome.org>
2460 First checkin of the Python bindings.
2462 * python/.cvsignore:
2463 * python/Makefile.am:
2464 * python/dbus_bindings.pyx.in:
2465 * python/dbus_h_wrapper.h:
2467 Pieces for Pyrex to operate on, building a dbus_bindings.so
2468 python module for low-level access to the DBus APIs.
2472 High-level Python module for accessing DBus objects.
2477 Build stuff for the python bindings.
2481 Extra macro needed for finding the Python C header files.
2483 2003-09-21 Havoc Pennington <hp@pobox.com>
2485 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2486 implementing the proxy manager, didn't get very far.
2488 * dbus/dbus-bus.c (dbus_bus_add_match): new
2489 (dbus_bus_remove_match): new
2491 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2492 path_name argument; adjust the other not-yet-implemented
2493 gproxy constructors to be what I think they should be.
2495 2003-09-21 Havoc Pennington <hp@pobox.com>
2497 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2498 by default for message bus connections.
2500 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2501 exit_on_disconnect flag is set and we process the disconnected
2503 (dbus_connection_set_exit_on_disconnect): new function
2505 2003-09-21 Havoc Pennington <hp@pobox.com>
2507 Get matching rules mostly working in the bus; only actually
2508 parsing the rule text remains. However, the client side of
2509 "signal connections" hasn't been started, this patch is only the
2512 * dbus/dispatch.c: fix for the matching rules changes
2514 * bus/driver.c (bus_driver_handle_remove_match)
2515 (bus_driver_handle_add_match): send an ack reply from these
2518 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2519 arguments, reported by Seth Nickell
2521 * bus/config-parser.c (append_rule_from_element): support
2522 eavesdrop=true|false attribute on policies so match rules
2523 can be prevented from snooping on the system bus.
2525 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2526 and "destination" in attribute names; fix some docs bugs;
2527 add eavesdrop=true|false attribute
2529 * bus/driver.c (bus_driver_handle_add_match)
2530 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2533 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2534 rid of broadcast service concept, signals are just always broadcast
2536 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2537 mostly implement matching rules stuff (currently only exposed as signal
2540 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2542 * doc/dbus-specification.sgml: Change the header field name
2543 to be an enum and update the rest of the spec to reference
2544 the fields using the conventinal name.
2546 * dbus/dbus-protocol.h: update to reflect the spec.
2548 * doc/TODO: add item to remove the 4 byte alignment requirement.
2550 * dbus/dbus-message.c: Remove the code to generalise the
2551 header/body length and serial number header fields as named
2552 header fields so we can reference field names using the
2554 (append_int_field), (append_uint_field), (append_string_field):
2555 Append the field name as a byte rather than four chars.
2556 (delete_int_or_uint_field), (delete_string_field): reflect the
2557 fact that the field name and typecode now occupy 4 bytes instead
2559 (decode_string_field), (decode_header_data): update to reflect
2560 protocol changes and move the field specific encoding from
2561 decode_string_field() back into decode_header_data().
2563 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2564 Add utility to aid debugging.
2566 * dbus/dbus-message-builder.c:
2567 (append_string_field), (_dbus_message_data_load): Update to
2568 reflect protocol changes; Change the FIELD_NAME directive
2569 to HEADER_FIELD and allow it to take the field's conventional
2570 name rather than the actual value.
2572 * test/data/*/*.message: Update to use HEADER_FIELD instead
2573 of FIELD_NAME; Always align the header on an 8 byte boundary
2574 *before* updating the header length.
2576 2003-09-15 Havoc Pennington <hp@pobox.com>
2578 * dbus/dbus-pending-call.c: add the get/set object data
2579 boilerplate as for DBusConnection, etc. Use generic object data
2580 for the notify callback.
2582 * glib/dbus-gparser.c (parse_node): parse child nodes
2584 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2586 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2587 contain functions shared between the convenience lib and the
2590 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2591 -export-symbols-regex to the GLib library
2593 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2594 fix the locking in here, and add a default handler for
2595 Introspect() that just returns sub-nodes.
2597 2003-09-14 Havoc Pennington <hp@pobox.com>
2599 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2600 rather than gfoo consistent
2602 * glib/dbus-gproxy.h: delete for now, move contents to
2603 dbus-glib.h, because the include files don't work right since we
2604 aren't in the dbus/ subdir.
2606 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2607 (dbus_gproxy_end_call): finish
2608 (dbus_gproxy_begin_call): finish
2610 * glib/dbus-gmain.c (dbus_set_g_error): new
2612 * glib/dbus-gobject.c (handle_introspect): include information
2613 about child nodes in the introspection
2615 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2616 function to help in implementation of introspection
2618 * dbus/dbus-object-tree.c
2619 (_dbus_object_tree_list_registered_and_unlock): new function
2621 2003-09-12 Havoc Pennington <hp@pobox.com>
2623 * glib/dbus-gidl.h: add common base class for all the foo_info
2626 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2629 * test/Makefile.am: try test srcdir -ef . in addition to test
2630 srcdir = ., one of them should work (yeah lame)
2632 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2635 * glib/dbus-gparser.h: make description_load routines return
2636 NodeInfo* not Parser*
2638 * Makefile.am (SUBDIRS): build test dir after all library dirs
2640 * configure.in: add GTK+ detection
2642 2003-09-07 Havoc Pennington <hp@pobox.com>
2644 * Make Doxygen contented.
2646 2003-09-07 Havoc Pennington <hp@pobox.com>
2648 * doc/dbus-specification.sgml: more updates
2650 2003-09-06 Havoc Pennington <hp@pobox.com>
2652 * doc/dbus-specification.sgml: partial updates
2654 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2655 zillionth time; hopefully I edited the right file this time.
2657 * bus/config-parser.c (append_rule_from_element): support
2658 send_type, send_path, receive_type, receive_path
2660 * bus/policy.c: add message type and path to the list of things
2661 that can be "firewalled"
2663 2003-09-06 Havoc Pennington <hp@pobox.com>
2665 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2666 (dbus_connection_register_object_path): make this not handle
2667 messages to paths below the given path
2669 2003-09-03 Havoc Pennington <hp@pobox.com>
2671 * test/glib/Makefile.am: add this with random glib-linked test
2674 * glib/Makefile.am: remove the random test programs from here,
2675 leave only the unit tests
2677 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
2678 uscore/javacaps conversion, and fix
2679 (get_object_property, set_object_property): change to .NET
2680 convention for mapping props to methods, set_FooBar/get_FooBar,
2681 since one language has such a convention we may as well copy it.
2682 Plus real methods in either getFooBar or get_foo_bar style won't
2683 collide with this convention.
2685 2003-09-01 Havoc Pennington <hp@pobox.com>
2687 * glib/dbus-gparser.c: implement
2689 * glib/dbus-gobject.c: start implementing skeletons support
2691 * configure.in: when disabling checks/assert, also define
2692 G_DISABLE_ASSERT and G_DISABLE_CHECKS
2694 2003-09-01 Havoc Pennington <hp@pobox.com>
2696 * glib/Makefile.am: rearrange a bunch of files and get "make
2697 check" framework set up
2699 2003-08-31 Havoc Pennington <hp@pobox.com>
2701 * fix build with --disable-tests
2703 2003-08-30 Havoc Pennington <hp@pobox.com>
2705 * dbus/dbus-connection.c: purge DBusMessageHandler
2707 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
2708 use callbacks everywhere
2710 2003-08-30 Havoc Pennington <hp@pobox.com>
2712 * test/data/valid-config-files/system.d/test.conf: change to
2713 root for the user so warnings don't get printed
2715 * dbus/dbus-message.c: add dbus_message_get_path,
2716 dbus_message_set_path
2718 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2719 dispatching to a path
2721 * dbus/dbus-string.c (_dbus_string_validate_path): add
2723 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2724 (_dbus_marshal_object_path): implement
2726 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
2727 to contain the path to the target object
2728 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2729 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2731 2003-08-30 Havoc Pennington <hp@pobox.com>
2733 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2735 2003-08-29 Havoc Pennington <hp@pobox.com>
2737 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
2739 (struct DBusObjectSubtree): shrink this
2740 a lot, since we may have a lot of them
2741 (_dbus_object_tree_free_all_unlocked): implement
2742 (_dbus_object_tree_dispatch_and_unlock): implement
2744 2003-08-29 Havoc Pennington <hp@pobox.com>
2746 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
2748 2003-08-28 Havoc Pennington <hp@pobox.com>
2752 * dbus/dbus-connection.c: port to no ObjectID, create a
2753 DBusObjectTree, rename ObjectTree to ObjectPath in public API
2755 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
2756 everything except UnregisterFunction and MessageFunction
2758 * dbus/dbus-marshal.c: port away from DBusObjectID,
2759 add DBUS_TYPE_OBJECT_PATH
2761 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
2762 dbus/dbus-objectid.[hc]: remove these, we are moving to
2763 path-based object IDs
2765 2003-08-25 Havoc Pennington <hp@pobox.com>
2767 Just noticed that dbus_message_test is hosed, I wonder when I
2768 broke that. I thought make check was passing earlier...
2770 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
2771 container tree, will replace most of dbus-object-registry
2773 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
2776 2003-08-19 Havoc Pennington <hp@pobox.com>
2778 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
2779 (dbus_message_is_error): fix this function
2781 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
2784 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
2785 reflect clarified man page
2786 (bus_client_policy_check_can_send): ditto
2788 * bus/session.conf.in: fixup
2790 * bus/system.conf.in: fixup
2792 2003-08-18 Havoc Pennington <hp@redhat.com>
2794 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
2796 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2797 dumb bug created earlier (wrong order of args to
2798 decode_header_data())
2800 * tools/dbus-send.c: port
2802 * tools/dbus-print-message.c (print_message): port
2804 * test/data/*messages: port all messages over
2806 * dbus/dbus-message-builder.c: support including
2809 * bus/driver.c: port over
2811 * bus/dispatch.c: port over to new stuff
2813 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2814 rename disconnect signal to "Disconnected"
2816 2003-08-17 Havoc Pennington <hp@pobox.com>
2818 This doesn't compile yet, but syncing up so I can hack on it from
2819 work. What are branches for if not broken code? ;-)
2821 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
2822 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
2823 DBUS_HEADER_FIELD_ERROR_NAME
2825 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
2826 for the interface+member pairs
2827 (string_hash): change to use g_str_hash algorithm
2828 (find_direct_function, find_string_function): refactor these to
2831 * dbus/dbus-message.c: port all of this over to support
2832 interface/member fields instead of name field
2834 * dbus/dbus-object-registry.c: port over
2836 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
2837 from _dbus_string_validate_name
2839 * bus/dbus-daemon-1.1: change file format for the
2840 <deny>/<allow> stuff to match new message naming scheme
2842 * bus/policy.c: port over
2844 * bus/config-parser.c: parse new format
2846 2003-08-16 Havoc Pennington <hp@pobox.com>
2848 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
2851 * glib/dbus-gproxy.c: some hacking
2853 2003-08-15 Havoc Pennington <hp@redhat.com>
2855 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
2857 * dbus/dbus-connection.c
2858 (dbus_connection_send_with_reply_and_block): factor out internals;
2859 change to convert any error replies to DBusError instead of
2860 returning them as a message
2862 2003-08-15 Havoc Pennington <hp@pobox.com>
2864 * dbus/dbus-connection.c,
2865 dbus/dbus-pending-call.c: Finish the pending call stuff
2867 2003-08-14 Havoc Pennington <hp@redhat.com>
2869 * dbus/dbus-pending-call.c: start on new object that will replace
2870 DBusMessageHandler and ReplyHandlerData for tracking outstanding
2873 * dbus/dbus-gproxy.c: start on proxy object used to communicate
2874 with remote interfaces
2876 * dbus/dbus-gidl.c: do the boring boilerplate in here
2878 2003-08-12 Havoc Pennington <hp@pobox.com>
2880 * bus/dispatch.c (bus_dispatch): make this return proper
2881 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
2883 * dbus/dbus-errors.c (dbus_set_error): use
2884 _dbus_string_append_printf_valist
2886 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
2887 (_dbus_string_append_printf): new
2889 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
2892 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
2893 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
2894 message is unhandled.
2896 2003-08-11 Havoc Pennington <hp@pobox.com>
2898 * bus/test.c (client_disconnect_handler): change to return
2899 HANDLED (would have been REMOVE_MESSAGE)
2901 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
2902 HANDLED/NOT_YET_HANDLED instead of
2903 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
2906 2003-08-10 Havoc Pennington <hp@pobox.com>
2908 * tools/dbus-send.c (main): add --type argument, for now
2909 supporting only method_call and signal types.
2911 * tools/dbus-print-message.c: print message type
2913 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2914 init connection->objects
2916 * doc/dbus-specification.sgml: fix sgml
2918 * bus/*.c: port over to object-instance API changes
2920 * test/test-service.c: ditto
2922 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
2923 name, we will have to fix up the rest of the code to also handle
2925 (dbus_message_new): generic message-creation call
2926 (set_string_field): allow appending name field
2928 2003-08-06 Havoc Pennington <hp@pobox.com>
2930 * dbus/dbus-object-registry.c: implement signal connection
2933 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
2935 * dbus/dbus-internals.c (_dbus_memdup): new function
2937 2003-08-02 Havoc Pennington <hp@pobox.com>
2939 * dbus/dbus-message.c (dbus_message_get_no_reply)
2940 (dbus_message_set_no_reply): add these and remove
2941 set_is_error/get_is_error
2943 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
2944 remove the ERROR flag, since there's now an ERROR type
2946 2003-08-01 Havoc Pennington <hp@pobox.com>
2948 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
2951 * dbus/dbus-message.c (dbus_message_get_type): new function
2953 * doc/dbus-specification.sgml: add "type" byte to messages
2955 2003-08-01 Havoc Pennington <hp@pobox.com>
2957 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
2958 a message type enum to distinguish kinds of message
2959 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
2960 that need not be replied to
2962 2003-08-01 Havoc Pennington <hp@pobox.com>
2964 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
2965 (unpack_8_octets): fix no-64-bit-int bug
2967 * dbus/dbus-object-registry.c (validate_id): validate the
2968 connection ID bits, not just the instance ID.
2970 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
2971 the connection-global 33 bits of the object ID
2973 * dbus/dbus-object-registry.c (info_from_entry): fill in
2974 object ID in the new way
2976 * dbus/dbus-objectid.h: rather than high/low bits, specifically
2977 define server/client/instance bits.
2979 2003-07-30 Havoc Pennington <hp@pobox.com>
2981 * dbus/dbus-connection.c (dbus_connection_register_object): fix
2984 2003-07-13 Havoc Pennington <hp@pobox.com>
2986 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2987 fields to DBusObjectVTable and DBusObjectInfo
2989 2003-07-12 Havoc Pennington <hp@pobox.com>
2991 * dbus/dbus-object-registry.c: implement unit test,
2992 fix bugs discovered in process
2994 * dbus/dbus-connection.c: remove handler_table and
2995 register_handler(), add DBusObjectRegistry usage
2997 * dbus/dbus-objectid.c (dbus_object_id_is_null)
2998 (dbus_object_id_set_null): new functions
3000 2003-07-08 Havoc Pennington <hp@pobox.com>
3002 * dbus/dbus-object.c: implement some of this
3004 * dbus/dbus-object-registry.c
3005 (_dbus_object_registry_add_and_unlock): fill in the object_id out
3007 (_dbus_object_registry_new): handle OOM
3009 2003-07-08 Havoc Pennington <hp@pobox.com>
3011 * dbus/dbus-object.h: sketch out an API for registering objects
3012 with a connection, that allows us to use as little as 24 bytes
3013 per object and lets application code represent an object in
3014 any conceivable way.
3016 * dbus/dbus-object-registry.c: implement the hard bits of the
3017 DBusConnection aspect of object API. Not yet wired up.
3019 2003-07-06 Havoc Pennington <hp@pobox.com>
3021 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3022 (_dbus_marshal_object_id): new
3023 (_dbus_demarshal_object_id): new
3024 (_dbus_marshal_get_arg_end_pos): support object ID type, and
3025 consolidate identical switch cases. Don't conditionalize handling
3026 of DBUS_TYPE_UINT64, need to handle the type always.
3027 (_dbus_marshal_validate_arg): consolidate identical cases, and
3028 handle DBUS_TYPE_OBJECT_ID
3030 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3032 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3034 2003-09-28 Havoc Pennington <hp@pobox.com>
3038 2003-09-28 Havoc Pennington <hp@pobox.com>
3040 * doc/Makefile.am (dbus-specification.html): testing a funky hack
3041 to work with Debian db2html
3043 2003-09-28 Havoc Pennington <hp@pobox.com>
3045 * configure.in: 0.13
3047 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3048 stylesheet-images for benefit of Debian
3050 Change back to using filesystem-linked sockets for the system
3051 bus, so only root can create the default system bus address.
3053 * bus/system.conf.in: change to use
3054 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3056 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3059 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3060 here, and AC_DEFINE DBUS_SYSTEM_PATH
3062 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3065 * doc/busconfig.dtd:
3068 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3070 * doc/dbus-specification.sgml:
3071 Add activation reply values.
3073 2003-08-05 Havoc Pennington <hp@redhat.com>
3075 * configure.in: 0.12
3077 2003-08-05 Anders Carlsson <andersca@codefactory.se>
3079 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3080 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3081 (add_watch), (remove_watch), (create_source):
3082 Refcount fds, fixes some reentrancy issues.
3084 2003-07-30 Havoc Pennington <hp@redhat.com>
3086 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3087 bus address to be abstract if we have abstract sockets
3091 2003-07-28 Havoc Pennington <hp@redhat.com>
3093 * bus/messagebus.in: fix to avoid processname/servicename
3094 confusion, from Michael Kearey
3095 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3097 2003-07-23 Havoc Pennington <hp@pobox.com>
3099 * dbus/dbus-message.c (dbus_message_iter_get_named):
3100 fix from Andy Hanton to remove broken "+1"
3102 2003-07-16 Havoc Pennington <hp@pobox.com>
3104 * tools/dbus-launch.c (babysit): close stdout/stderr in the
3105 babysitter process, as suggested by Thomas Leonard, so
3106 an "eval `dbus-launch --exit-with-session`" will actually
3109 2003-07-16 Havoc Pennington <hp@pobox.com>
3111 * configure.in: print out EXPANDED_* variables in the summary at
3112 the end; clean up the code that computes EXPANDED_ variables and
3113 get the ones using exec_prefix right. Should make things work
3114 when you build without --prefix
3116 2003-06-29 Havoc Pennington <hp@pobox.com>
3118 * mono/Test.cs (class Test): fire up a main loop and run it
3120 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3121 done once, the app has to do it
3123 2003-06-26 Havoc Pennington <hp@pobox.com>
3125 * mono/Connection.cs: set up connection with the glib main loop
3127 2003-07-01 Havoc Pennington <hp@redhat.com>
3129 * doc/dbus-specification.sgml: clarify the format of a type code,
3130 change suggested by Jim Blandy
3132 2003-06-29 Miloslav Trmac <mitr@volny.cz>
3135 * tools/Makefile.am: Don't assume srcdir == builddir.
3137 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3138 the allocated block.
3139 (_dbus_memory_test): New function.
3140 * dbus/dbus-test.h: Add _dbus_memory_test ().
3141 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3143 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3145 (dbus_message_new): Remove obsolete @todo.
3147 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3148 (_dbus_marshal_set_uint64): Fix comment.
3150 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3151 hardcode FIELD_REPLY_SERIAL.
3153 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3154 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3156 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3157 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3159 2003-06-24 Havoc Pennington <hp@pobox.com>
3161 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3163 2003-06-23 Anders Carlsson <andersca@codefactory.se>
3169 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3170 * gcj/org/.cvsignore:
3171 * gcj/org/Makefile.am:
3172 * gcj/org/freedesktop/.cvsignore:
3173 * gcj/org/freedesktop/Makefile.am:
3174 * gcj/org/freedesktop/dbus/.cvsignore:
3175 * gcj/org/freedesktop/dbus/Makefile.am:
3176 * gcj/org/freedesktop/dbus/Message.java: (Message),
3178 * gcj/org/freedesktop/dbus/natMessage.cc:
3179 Fix the build system.
3181 2003-06-22 Havoc Pennington <hp@pobox.com>
3183 * mono/Connection.cs: add more bindings
3185 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3188 2003-06-22 Havoc Pennington <hp@pobox.com>
3190 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3191 Start wrapping more stuff.
3193 2003-06-22 Havoc Pennington <hp@pobox.com>
3195 * mono/Message.cs: implement Message.Wrap() that ensures we only
3196 have a single C# wrapper per DBusMessage, assuming it works which
3197 it probably doesn't.
3199 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3200 (dbus_message_free_data_slot): new
3201 (dbus_message_set_data): new
3202 (dbus_message_get_data): new
3204 2003-06-22 Havoc Pennington <hp@pobox.com>
3206 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3207 (_dbus_data_slot_allocator_alloc): rework these to keep a
3208 reference count on each slot and automatically manage a global
3209 slot ID variable passed in by address
3211 * bus/bus.c: convert to new dataslot API
3213 * dbus/dbus-bus.c: convert to new dataslot API
3215 * dbus/dbus-connection.c: convert to new dataslot API
3217 * dbus/dbus-server.c: convert to new dataslot API
3219 * glib/dbus-gmain.c: ditto
3223 * bus/connection.c: ditto
3225 2003-06-22 Anders Carlsson <andersca@codefactory.se>
3227 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3228 after the gcj checks so that the correct configuration tags
3229 will be added to libtool.
3231 * dbus-glib-1.pc.in: No need to specify any includes since
3232 dbus-1.pc.in has those.
3234 2003-06-22 Havoc Pennington <hp@pobox.com>
3236 * mono/*, gcj/*, configure.in, Makefile.am:
3237 Check in makefiles and subdirs for mono and gcj bindings.
3238 Neither binding actually exists, just trying to get through
3239 all the build and other boring bits.
3241 2003-06-21 Philip Blundell <philb@gnu.org>
3243 * tools/dbus-monitor.1: Updated.
3245 * tools/dbus-send.1: Likewise.
3247 2003-06-20 Anders Carlsson <andersca@codefactory.se>
3249 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3250 for hangup and error after checking read so we won't discard
3251 pending data if both hangup and read are set.
3253 2003-06-19 Philip Blundell <philb@gnu.org>
3255 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3257 * tools/dbus-send.c: Accept both --system and --session.
3259 * tools/dbus-monitor.c: Same here.
3261 2003-06-19 Anders Carlsson <andersca@codefactory.se>
3263 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3264 from C++ (Patch by Miloslav Trmac).
3266 2003-06-15 Joe Shaw <joe@assbarn.com>
3268 * configure.in: Check for socklen_t.
3270 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3272 * test/test-segfault.c: Add #include <sys/time.h>
3274 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3275 dbus-launch needs it.
3277 2003-06-09 Havoc Pennington <hp@redhat.com>
3279 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3280 SUN_LEN, it breaks abstract socket usage
3282 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3285 2003-06-04 Havoc Pennington <hp@pobox.com>
3287 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3288 using unix:abstract=/foo, and when listening in a tmpdir
3289 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3291 * dbus/dbus-transport.c (_dbus_transport_open): support
3294 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3295 support abstract sockets
3297 * dbus/dbus-transport-unix.c
3298 (_dbus_transport_new_for_domain_socket): support abstract sockets
3300 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3301 toggle as an argument, implement abstract namespace support
3302 (_dbus_listen_unix_socket): ditto
3304 * configure.in: add --enable-abstract-sockets and implement
3305 a configure check for autodetection of the right value.
3307 2003-06-01 Havoc Pennington <hp@pobox.com>
3309 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3310 in /tmp (though on Linux this will end up being useless,
3311 when we add abstract namespace support)
3313 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3316 2003-05-28 Colin Walters <walters@verbum.org>
3318 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3320 2003-05-18 Anders Carlsson <andersca@codefactory.se>
3322 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3324 2003-05-17 Colin Walters <walters@gnu.org>
3326 * tools/dbus-send.c: Don't exit with an error code if --help was
3327 passed. Default to using the session bus instead of the system
3330 * tools/dbus-launch.c: Ditto.
3332 * tools/dbus-monitor.c: Ditto.
3334 * tools/dbus-send.1: Update with new arguments.
3336 * tools/dbus-launch.c: Emit code to export variables. New
3337 arguments -s and -c to specify shell syntax, and a bit of code to
3338 autodetect syntax. Also, allow specifying a program to run.
3340 * tools/dbus-launch.1: Update with new arguments.
3342 * tools/dbus-send.1: Ditto.
3344 * tools/dbus-monitor.1: Ditto.
3346 2003-05-17 Havoc Pennington <hp@pobox.com>
3348 * bus/config-parser.c (merge_included): merge in policies from
3349 child configuration file.
3351 * bus/policy.c (bus_policy_merge): function to merge two policies
3354 2003-05-16 Havoc Pennington <hp@redhat.com>
3356 * dbus/dbus-connection.c: disable verbose lock spew
3358 * tools/dbus-send.c: add --print-reply command line option
3360 * tools/dbus-print-message.h (print_message): new util function
3361 shared by dbus-send and dbus-monitor
3363 * tools/dbus-monitor.c (handler_func): exit on disconnect
3365 * dbus/dbus-transport-unix.c (do_reading): if the transport is
3366 disconnected, don't try to use the read_watch
3368 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3369 so we can find this bug more easily
3371 2003-05-16 Havoc Pennington <hp@redhat.com>
3373 * bus/policy.c (free_rule_list_func): avoid a crash when passed
3374 NULL as DBusHashTable is annoyingly likely to do.
3376 2003-05-16 Colin Walters <walters@verbum.org>
3378 * tools/dbus-monitor.c: Add --session argument and usage()
3381 * tools/dbus-monitor.1: Update with new --session arg.
3383 * bus/Makefile.am (install-data-hook): Create
3384 $(libdir)/dbus-1.0/services so that the session bus is happy.
3386 2003-05-15 Havoc Pennington <hp@redhat.com>
3388 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3389 on non-x86. ifdef's are evil.
3391 2003-05-15 Havoc Pennington <hp@redhat.com>
3393 * configure.in: 0.11
3397 * bus/Makefile.am (initddir): apparently we are supposed to put
3398 init scripts in /etc/rc.d/init.d not /etc/init.d
3400 * bus/Makefile.am: remove the "you must --enable-tests to make
3401 check" as it broke distcheck
3403 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3405 2003-05-13 James Willcox <jwillcox@gnome.org>
3408 * bus/activation.c: (bus_activation_service_created),
3409 (bus_activation_activate_service):
3410 * bus/driver.c: (bus_driver_send_service_deleted),
3411 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3412 (bus_driver_send_service_acquired),
3413 (bus_driver_send_welcome_message),
3414 (bus_driver_handle_list_services):
3415 * bus/session.conf.in:
3416 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3417 (dbus_bus_service_exists), (dbus_bus_activate_service):
3420 Add some convenience API which lets you activate a service, and did a
3421 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3422 and dbus_message_get_args()
3424 2003-05-11 Havoc Pennington <hp@pobox.com>
3426 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3427 calling _dbus_marshal_validate_arg() for every byte in a byte
3430 * dbus/dbus-message-handler.c: use atomic reference counting to
3431 reduce number of locks slightly; the global lock in here sucks
3433 * dbus/dbus-connection.c
3434 (_dbus_connection_update_dispatch_status_and_unlock): variant of
3435 update_dispatch_status that can be called with lock held; then use
3436 in a couple places to reduce locking/unlocking
3437 (dbus_connection_send): hold the lock over the whole function
3438 instead of acquiring it twice.
3440 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3442 * bus/connection.c (bus_connections_setup_connection): fix access
3443 to already-freed memory.
3445 * dbus/dbus-connection.c: keep a little cache of linked list
3446 nodes, to avoid using the global linked list alloc lock in the
3447 normal send-message case. Instead we just use the connection lock
3448 that we already have to take.
3450 * dbus/dbus-list.c (_dbus_list_find_last): new function
3452 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3453 change to use a struct for the atomic type; fix docs,
3454 they return value before increment, not after increment.
3456 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3457 (_dbus_string_append_8_aligned): new functions to try to
3458 microoptimize this operation.
3459 (reallocate_for_length): break this out of set_length(), to
3460 improve profile info, and also so we can consider inlining the
3463 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3464 strings with some preallocation, cuts down on our calls to realloc
3465 a fair bit. Though if we can get the "move entire string to empty
3466 string" optimization below to kick in here, it would be better.
3468 * dbus/dbus-string.c (_dbus_string_move): just call
3469 _dbus_string_move_len
3470 (_dbus_string_move_len): add a special case for moving
3471 an entire string into an empty string; we can just
3472 swap the string data instead of doing any reallocs.
3473 (_dbus_string_init_preallocated): new function
3475 2003-05-11 Havoc Pennington <hp@pobox.com>
3477 Write a "test-profile" that does echo client-server with threads;
3478 profile reveals lock contention, memcpy/realloc of buffers, and
3479 UTF-8 validation as hot spots. 20% of lock contention eliminated
3480 with dbus_atomic_inc/dec implementation on x86. Much remaining
3481 contention is global mempool locks for GList and DBusList.
3483 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3486 * dbus/dbus-connection.c (struct DBusConnection): use
3487 dbus_atomic_t for the reference count
3489 * dbus/dbus-message.c (struct DBusMessage): declare
3490 dbus_atomic_t values as volatile
3492 * configure.in: code to detect ability to use atomic integer
3493 operations in assembly, from GLib patch
3495 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3496 time, tired of it being wrong in threads and forked processes
3498 * glib/test-profile.c: a little program to bounce messages back
3499 and forth between threads and eat CPU
3501 * dbus/dbus-connection.c: add debug spew macros for debugging
3502 thread locks; include config.h at top; fix deadlock in
3503 dbus_connection_flush()
3505 2003-05-08 Havoc Pennington <hp@pobox.com>
3507 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3508 data from getting written, and there wasn't a good reason to
3511 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3512 dbus_verbose lines in test coverage
3513 (main): add list of functions sorted by # of untested blocks
3514 to the coverage report
3516 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3518 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3520 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3521 extend test coverage
3523 * test/data/auth/cancel.auth-script: test canceling an
3526 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3527 aren't used. in CVS history if we end up needing them.
3529 2003-05-04 Havoc Pennington <hp@pobox.com>
3531 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3534 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3535 function, which assumed length was in # of strings, not bytes
3537 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3540 * dbus/dbus-connection.c
3541 (_dbus_connection_queue_received_message): disable function for
3542 now, we are only using it in test mode
3544 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3545 remove a mistaken FIXME
3547 2003-05-04 Havoc Pennington <hp@pobox.com>
3549 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3550 unlock mutex on successful return, patch from Anders Gustafsson
3552 2003-05-04 Havoc Pennington <hp@pobox.com>
3554 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3557 2003-05-04 Havoc Pennington <hp@pobox.com>
3559 * tools/dbus-launch.c: implement
3561 * bus/main.c (main), bus/bus.c (bus_context_new):
3562 implement --print-pid and --fork
3564 2003-05-03 Havoc Pennington <hp@redhat.com>
3566 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3567 the address had no value, and add to test suite. Fix and
3568 regression test from Miloslav Trmac
3570 2003-05-03 Havoc Pennington <hp@pobox.com>
3572 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3573 watch is invalid when handled
3575 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3576 dbus-launch utility to launch the bus from a shell script. Didn't
3577 actually implement dbus-launch yet, it's just a placeholder still.
3579 2003-05-03 Havoc Pennington <hp@pobox.com>
3581 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3582 daemon; also documents daemon config file, so replaces
3583 doc/config-file.txt. Corrected some stuff from config-file.txt in
3584 the process of moving it.
3586 2003-05-03 Havoc Pennington <hp@pobox.com>
3588 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3591 2003-05-03 Colin Walters <walters@verbum.org>
3593 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3594 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3596 * Makefile.am: Update to use new .pc versioning scheme.
3598 2003-05-02 Havoc Pennington <hp@redhat.com>
3600 * bus/system.conf.in: allow send/receive to/from message bus
3603 2003-04-30 Havoc Pennington <hp@redhat.com>
3605 * configure.in: print a note when building with unit tests and
3608 2003-04-30 Havoc Pennington <hp@redhat.com>
3610 * Makefile.am: add a check-local that complains if you didn't
3611 configure with --enable-tests
3613 2003-04-29 Havoc Pennington <hp@redhat.com>
3615 * glib/dbus-gmain.c: docs cleanups
3617 * dbus/dbus-types.h: add docs on int64 types
3619 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3620 public API docs section
3622 2003-04-29 Havoc Pennington <hp@redhat.com>
3624 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3625 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3626 parallel install API version, not with the D-BUS package version.
3628 * HACKING: move some of README over here
3630 * README: updates, and document API/ABI policy
3632 * configure.in: reindentation
3634 2003-04-29 Havoc Pennington <hp@redhat.com>
3636 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3637 to use this library" to be sure people have the right
3640 2003-04-28 Havoc Pennington <hp@redhat.com>
3642 * configure.in: add --enable-docs which by default is auto yes if
3643 doxygen and db2html found, no otherwise; but can be forced on/off
3645 * doc/Makefile.am: conditionalize whether to build docs on
3648 2003-04-28 Havoc Pennington <hp@redhat.com>
3650 * configure.in: 0.10
3654 * bus/system.conf.in: add <includedir>system.d</includedir>
3656 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3657 username was provided but not uid
3659 * bus/config-parser.c (struct BusConfigParser): keep track of
3660 whether the parser is toplevel or was included; change some
3661 of the error handling if it's included.
3663 2003-04-27 Havoc Pennington <hp@pobox.com>
3667 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3668 report correct status if we finish processing authentication
3669 inside this function.
3671 * bus/activation.c (try_send_activation_failure): use
3672 bus_transaction_send_error_reply
3674 * bus/connection.c (bus_connection_get_groups): return an error
3675 explaining the problem
3677 * bus/bus.c (bus_context_check_security_policy): implement
3678 restriction here that inactive connections can only send the
3679 hello message. Also, allow bus driver to send anything to
3682 * bus/connection.c (bus_connection_complete): create the
3683 BusClientPolicy here instead of on-demand.
3684 (bus_connection_get_policy): don't return an error
3686 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3687 sender field in message being replied to
3689 * bus/bus.c (bus_context_check_security_policy): fix silly typo
3690 causing it to return FALSE always
3692 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3693 we checked sender rather than destination
3695 2003-04-25 Havoc Pennington <hp@redhat.com>
3697 test suite is slightly hosed at the moment, will fix soon
3699 * bus/connection.c (bus_connections_expire_incomplete): fix to
3700 properly disable the timeout when required
3701 (bus_connection_set_name): check whether we can remove incomplete
3702 connections timeout after we complete each connection.
3704 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3705 probably still broken.
3707 * bus/services.c (bus_registry_acquire_service): implement max
3708 number of services owned, and honor allow/deny rules on which
3709 services a connection can own.
3711 * bus/connection.c (bus_connection_get_policy): report errors here
3713 * bus/activation.c: implement limit on number of pending
3716 2003-04-25 Havoc Pennington <hp@redhat.com>
3718 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3719 where we used >= 0 instead of != DBUS_UID_UNSET.
3721 2003-04-25 Havoc Pennington <hp@redhat.com>
3723 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3724 were toggled without add/remove, fix from Anders Gustafsson
3726 2003-04-24 Havoc Pennington <hp@redhat.com>
3728 * test/data/valid-config-files/basic.conf: add <limit> tags to
3731 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3732 <limit> tag in configuration file.
3734 2003-04-24 Havoc Pennington <hp@redhat.com>
3736 * bus/dispatch.c: somehow missed some name_is
3738 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
3739 (_dbus_timeout_set_interval): new
3741 * bus/connection.c (bus_connections_setup_connection): record time
3742 when each connection is first set up, and expire them after the
3743 auth timeout passes.
3745 2003-04-24 Havoc Pennington <hp@redhat.com>
3747 * dbus/dbus-message.c (dbus_message_name_is): rename
3748 (dbus_message_service_is): rename
3749 (dbus_message_sender_is): rename
3750 (dbus_message_get_service): rename
3752 2003-04-24 Havoc Pennington <hp@redhat.com>
3754 * configure.in: add --enable-checks
3756 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
3758 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
3759 to use thread locks.
3760 (_dbus_connection_handler_destroyed_locked): move some private
3761 functions into proper docs group
3763 * dbus/dbus-internals.h: add _dbus_return_if_fail,
3764 _dbus_return_val_if_fail
3766 Throughout: use dbus_return_if_fail
3768 2003-04-23 James Willcox <jwillcox@gnome.org>
3771 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
3772 (dbus_connection_setup_with_g_main),
3773 (dbus_server_setup_with_g_main):
3774 * glib/test-dbus-glib.c: (main):
3775 * glib/test-thread-client.c: (main):
3776 * glib/test-thread-server.c: (new_connection_callback), (main):
3777 * tools/dbus-monitor.c: (main):
3779 Added a GMainContext argument to dbus_connection_setup_with_g_main()
3780 and dbus_server_setup_with_g_main().
3782 2003-04-20 Havoc Pennington <hp@pobox.com>
3784 * doc/dbus-specification.sgml: document the restrictions on
3785 message and service names
3787 2003-04-22 Havoc Pennington <hp@redhat.com>
3789 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
3790 support, and do some code cleanups to share more code and
3791 speed up array marshal/demarshal.
3793 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
3795 * configure.in: generate dbus-arch-deps.h
3797 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
3800 2003-04-22 Havoc Pennington <hp@redhat.com>
3802 * test/data/valid-messages/opposite-endian.message: fix test
3803 to use proper type for rply field
3805 * test/data/invalid-messages: add tests for below validation
3807 * dbus/dbus-message.c (decode_header_data): validate field types,
3808 and validate that named fields are valid names
3809 (decode_name_field): consider messages in the
3810 org.freedesktop.Local. namespace to be invalid.
3812 * dbus/dbus-string.c (_dbus_string_validate_name): new
3814 2003-04-19 Havoc Pennington <hp@pobox.com>
3816 * bus/driver.c (bus_driver_handle_hello): check limits and
3817 return an error if they are exceeded.
3819 * bus/connection.c: maintain separate lists of active and inactive
3820 connections, and a count of each. Maintain count of completed
3821 connections per user. Implement code to check connection limits.
3823 * dbus/dbus-list.c (_dbus_list_unlink): export
3825 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
3826 number of bytes in the message queue for a connection
3828 2003-04-18 Havoc Pennington <hp@pobox.com>
3830 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
3832 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
3835 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
3836 on realloc be sure to update the pointer in the keyring
3838 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
3839 offset to avoid writing to unallocated memory
3841 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
3842 try the next mechanism, so we properly handle OOM
3844 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
3846 (_dbus_keyring_new): fix OOM bug
3847 (_dbus_keyring_new_homedir): always set error; impose a maximum
3848 number of keys we'll load from the file, mostly to speed up the
3849 test suite and make its OOM checks more useful, but also for
3852 * dbus/dbus-auth.c (process_error_server): reject authentication
3853 if we get an error from the client
3854 (process_cancel): on cancel, send REJECTED, per the spec
3855 (process_error_client): send CANCEL if we get an error from the
3858 2003-04-18 Havoc Pennington <hp@pobox.com>
3860 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
3863 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
3866 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
3867 about DBUS_TEST_HOMEDIR once
3869 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
3872 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
3873 config file so we test the right thing
3875 Throughout: assorted docs improvements
3877 2003-04-18 Havoc Pennington <hp@pobox.com>
3879 * glib/dbus-gmain.c: adapt to watch changes
3881 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
3883 * dbus/dbus-server.h: remove dbus_server_handle_watch
3885 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
3887 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
3888 like DBusTimeout, so we don't need dbus_connection_handle_watch
3891 2003-04-17 Havoc Pennington <hp@redhat.com>
3893 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
3894 database usage so it all goes via the DBusUserDatabase cache.
3896 2003-04-17 Havoc Pennington <hp@redhat.com>
3898 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
3899 there was an OOM watch we skipped, we always return TRUE so we
3900 iterate again to have a look at it again. Fixes test suite hang.
3901 Code rearrangement also lets us lose some memset and only iterate
3902 over callbacks once.
3904 * bus/driver.c (bus_driver_handle_message): sense of test for
3907 2003-04-16 Havoc Pennington <hp@pobox.com>
3909 * doc/dbus-specification.sgml: make spec say serials are unsigned
3911 * dbus/dbus-message.h: change message serials to unsigned
3913 * dbus/dbus-connection.c: adapt to message serials being unsigned
3915 2003-04-15 Havoc Pennington <hp@pobox.com>
3917 * bus/bus.c: create and keep around a shared DBusUserDatabase
3920 * bus/connection.c (bus_connection_get_groups): don't cache
3921 groups for user in the connection object, since user database
3922 object now does that.
3924 2003-04-16 Havoc Pennington <hp@redhat.com>
3926 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
3927 list of size counters
3928 (_dbus_message_loader_putback_message_link): put back a popped link
3930 * dbus/dbus-connection.c
3931 (dbus_connection_set_max_live_messages_size): rename
3933 (dbus_connection_get_outgoing_size): get size of outgoing
3935 (_dbus_connection_set_connection_counter): remove this cruft
3937 2003-04-14 Havoc Pennington <hp@redhat.com>
3939 * dbus/dbus-userdb.c: user database abstraction, mostly to get
3940 caching, but at some point we might want to be able to use a
3943 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
3944 SHA1 conf file to test the sha1 auth mechanism, since the regular
3945 test always uses EXTERNAL when available.
3948 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
3949 add conf file that requires use of sha1 auth
3951 2003-04-13 Havoc Pennington <hp@pobox.com>
3953 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
3954 from Philip Blundell to send messages and monitor them.
3956 2003-04-13 Havoc Pennington <hp@pobox.com>
3958 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
3961 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
3964 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3965 fix to only recover unused bytes if we're already authenticated
3966 (_dbus_transport_get_is_authenticated): fix to still mark us
3967 authenticated if there are unused bytes.
3969 * bus/dispatch.c: implement security policy checking
3971 * bus/connection.c (bus_transaction_send_from_driver): new
3973 * bus/bus.c (bus_context_check_security_policy): new
3975 * bus/dispatch.c (send_service_nonexistent_error): delete this,
3976 now we just set the DBusError and it gets converted to an error
3979 * bus/connection.c (allow_user_function): enable code using actual
3980 data from the config file
3982 * bus/policy.c (list_allows_user): handle wildcard rules for
3983 user/group connection perms
3985 2003-04-13 Havoc Pennington <hp@pobox.com>
3987 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3989 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3991 * bus/policy.c (bus_policy_append_mandatory_rule)
3992 (bus_policy_append_default_rule, bus_policy_append_user_rule)
3993 (bus_policy_append_group_rule): new functions
3995 2003-04-12 Havoc Pennington <hp@pobox.com>
3997 * bus/config-parser.c (bus_config_parser_new): fix a memleak
3999 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
4000 the pid/gid/uid, just for paranoia.
4002 * test/break-loader.c (randomly_do_n_things): find a byte
4003 containing a type code, and randomly change it to a different
4006 2003-04-12 Havoc Pennington <hp@pobox.com>
4008 * bus/policy.h: change BusPolicy to be the thing from the config
4009 file, and rename old BusPolicy to BusClientPolicy
4011 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4012 match change in how policy works
4014 * dbus/dbus-internals.h: mark assert_not_reached as
4015 __attribute((noreturn))__
4017 2003-04-11 Havoc Pennington <hp@redhat.com>
4019 * doc/dbus-specification.sgml: fix a spot with the wrong name for
4020 the broadcast service. Use boolean return for ServiceExists.
4022 2003-04-11 Havoc Pennington <hp@redhat.com>
4024 * configure.in: add another directory to look for qt in.
4026 2003-04-11 Havoc Pennington <hp@redhat.com>
4028 * AUTHORS: add Colin Walters
4030 2003-04-11 Havoc Pennington <hp@redhat.com>
4036 2003-04-11 Havoc Pennington <hp@redhat.com>
4038 * bus/messagebus.in: remove pid file when stopping the
4039 message bus, since the bus won't have privileges to remove it
4042 2003-04-11 Havoc Pennington <hp@redhat.com>
4044 * bus/bus.c (bus_context_new): move credentials change after
4047 2003-04-11 Havoc Pennington <hp@pobox.com>
4049 * test/decode-gcov.c: add "below average functions" to the
4050 coverage report, and change how some of the code works.
4052 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4053 not in the coverage stats.
4055 * test/test-service.c (main): use _dbus_verbose not fprintf in a
4056 couple places so running the test suite doesn't result in megaspam.
4058 2003-04-11 Havoc Pennington <hp@pobox.com>
4060 * bus/dispatch.c (check_existent_service_activation): accept a no
4061 memory error in a place we didn't before
4063 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4064 in case the first one failed," since the test suite is less
4067 2003-04-10 Havoc Pennington <hp@pobox.com>
4069 * bus/dispatch.c (check_segfault_service_activation): add test
4070 for launching an executable that just crashes.
4072 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4073 don't leave a million cores. We'll see how portable this is.
4075 2003-04-10 Havoc Pennington <hp@pobox.com>
4077 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4078 the possible parent failures before we fork, so that we don't
4079 fail to create a babysitter after creating the child.
4081 * bus/activation.c (bus_activation_activate_service): kill child
4082 if we don't successfully complete the activation.
4084 2003-04-10 Havoc Pennington <hp@redhat.com>
4086 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4087 the connection if it's disconnected
4089 * bus/activation.c (bus_activation_service_created): use new
4090 transaction features to roll back removal of pending activation if
4091 we don't successfully create the service after all. Don't remove
4092 pending activation if the function fails.
4094 * dbus/dbus-list.c (_dbus_list_insert_before_link)
4095 (_dbus_list_insert_after_link): new code to facilitate
4098 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4099 new functionality, so we can preallocate the ability to insert
4102 * bus/connection.c (bus_transaction_add_cancel_hook): new function
4103 allowing us to put custom hooks in a transaction to be used for
4104 cancelling said transaction
4106 * doc/dbus-specification.sgml: add some discussion of secondary
4107 service owners, and disallow zero-length service names
4109 * bus/services.c (bus_registry_acquire_service): new function,
4110 splits out part of bus_driver_handle_acquire_service() and fixes
4111 a bug where we didn't remove the service doing the acquiring
4112 from the secondary queue if we failed to remove the current owner
4113 from the front of the queue.
4115 2003-04-10 Alexander Larsson <alexl@redhat.com>
4117 * doc/dbus-specification.sgml:
4118 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4120 2003-04-10 Alexander Larsson <alexl@redhat.com>
4125 Added files to cvsignore
4127 * dbus/dbus-message.h:
4128 * dbus/dbus-message.c: (dbus_message_iter_get_named):
4129 Make get_named() take two out argument and return a boolean.
4130 (dbus_message_iter_get_args_valist):
4131 Update usage of get_named().
4132 (dbus_message_iter_append_byte):
4134 (dbus_message_iter_append_named)
4136 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4139 2003-04-10 Alexander Larsson <alexl@redhat.com>
4141 * dbus/dbus-marshal.[ch]:
4142 Add array_type_pos argument to _dbus_marshal_validate_arg.
4143 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4145 * dbus/dbus-message.[ch]:
4146 Multi-dimensional arrays have full type specification in the
4147 outermost array. Iter code re-arranged to handle this.
4148 Added some more iter tests.
4150 * doc/dbus-specification.sgml:
4153 Update new array encoding description.
4154 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4156 * test/data/invalid-messages/array-with-mixed-types.message:
4157 * test/data/valid-messages/array-of-array-of-uint32.message:
4158 Change to the new array format.
4160 * test/data/invalid-messages/too-short-dict.message:
4163 * test/data/valid-messages/recursive-types.message:
4164 Fix up and extend test.
4166 2003-04-10 Havoc Pennington <hp@pobox.com>
4168 * bus/dispatch.c: lots of fixes
4170 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4171 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4172 that was crack, broke the test service.
4174 * dbus/dbus-transport.c (_dbus_transport_open): fix error
4175 handling to avoid piling up errors if we get a failure on the
4178 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4179 pid in assertion failures.
4181 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4182 to some fixed size of file descriptor array. Don't return TRUE
4183 anytime a timeout exists, that led to lots of busy loop silliness
4186 2003-04-09 Havoc Pennington <hp@redhat.com>
4188 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4189 I'd checked this in earlier but hadn't.
4191 2003-04-09 Havoc Pennington <hp@redhat.com>
4193 * bus/dispatch.c (bus_dispatch_test): get a bit further through
4194 the activation test (man this is getting old!)
4196 2003-04-09 Havoc Pennington <hp@redhat.com>
4198 * test/test-utils.c: use dispatch status function to fix this up
4200 * bus/connection.c (connection_watch_callback): don't dispatch
4202 (connection_timeout_callback): don't dispatch from here
4203 (bus_connections_setup_connection): set the dispatch status function
4204 (bus_connection_disconnected): unset it
4206 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4207 used to add a connection to be dispatched
4208 (_dbus_loop_iterate): do the dispatching at the end of each
4211 * dbus/dbus-connection.c
4212 (dbus_connection_set_dispatch_status_function): new function
4213 allowing us to fix up main loop usage
4214 (_dbus_connection_last_unref): free all the various function
4216 (dbus_connection_dispatch): call the DispatchStatusFunction
4217 whenever this function returns
4218 (dbus_connection_handle_watch): call DispatchStatusFunction
4219 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4220 (reply_handler_timeout): call DispatchStatusFunction
4221 (dbus_connection_flush): call DispatchStatusFunction
4223 2003-04-09 Havoc Pennington <hp@redhat.com>
4225 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4228 * bus/dispatch.c (check_service_activated): fix bug in test
4230 * dbus/dbus-mainloop.c (check_timeout): fix this up
4232 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4233 verbose output so we can sort out output from different processes,
4234 e.g. in the activation case.
4236 2003-04-08 Colin Walters <walters@gnu.org>
4238 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4240 (bus_context_new): Set it.
4241 (bus_context_unref): Use it to delete the pid file.
4243 2003-04-08 Havoc Pennington <hp@redhat.com>
4245 * test/data/invalid-messages/array-with-mixed-types.message:
4246 regression test that fails for the moment
4248 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4249 tests for convenience
4251 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4252 array of nil, it broke things.
4254 * test/data/invalid-messages/array-of-nil.message: regression test
4256 * test/data/valid-messages/array-of-array-of-uint32.message:
4257 happened to write this so added it to suite
4259 2003-04-08 Havoc Pennington <hp@redhat.com>
4261 * bus/driver.c (bus_driver_handle_acquire_service): init
4262 retval/reply before checking name
4264 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4265 recursion depth argument
4267 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4268 in the public struct for future extension
4270 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4273 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4276 * doc/dbus-specification.sgml: fix typo
4278 2003-04-08 Alexander Larsson <alexl@redhat.com>
4280 Implemented recursive types, named types and new-style iters
4283 * glib/test-thread-client.c: (thread_func):
4284 * glib/test-thread-server.c: (handle_test_message):
4285 * test/test-service.c: (handle_echo):
4294 * dbus/dbus-internals.c: (_dbus_type_to_string):
4295 Update for new types.
4297 * dbus/dbus-marshal.[ch]:
4298 Implement recursive types and the new marshalling format.
4299 Remove hardcoded dict marshalling.
4300 Marshal named types.
4302 * dbus/dbus-message-builder.c:
4304 Remove references to old types
4306 * dbus/dbus-message.[ch]:
4307 New non-refcounted iter API that supports recursive iters.
4308 Use iters for appending, including support for recursive
4310 Add byte and named type support.
4311 Update everything to new marshalling formats.
4312 Add tests for new API.
4314 * dbus/dbus-protocol.h:
4315 Remove old array types.
4316 Add types: BYTE, ARRAY, DICT, NAMED
4318 * dbus/dbus-string.c:
4319 * dbus/dbus-sysdeps.c:
4320 Make parse_double locale safe.
4322 * dbus/dbus-test-main.c:
4328 * doc/dbus-specification.sgml:
4331 * test/data/incomplete-messages/missing-body.message:
4332 * test/data/invalid-messages/bad-boolean.message:
4333 * test/data/invalid-messages/bad-boolean-array.message:
4334 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4335 * test/data/invalid-messages/boolean-has-no-value.message-raw:
4336 * test/data/invalid-messages/too-short-dict.message:
4337 * test/data/valid-messages/dict-simple.message:
4338 * test/data/valid-messages/dict.message:
4339 * test/data/valid-messages/emptiness.message:
4340 * test/data/valid-messages/lots-of-arguments.message:
4341 * test/data/valid-messages/no-padding.message:
4342 * test/data/valid-messages/recursive-types.message:
4343 Add missing NAME fields
4344 Fix up dicts & arrays
4346 * test/data/invalid-messages/dict-with-nil-value.message:
4347 Removed, this is not invalid anymore.
4349 * test/data/valid-messages/recursive-types.message:
4350 Add new test for deeply recursive types.
4352 2003-04-07 Havoc Pennington <hp@pobox.com>
4354 * bus/driver.c (bus_driver_handle_acquire_service): return an
4355 error if you try to acquire a service that starts with ':'
4357 2003-04-07 Havoc Pennington <hp@redhat.com>
4359 * doc/dbus-specification.sgml: require that base service names
4360 start with ':' and that the base service is created/deleted
4361 as first and last things a connection does on the bus
4363 * bus/dispatch.c (check_existent_service_activation): lots more
4364 work on the activation test; it doesn't fully pass yet...
4366 * test/test-service.c (main): fix so we don't memleak the
4367 connection to the message bus
4368 (filter_func): accept a message asking us to exit
4370 2003-04-06 Havoc Pennington <hp@pobox.com>
4372 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4375 * configure.in: fixes to Qt detection from Colin Walters
4377 * doc/Makefile.am: Only remove generated docbook dirs if they
4378 exist, from Colin Walters
4380 * dbus/dbus-bus.c: change how we set well-known connections to
4381 NULL, so that it works if a single connection is stored in
4382 two well-known array slots.
4384 * test/Makefile.am: remove a lot of stuff that isn't immediately
4385 useful, it's in CVS history if we want it.
4387 * test/test-service.c: use dbus-mainloop instead of that
4390 2003-04-06 Havoc Pennington <hp@pobox.com>
4392 * dbus/Makefile.am: split lists of sources into stuff that goes in
4393 the library, util functions that go in the lib and are also used
4394 elsewhere, and util functions that are used in tests/daemon but
4395 don't go in the lib.
4397 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4398 here so it can be used in test binaries also
4400 2003-04-06 Havoc Pennington <hp@pobox.com>
4402 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4403 here in the parent process, so we can return an error if it
4404 fails. Also, move some of the code into the child so the parent
4405 is less hosed if we fail midway through.
4407 * bus/bus.c (bus_context_new): move pidfile detection further up
4408 in the function, before we start overwriting sockets and such.
4410 * bus/messagebus.in: adjust this a bit, not sure if it will work.
4412 * configure.in: add --with-system-pid-file and --with-system-socket
4414 2003-04-06 Colin Walters <walters@verbum.org>
4416 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4418 * bus/system.conf.in: Declare a pidfile.
4420 * bus/bus.c (bus_context_new): Test for an existing pid file, and
4421 create one (if appropriate).
4423 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4424 (struct BusConfigParser) [pidfile]: New.
4425 (element_type_to_name, merge_included, start_busconfig_child)
4426 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4427 (bus_config_parser_unref): Free it.
4428 (bus_config_parser_get_pidfile): New function.
4430 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4432 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4434 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4436 * dbus/dbus-sysdeps.h: Prototype it.
4438 2003-04-06 Havoc Pennington <hp@pobox.com>
4440 * bus/bus.c (bus_context_new): print the address in here, rather
4441 than in main(), because we need to do it before forking the daemon
4443 * bus/dispatch.c (send_service_nonexistent_error): set the sender
4444 on the service nonexistent error
4446 * bus/driver.c (bus_driver_handle_acquire_service): set the
4447 sender on the AcquireService reply
4449 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4450 server also listen on a UNIX socket so services can connect to it.
4452 2003-04-06 Havoc Pennington <hp@pobox.com>
4454 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4455 so it detects deadlocks and also we actually init threads when
4458 2003-04-06 Havoc Pennington <hp@pobox.com>
4460 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4461 save the domain socket name, and unlink it when we disconnect the
4462 server. Means that at least when we exit normally, we won't leave
4463 a bunch of junk in /tmp
4465 * dbus/dbus-transport-unix.c
4466 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4467 memory management). (I was making a real change here but then
4470 2003-04-06 Havoc Pennington <hp@pobox.com>
4472 * bus/bus.c (bus_context_new): fix wrong handling of
4473 server_data_slot_unref() in the error case.
4475 * dbus/dbus-internals.h (_dbus_assert): change so it passes
4476 "(condition) != 0" to _dbus_real_assert so that
4477 "_dbus_assert (pointer)" doesn't cause a warning
4479 * bus/main.c (main): accept --print-address option to print out
4480 the message bus address
4482 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4484 * dbus/dbus-transport.c (_dbus_transport_open): special error for
4485 "tmpdir" option to unix: address on client side
4487 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4490 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4491 we can use to create sockets in the test suite.
4493 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4494 cleanly. To be used for testing.
4496 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4498 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4500 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4501 handle trying to call this when there's no servers active
4503 2003-04-05 Havoc Pennington <hp@pobox.com>
4509 2003-04-05 Havoc Pennington <hp@pobox.com>
4511 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4512 crash on startup. Need to get "try starting the daemon"
4513 in the test suite I guess. ;-)
4515 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4516 tracked the number of open connections; it's better done in
4517 application-specific code as you want it to span all servers etc.
4519 2003-04-05 Havoc Pennington <hp@pobox.com>
4521 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4522 patch from Colin Walters
4524 2003-04-05 Havoc Pennington <hp@pobox.com>
4526 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4527 reality; in fact multiple mechanisms are allowed.
4529 * dbus/dbus-internals.c (_dbus_real_assert)
4530 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4531 _dbus_assert_not_reached() into functions, so that they don't show
4532 up in basic block counts for test coverage, and don't use up as
4533 much disk space. Does mean slower execution speed though, so
4534 assumes --disable-asserts is the normal production case.
4536 2003-04-05 Havoc Pennington <hp@pobox.com>
4538 * test/Makefile.am (dist-hook): also dist *.in files
4544 2003-04-05 Havoc Pennington <hp@pobox.com>
4546 * dbus/dbus-string.c: docs warning
4548 * dbus/dbus-spawn.c: missing docs
4550 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4552 2003-04-05 Havoc Pennington <hp@pobox.com>
4554 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4557 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4558 to -1 once we've reaped the babysitter
4559 (_dbus_babysitter_handle_watch): do as much work as we can, not
4562 * bus/activation.c: add code using DBusBabysitter so that we
4563 handle it when a service fails to start up properly.
4564 (bus_activation_service_created): don't remove the activation
4565 entries as we go, just let them get removed when we free the pending
4566 activation. Unref reply messages after sending them.
4568 2003-04-05 Havoc Pennington <hp@pobox.com>
4570 * test/decode-gcov.c (main): print per-directory stats in the report
4572 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4574 2003-04-05 Havoc Pennington <hp@pobox.com>
4576 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4578 * test/decode-gcov.c: hack up a little program to suck data
4579 out of gcov files. Yes this is sort of silly.
4581 * configure.in: define something in config.h and do an
4582 AM_CONDITIONAL when gcov is enabled
4584 2003-04-04 Havoc Pennington <hp@redhat.com>
4586 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4587 return a "babysitter" object that is used to monitor the status of
4588 the spawned process and reap it when required.
4590 * test/test-segfault.c, test/test-exit.c,
4591 test/test-sleep-forever.c: binaries that do various lame things,
4592 used in the test suite.
4594 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4596 2003-04-03 Havoc Pennington <hp@pobox.com>
4598 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4599 in preparation for modifying it, dbus-sysdeps is getting
4602 2003-04-03 Havoc Pennington <hp@redhat.com>
4604 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4607 * bus/*.[hc]: adapt to mainloop change
4609 2003-04-03 Havoc Pennington <hp@redhat.com>
4611 * bus/activation.c (load_directory): fix up memleaks
4612 (bus_activation_entry_free): free the entry
4614 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4615 we get one from the message bus; fix memleaks.
4617 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4619 2003-04-03 Havoc Pennington <hp@pobox.com>
4621 * bus/config-parser.c (bus_config_parser_unref): free
4622 list of mechanisms, bug discovered by test suite enhancements
4623 (putting system.conf and session.conf into suite)
4625 * test/Makefile.am, test/test-service.c: add placeholder for a
4626 test service that we'll activate as part of test suite. Doesn't
4629 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4630 setting NULL value, and use system malloc not dbus_malloc()
4631 when we have unavoidable memleakage.
4633 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4634 didn't work, and support DBUS_BUS_ACTIVATION.
4636 * bus/activation.c (child_setup): pass our well-known bus type to
4639 * bus/config-parser.c: support <type> to specify well-known type
4641 * doc/dbus-specification.sgml: document the env variables to
4642 locate well-known buses and find service activator
4644 2003-04-02 Havoc Pennington <hp@redhat.com>
4646 * test/Makefile.am (all-local): add a rule to copy tests to
4647 builddir, so we can have generated tests. Use this to remove the
4648 silly hack for testing system.conf and session.conf. Will use this
4649 shortly to generate .service files pointing to test binaries.
4651 2003-04-02 Havoc Pennington <hp@redhat.com>
4653 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4654 current alloc and needed new length, not max of the doubled
4655 allocation and needed new length. Also, when building tests,
4656 don't do the double-allocation stuff, just realloc every time.
4658 2003-04-02 Havoc Pennington <hp@redhat.com>
4660 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4662 (_dbus_string_get_dirname): new
4663 (_dbus_sysdeps_test): new
4664 (_dbus_directory_open): include dirnames in error messages
4666 * bus/config-parser.c: interpret <include> and <includedir> and
4667 <servicedir> relative to config file location if the given
4668 filename is not absolute.
4670 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4672 2003-04-02 Havoc Pennington <hp@redhat.com>
4674 * bus/connection.c (bus_transaction_send_error_reply): set sender
4675 service for the error, and unref the reply on success
4677 * bus/activation.c: convert to use BusTransaction so OOM can be
4679 (bus_activation_service_created): set sender of the message
4681 2003-04-01 Havoc Pennington <hp@redhat.com>
4683 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4684 <includedir> (at least mostly)
4686 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4687 first, then the user ID
4689 2003-04-01 Havoc Pennington <hp@pobox.com>
4691 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4694 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4696 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4698 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4699 socket 0777, and unlink any existing socket.
4701 * bus/bus.c (bus_context_new): change our UID/GID and fork if
4702 the configuration file so specifies; set up auth mechanism
4705 * bus/config-parser.c (bus_config_parser_content): add support
4706 for <fork> option and fill in code for <auth>
4708 * bus/system.conf.in: add <fork/> to default configuration,
4709 and limit auth mechanisms to EXTERNAL
4711 * doc/config-file.txt (Elements): add <fork>
4713 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4714 (_dbus_change_identity): new function
4716 2003-03-31 Havoc Pennington <hp@redhat.com>
4718 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4719 (_dbus_listen_unix_socket): fix off-by-one error in null
4720 termination spotted by Nalin
4722 2003-03-31 Havoc Pennington <hp@redhat.com>
4724 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4725 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4726 having a real home directory available.
4728 2003-03-31 Havoc Pennington <hp@redhat.com>
4730 * bus/Makefile.am (install-data-hook): create /var/run/dbus
4732 * bus/messagebus.in: add init script for Red Hat /etc/init.d
4734 * configure.in: add support for specifying a style of init script
4737 2003-03-31 Havoc Pennington <hp@redhat.com>
4739 Fix some annoying DBusString API and fix all affected code.
4741 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
4743 (_dbus_string_get_data): change to return string instead of using
4745 (_dbus_string_get_const_data): ditto
4746 (_dbus_string_get_data_len): ditto
4747 (_dbus_string_get_const_data_len): ditto
4749 2003-03-31 Havoc Pennington <hp@redhat.com>
4751 * bus/main.c (main): fix up the command line arguments to be nicer
4753 2003-03-31 Havoc Pennington <hp@redhat.com>
4755 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
4756 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
4757 final location that lands in the config file
4759 * bus/config-loader-expat.c (bus_config_load): fix type of
4762 * doc/TODO: remove TODO item for dbus_bus_get()
4764 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
4766 2003-03-31 Havoc Pennington <hp@pobox.com>
4768 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
4769 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
4770 argument since they are always client side
4772 * dbus/dbus-server.c (dbus_server_get_address): new function
4774 * bus/main.c (main): take the configuration file as an argument.
4776 * test/data/valid-config-files/debug-allow-all.conf: new file to
4777 use with dispatch.c tests for example
4779 * bus/test-main.c (main): require test data dir
4781 * bus/bus.c (bus_context_new): change this to take a
4782 configuration file name as argument
4784 * doc/config-file.txt (Elements): add <servicedir>
4786 * bus/system.conf, bus/session.conf: new files
4788 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
4789 well-known socket if none set
4791 * configure.in: create system.conf and session.conf
4793 2003-03-30 Havoc Pennington <hp@pobox.com>
4795 * bus/config-parser.c: hacking
4797 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
4798 to shut down, since it could cause weirdness with the DBusList
4801 * dbus/dbus-list.c (_dbus_list_test): add tests for the
4802 link-oriented stack routines
4803 (alloc_link): free the mempool if the first alloc from it fails
4805 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
4807 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
4809 (_dbus_string_skip_white): new
4811 * doc/config-file.txt (Elements): add <includedir>
4813 2003-03-28 Havoc Pennington <hp@pobox.com>
4815 * dbus/dbus-string.c (_dbus_string_copy_data_len)
4816 (_dbus_string_copy_data): new functions
4818 2003-03-28 Anders Carlsson <andersca@codefactory.se>
4820 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
4824 * dbus/dbus-memory.c:
4827 2003-03-28 Havoc Pennington <hp@pobox.com>
4829 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
4830 I think it may have just been superstition. Not sure.
4832 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
4833 failures that were not being handled.
4835 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
4837 * dbus/dbus-memory.c: add ability to set number of mallocs in a
4838 row that will fail on out-of-memory.
4840 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
4841 function for testing out-of-memory handling.
4843 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
4844 allocation functions, they do map exactly to the expat ones.
4846 2003-03-27 Havoc Pennington <hp@redhat.com>
4848 * bus/config-loader-libxml.c (bus_config_load): add another error
4851 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4854 Add note about automatic service activation.
4856 * doc/dbus-specification.sgml:
4857 Rename the specification and clarify a few things.
4859 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4862 * dbus/dbus-address.c:
4864 * dbus/dbus-marshal.c:
4865 * dbus/dbus-server-debug-pipe.c:
4866 * dbus/dbus-transport-unix.c:
4867 Fix documentation warnings.
4869 2003-03-26 Havoc Pennington <hp@pobox.com>
4871 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
4872 after every test so it's quick and easy to see which leaked, and
4873 so we test multiple dbus_shutdown() calls
4875 * configure.in: change configure.in XML stuff to also support
4878 * config-loader-libxml.c: some hacking
4880 * config-loader-expat.c: some hacking
4882 * config-parser.c: some hacking, plus tests
4884 2003-03-25 Havoc Pennington <hp@redhat.com>
4886 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
4888 * configure.in: add --with-xml option to specify XML library,
4889 right now only libxml is supported.
4891 * bus/config-loader-libxml.c, config-parser.c: sync some minor
4892 nonworking code between home and work, still just stubs
4894 2003-03-24 Havoc Pennington <hp@redhat.com>
4896 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
4899 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
4900 NULL argument for "message" if the error is a well-known one,
4901 fill in a generic message in this case.
4903 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
4906 * bus/test.c (bus_test_flush_bus): add
4908 * bus/policy.c (bus_policy_test): test code stub
4910 2003-03-24 Havoc Pennington <hp@pobox.com>
4912 * bus/connection.c (bus_connections_setup_connection): set up
4913 the "can this user connect" function, but it always returns
4914 TRUE until we have a config file parser so we can have a config
4915 file that allows connections.
4917 2003-03-23 Havoc Pennington <hp@pobox.com>
4919 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
4920 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
4921 the mutex, so we can check for proper memory management
4924 * dbus/dbus-dataslot.c: remove the mutex from
4925 DBusDataSlotAllocator and lock it manually when using it,
4926 to simplify fitting it into the global slots framework.
4928 * dbus/dbus-threads.c (init_static_locks): rework how we're
4929 handling global locks so they are easily shut down.
4931 * bus/policy.c (bus_policy_append_rule): fix
4933 * bus/test-main.c (main): check for memleaks
4935 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
4936 test suite check for memleaks
4938 * dbus/dbus-memory.c: add support in test mode for tracking
4939 number of outstanding blocks
4941 2003-03-23 Havoc Pennington <hp@pobox.com>
4943 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
4946 * dbus/dbus-hash.h: add ULONG hash keys
4948 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
4949 (_dbus_get_group_id): new function
4951 2003-03-20 Havoc Pennington <hp@redhat.com>
4953 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
4955 (dbus_connection_get_unix_user): new function
4957 2003-03-20 Havoc Pennington <hp@pobox.com>
4959 * bus/connection.c (bus_connection_send_oom_error): assert that
4960 message has a sender
4961 (connection_execute_transaction): ditto
4962 (bus_connection_preallocate_oom_error): fix to set the sender, and
4963 set recipient to the destination service, not the bus driver
4965 * bus/policy.c: hacking
4967 * dbus/dbus-message.c (dbus_message_service_is): new function
4968 (dbus_message_sender_is): new
4970 2003-03-19 Havoc Pennington <hp@redhat.com>
4972 * bus/policy.c: start sketching code for policy restrictions on
4973 what connections can do.
4975 2003-03-18 Havoc Pennington <hp@redhat.com>
4977 * doc/TODO: some notes on high-level todo items. Little nitpick
4978 stuff is all in @todo, so no need to add it here.
4980 * doc/config-file.txt: some notes on how config file might look
4982 2003-03-18 Anders Carlsson <andersca@codefactory.se>
4988 2003-03-17 Havoc Pennington <hp@redhat.com>
4990 * dbus/dbus-internals.h: add gcc attributes so that
4991 our printf-style functions warn on bad arguments to
4994 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4997 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5000 2003-03-17 Havoc Pennington <hp@redhat.com>
5002 * bus/test-main.c (main): make it print something as it runs
5003 so make check doesn't look stuck
5005 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5006 from CVS, now obsolete
5008 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5010 * bus/dispatch.c: (bus_dispatch):
5011 Refetch the service name since it may have been reallocated
5012 when dbus_message_set_sender was called.
5014 * dbus/dbus-sysdeps.c: (_dbus_accept):
5015 Add address and address length variables and use them to stop
5016 valgrind from complaining.
5018 2003-03-17 Havoc Pennington <hp@pobox.com>
5020 All tests pass, no memleaks, no valgrind complaints.
5022 * bus/test.c: refcount handler_slot
5024 * bus/connection.c (bus_connections_new): refcount
5025 connection_data_slot
5027 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5028 bytes so that auth scripts pass.
5030 * bus/dispatch.c: init message_handler_slot so it gets allocated
5033 * bus/dispatch.c (message_handler_slot_ref): fix memleak
5035 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5036 dealloc server_pipe_hash when no longer used for benefit of
5039 * dbus/dbus-auth.c (process_command): memleak fix
5041 * bus/dispatch.c (check_hello_message): memleak fix
5043 2003-03-16 Havoc Pennington <hp@pobox.com>
5045 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5047 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5049 * bus/activation.c (bus_activation_activate_service): Append
5050 the pending activation entry to the list of pending activations.
5052 2003-03-16 Havoc Pennington <hp@pobox.com>
5054 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5057 * dbus/dbus-address.c (create_entry): fix OOM handling when
5058 failing to alloc entry->method
5060 2003-03-16 Havoc Pennington <hp@pobox.com>
5062 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5065 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5066 add some missing dbus_set_result
5068 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5069 alloc the DBusMessageHandler
5071 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5072 the transport here, since we call this from the finalizer; it
5073 resulted in a double-finalize.
5075 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5076 where we tried to use transport->connection that was NULL,
5077 happened when transport was disconnected early on due to OOM
5079 * bus/*.c: adapt to handle OOM for watches/timeouts
5081 * dbus/dbus-transport-unix.c: port to handle OOM during
5084 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5085 reference to unused bytes instead of a copy
5087 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5090 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5093 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5096 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5098 * doc/dbus-specification.sgml:
5099 Document reply message for ActivateService.
5101 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5103 * bus/activation.c: (bus_pending_activation_entry_free),
5104 (bus_pending_activation_free), (bus_activation_new),
5105 (bus_activation_unref), (bus_activation_service_created),
5106 (bus_activation_activate_service):
5108 * bus/bus.c: (bus_context_new):
5109 * bus/desktop-file.c: (new_section):
5110 * bus/driver.c: (bus_driver_send_service_deleted),
5111 (bus_driver_handle_activate_service):
5112 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5114 * dbus/dbus-connection.c:
5115 (dbus_connection_send_with_reply_and_block):
5116 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5117 * dbus/dbus-protocol.h:
5118 Make activation work better. Now pending activations will be queued
5119 and the daemon won't try to activate services that are already registered.
5121 2003-03-16 Havoc Pennington <hp@pobox.com>
5123 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5126 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5127 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5129 2003-03-16 Havoc Pennington <hp@pobox.com>
5131 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5132 this. always run the test suite before commit...
5134 * bus/*: adapt to DBusConnection API changes
5136 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5137 requires renaming stuff to avoid dbus_connection_dispatch name
5140 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5143 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5144 separate from _dbus_message_loader_return_buffer()
5146 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5147 this, because it's now always broken to use; the number of
5148 messages in queue vs. the number still buffered by the message
5149 loader is undefined/meaningless. Should use
5150 dbus_connection_get_dispatch_state().
5151 (dbus_connection_dispatch): rename from
5152 dbus_connection_dispatch_message
5154 2003-03-16 Havoc Pennington <hp@pobox.com>
5156 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5159 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5161 * dbus/dbus-connection.c:
5162 (dbus_connection_send_with_reply_and_block):
5163 Decrease connection->n_incoming when removing an entry
5165 * dbus/dbus-dict.c: (dbus_dict_entry_free),
5166 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5167 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5168 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5169 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5170 (dbus_dict_get_byte_array):
5171 Handle NULL arrays and strings. Also add support for byte arrays.
5173 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5174 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5175 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5176 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5177 (_dbus_demarshal_dict), (demarshal_and_validate_len),
5178 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5179 * dbus/dbus-marshal.h:
5180 Add support for marshalling and demarshalling empty arrays and strings.
5182 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5183 (dbus_message_append_string_array),
5184 (dbus_message_iter_get_boolean),
5185 (dbus_message_iter_get_boolean_array),
5186 (dbus_message_iter_get_int32_array),
5187 (dbus_message_iter_get_uint32_array),
5188 (dbus_message_iter_get_double_array),
5189 (dbus_message_iter_get_byte_array),
5190 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5191 (check_message_handling):
5192 Add support for getting empty arrays and dicts.
5194 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5195 Don't do any validation at all for now, that's better than just checking
5198 * test/data/valid-messages/emptiness.message:
5199 New test message with lots of empty arrays.
5201 2003-03-16 Havoc Pennington <hp@pobox.com>
5203 * dbus/dbus-connection.c
5204 (_dbus_connection_queue_received_message_link): new function that
5205 can't fail due to OOM
5207 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5208 new function pops a message together with a list link
5211 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5212 message queuing functions to avoid needing to alloc memory
5214 2003-03-16 Havoc Pennington <hp@pobox.com>
5216 Oops - test code was only testing failure of around 30 of the
5217 mallocs in the test path, but it turns out there are 500+
5218 mallocs. I believe this was due to misguided linking setup such
5219 that there was one copy of dbus_malloc etc. in the daemon and one
5220 in the shared lib, and only daemon mallocs were tested. In any
5221 case, the test case now tests all 500+ mallocs, and doesn't pass
5222 yet, though there are lots of fixes in this patch.
5224 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5225 this so that it doesn't need to allocate memory, since it
5226 has no way of indicating failure due to OOM (and would be
5227 annoying if it did).
5229 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5231 * bus/Makefile.am: rearrange to create two self-contained
5232 libraries, to avoid having libraries with overlapping symbols.
5233 that was resulting in weirdness, e.g. I'm pretty sure there
5234 were two copies of global static variables.
5236 * dbus/dbus-internals.c: move the malloc debug stuff to
5239 * dbus/dbus-list.c (free_link): free list mempool if it becomes
5242 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5244 * dbus/dbus-address.c (dbus_parse_address): free list nodes
5247 * bus/dispatch.c (bus_dispatch_add_connection): free
5248 message_handler_slot when no longer using it, so
5249 memory leak checkers are happy for the test suite.
5251 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5253 * bus/bus.c (new_connection_callback): disconnect in here if
5254 bus_connections_setup_connection fails.
5256 * bus/connection.c (bus_connections_unref): fix to free the
5258 (bus_connections_setup_connection): if this fails, don't
5259 disconnect the connection, just be sure there are no side
5262 * dbus/dbus-string.c (undo_alignment): unbreak this
5264 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5266 (_dbus_auth_new): fix the order in which we free strings
5269 * bus/connection.c (bus_connection_disconnected): fix to
5270 not send ServiceDeleted multiple times in case of memory
5273 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5274 get the base service name
5275 (dbus_bus_register_client): don't return base service name,
5276 instead store it on the DBusConnection and have an accessor
5278 (dbus_bus_register_client): rename dbus_bus_register()
5280 * bus/dispatch.c (check_hello_message): verify that other
5281 connections on the bus also got the correct results, not
5282 just the one sending hello
5284 2003-03-15 Havoc Pennington <hp@pobox.com>
5286 Make it pass the Hello handling test including all OOM codepaths.
5287 Now to do other messages...
5289 * bus/services.c (bus_service_remove_owner): fix crash when
5290 removing owner from an empty list of owners
5291 (bus_registry_ensure): don't leave service in the list of
5292 a connection's owned services if we fail to put the service
5295 * bus/connection.c (bus_connection_preallocate_oom_error): set
5296 error flag on the OOM error.
5298 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5299 handle _dbus_transport_set_connection failure
5301 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5302 to create watches up front and simply enable/disable them as
5304 (unix_connection_set): this can now fail on OOM
5306 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5307 of enabling/disabling a watch or timeout.
5309 * bus/loop.c (bus_loop_iterate): don't touch disabled
5312 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5314 2003-03-15 Havoc Pennington <hp@pobox.com>
5316 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5317 write useful test code, after all that futzing around ;-)
5319 Test does not yet pass because we can't handle OOM in
5320 _dbus_transport_messages_pending (basically,
5321 dbus_connection_preallocate_send() does not prealloc the write
5322 watch). To fix this, I think we need to add new stuff to
5323 set_watch_functions, namely a SetEnabled function so we can alloc
5324 the watch earlier, then enable it later.
5326 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5327 dbus-memory.c to the convenience lib
5329 * bus/test.c: rename some static functions to keep them clearly
5330 distinct from stuff in connection.c. Handle client disconnection.
5332 2003-03-14 Havoc Pennington <hp@pobox.com>
5334 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5335 transport, tests more of the real codepath. Set up clients
5336 with bus_setup_debug_client.
5338 * bus/test.c (bus_setup_debug_client): function to set up debug
5339 "clients" on the main loop
5341 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5344 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5347 * dbus/dbus-server-debug.c: support a debug server based on pipes
5349 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5350 (_dbus_close): new function
5352 * configure.in: check for socketpair
5354 2003-03-14 Havoc Pennington <hp@redhat.com>
5356 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5359 * dbus/dbus-transport-debug.c: rework this a good bit to be
5360 less complicated. hopefully still works.
5362 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5365 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5368 * dbus/dbus-message.c (dbus_message_copy): rename from
5369 dbus_message_new_from_message, fix it up to copy
5370 all the message fields, add test case
5372 * bus/dispatch.c (bus_dispatch_test): add some more test code,
5373 not quite passing yet
5375 2003-03-14 Havoc Pennington <hp@pobox.com>
5377 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5378 until no work remains" in test code. (the large diff here
5379 is just code movement, no actual changes)
5381 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5382 1, no point waiting around for test code.
5383 (_dbus_server_debug_accept_transport): unref the timeout
5384 after adding it (right?)
5386 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5388 2003-03-13 Havoc Pennington <hp@redhat.com>
5390 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5393 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5396 * dbus/dbus-connection.h: Make AddWatchFunction and
5397 AddTimeoutFunction return a bool so they can fail on out-of-memory
5399 * bus/bus.c (bus_context_new): set up timeout handlers
5401 * bus/connection.c (bus_connections_setup_connection): set up
5404 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5407 * bus/bus.c (bus_context_new): adapt to changes
5409 * bus/connection.c: adapt to changes
5411 * test/watch.c: adapt to DBusWatch changes
5413 * bus/dispatch.c (bus_dispatch_test): started adding this but
5416 2003-03-14 Anders Carlsson <andersca@codefactory.se>
5418 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5420 2003-03-13 Havoc Pennington <hp@pobox.com>
5422 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5423 set up a test framework as for the library
5425 2003-03-12 Havoc Pennington <hp@pobox.com>
5427 Throughout: purge global variables, introduce BusActivation,
5428 BusConnections, BusRegistry, etc. objects instead.
5430 * bus/bus.h, bus/bus.c: introduce BusContext as a global
5433 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5434 going to redo this a bit differently I think
5436 2003-03-12 Havoc Pennington <hp@redhat.com>
5438 Mega-patch that gets the message bus daemon initially handling
5439 out-of-memory. Work still needed. Also lots of random
5440 moving stuff to DBusError instead of ResultCode.
5442 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5444 * dbus/dbus-connection.c
5445 (dbus_connection_send_with_reply_and_block): use DBusError
5447 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5450 * dbus/dbus-connection.c (dbus_connection_send): drop the result
5451 code here, as the only failure possible is OOM.
5453 * bus/connection.c (bus_connection_disconnect):
5454 rename bus_connection_disconnected as it's a notification only
5456 * bus/driver.c (bus_driver_handle_acquire_service): don't free
5457 "name" on get_args failure, should be done by get_args;
5458 don't disconnect client for bad args, just return an error.
5459 (bus_driver_handle_service_exists): ditto
5461 * bus/services.c (bus_services_list): NULL-terminate returned array
5463 * bus/driver.c (bus_driver_send_service_lost)
5464 (bus_driver_send_service_acquired): send messages from driver to a
5465 specific client to the client's unique name, not to the broadcast
5468 * dbus/dbus-message.c (decode_header_data): reject messages that
5469 contain no name field
5470 (_dbus_message_get_client_serial): rename to
5471 dbus_message_get_serial and make public
5472 (_dbus_message_set_serial): rename from set_client_serial
5473 (_dbus_message_set_reply_serial): make public
5474 (_dbus_message_get_reply_serial): make public
5476 * bus/connection.c (bus_connection_foreach): allow stopping
5477 iteration by returning FALSE from foreach function.
5479 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5480 (dbus_connection_free_preallocated_send)
5481 (dbus_connection_preallocate_send): new API for sending a message
5482 without possibility of malloc failure.
5483 (dbus_connection_send_message): rename to just
5484 dbus_connection_send (and same for whole function family)
5486 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5488 * dbus/dbus-sysdeps.c (_dbus_exit): new function
5490 * bus/activation.c: handle/return errors
5492 * dbus/dbus-errors.h: add more DBUS_ERROR #define
5494 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5495 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5496 (_dbus_result_from_errno): move to this file
5498 2003-03-10 Anders Carlsson <andersca@codefactory.se>
5500 * dbus/dbus-marshal.c:
5501 (_dbus_marshal_set_string):
5502 Take a length argument so we can marshal the correct string
5505 (_dbus_marshal_dict), (_dbus_demarshal_dict),
5506 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5507 (_dbus_marshal_test):
5508 * dbus/dbus-marshal.h:
5509 Add support for marshalling and demarshalling dicts.
5511 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5512 Add support for TYPE DICT.
5514 * dbus/dbus-message.c: (set_string_field):
5515 Adjust header padding.
5517 (dbus_message_append_args_valist), (dbus_message_append_dict),
5518 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5519 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5520 (check_message_handling), (check_have_valid_message):
5521 * dbus/dbus-message.h:
5522 Add functions for setting and getting dicts.
5524 * dbus/dbus-protocol.h:
5530 * doc/dbus-specification.sgml:
5531 Add information about how dicts are marshalled.
5533 * test/data/invalid-messages/dict-with-nil-value.message:
5534 * test/data/invalid-messages/too-short-dict.message:
5535 * test/data/valid-messages/dict-simple.message:
5536 * test/data/valid-messages/dict.message:
5537 Add sample messages containing dicts.
5539 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5541 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5543 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5546 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5547 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5548 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5549 (dbus_dict_set_double), (dbus_dict_set_string),
5550 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5551 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5552 (dbus_dict_set_string_array), (_dbus_dict_test):
5554 Fix according to comments from Havoc.
5556 2003-03-06 Michael Meeks <michael@server.home>
5558 * configure.in: if we don't have kde-config, disable have_qt.
5560 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5565 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5566 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5567 (dbus_dict_remove), (dbus_dict_get_value_type),
5568 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5569 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5570 (dbus_dict_put_double), (dbus_dict_put_string),
5571 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5572 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5573 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5574 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5575 (dbus_dict_get_double), (dbus_dict_get_string),
5576 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5577 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5578 (dbus_dict_get_string_array), (_dbus_dict_test):
5580 Add DBusDict implementation
5582 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5586 2003-03-04 Havoc Pennington <hp@pobox.com>
5588 * test/data/auth/*: adapt to changes
5590 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5591 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5594 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5595 more stuff from being in a context name, to make the protocol
5596 simpler to deal with
5598 * dbus/dbus-errors.c (dbus_error_has_name): new function
5599 (dbus_error_is_set): new function
5601 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5602 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5604 * dbus/dbus-connection.c (dbus_connection_flush): also read
5605 messages during a flush operation
5607 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5609 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5611 * configure.in: Check for gethostbyname on Solaris.
5613 * dbus/dbus-transport.c: (_dbus_transport_open):
5614 Remove duplicate "tcp" entry.
5616 * doc/dbus-specification.sgml:
5617 Clarify some things.
5619 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5621 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5622 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5623 (_dbus_keyring_test):
5624 * dbus/dbus-md5.c: (_dbus_md5_compute):
5625 * dbus/dbus-sha.c: (_dbus_sha_compute):
5628 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5630 * README: Add some things.
5632 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5634 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5635 after case DBUS_TYPE_BOOELAN.
5637 2003-03-02 Havoc Pennington <hp@pobox.com>
5639 * test/break-loader.c (randomly_set_extreme_ints): add test that
5640 sets really huge and small integers
5642 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5643 that length of boolean array fits in the string, and that
5644 string has room for boolean value in single-bool case.
5646 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5647 optional value to "ALIGN" command which is what to fill the
5650 * test/data/valid-messages/no-padding.message: add regression
5651 test for the message padding problem
5653 2003-03-02 Havoc Pennington <hp@pobox.com>
5655 * dbus/dbus-message.c (decode_header_data): fix to always init
5656 message_padding, from Benjamin Dauvergne
5658 2003-03-02 Havoc Pennington <hp@pobox.com>
5664 2003-03-01 Joe Shaw <joe@assbarn.com>
5666 * configure.in: Check for "struct cmsgcred" and try to access its
5667 members for BSD-like unices.
5669 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5670 _dbus_read_credentials_unix_socket().
5671 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5672 read() for reading the credential byte off the unix socket. Use
5673 struct cmsgcred on systems that support it.
5675 2003-02-27 Alexander Larsson <alexl@redhat.com>
5679 Make gthreads-2.0 dependency optional. Don't build thread test if
5682 2003-02-27 Havoc Pennington <hp@pobox.com>
5684 * dbus/dbus-connection.c
5685 (dbus_connection_send_message_with_reply_and_block): fix doh!
5686 doh! doh! bug that resulted in never removing a reply from the
5687 queue, no wonder we called get_reply_serial so much ;-)
5689 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5690 and client serial instead of demarshaling them every time
5692 2003-02-27 Havoc Pennington <hp@pobox.com>
5694 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5695 more inlined, using dbus-string-private.h, speeds things up
5698 * dbus/dbus-string.c (_dbus_string_free): apply align offset
5699 when freeing the string
5700 (_dbus_string_steal_data): fix for align offset
5701 (undo_alignment): new function
5703 2003-02-26 Havoc Pennington <hp@redhat.com>
5705 All kinds of audit fixes from Owen, plus initial attempt to
5706 handle unaligned memory returned from malloc.
5708 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5709 leave room for align_offset and nul byte
5710 (fixup_alignment): function to track an align_offset and
5711 ensure real->str is aligned
5712 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5713 to allow a nul byte plus align offset
5714 (_dbus_string_lock): fix overflow issue
5715 (_dbus_string_init_const_len): add assertions on sanity of len,
5716 assign allocated to be ALLOCATION_PADDING larger than len
5717 (set_length): fixup the overflow handling
5718 (_dbus_string_get_data_len): fix overflow in assertion
5719 (open_gap): detect overflow in size of gap to be opened
5720 (_dbus_string_lengthen): add overflow check
5721 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5722 (_dbus_string_append): add overflow check
5723 (_dbus_string_append_unichar): overflow
5724 (_dbus_string_delete): fix overflow in assertion
5725 (_dbus_string_copy_len): overflow in assertion
5726 (_dbus_string_replace_len): overflows in assertions
5727 (_dbus_string_find): change to implement in terms of
5728 _dbus_string_find_to
5729 (_dbus_string_find_to): assorted fixage
5730 (_dbus_string_equal_c_str): assert c_str != NULL,
5731 fix logic so the function works
5732 (_dbus_string_ends_with_c_str): fix overflow thingy
5733 (_dbus_string_base64_encode): overflow fix
5734 (_dbus_string_validate_ascii): overflow
5735 (_dbus_string_validate_nul): overflow
5737 2003-02-26 Havoc Pennington <hp@redhat.com>
5739 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
5741 2003-02-26 Alexander Larsson <alexl@redhat.com>
5744 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
5746 * dbus/dbus-connection.c:
5747 * dbus/dbus-connection.h:
5748 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
5749 Add dbus_connection_set_wakeup_main_function and use it when queueing
5750 incoming and outgoing messages.
5753 * dbus/dbus-dataslot.c:
5754 Threadsafe usage of DBusDataSlotAllocator
5756 * dbus/dbus-message.c: (dbus_message_get_args_iter):
5759 * dbus/dbus-server-unix.c:
5762 * glib/dbus-gmain.c:
5763 Implement the new wakeup functions for glib.
5766 * glib/test-thread-client.c:
5767 * glib/test-thread-server.c:
5768 * glib/test-thread.h:
5769 Initial cut at some thread test code. Not really done yet.
5771 2003-02-26 Havoc Pennington <hp@pobox.com>
5773 * dbus/dbus-connection.c
5774 (dbus_connection_send_message_with_reply_and_block): fix crash
5775 where we ref'd the outgoing message instead of the returned reply
5777 * dbus/dbus-transport-unix.c (do_authentication): check read watch
5778 at the end of this function, so if we didn't need to read for
5779 authentication, we reinstall it for receiving messages
5781 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
5782 a NULL sender for peer-to-peer case
5784 * dbus/dbus-transport-unix.c (check_read_watch): handle
5785 !authenticated case correctly
5787 * glib/dbus-gmain.c: add support for DBusServer
5789 * dbus/dbus-server.c: add data slot support
5791 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
5792 return values and handle errors
5794 * dbus/dbus-dataslot.c: factor out the data slot stuff from
5797 * Doxyfile.in (INPUT): add glib subdir
5799 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
5800 setup_with_g_main instead of hookup_with_g_main; write docs
5802 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5804 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
5805 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5806 * dbus/dbus-message.c: (dbus_message_append_boolean),
5807 (dbus_message_append_boolean_array),
5808 (dbus_message_get_args_valist), (_dbus_message_test):
5809 * dbus/dbus-message.h:
5810 * doc/dbus-specification.sgml:
5811 Various fixes as pointed out by Havoc.
5813 * test/data/invalid-messages/bad-boolean-array.message:
5814 * test/data/invalid-messages/bad-boolean.message:
5815 Add invalid boolean value test cases.
5817 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5819 * dbus/dbus-internals.c: (_dbus_type_to_string):
5820 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5821 (_dbus_marshal_validate_arg):
5822 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5823 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5824 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
5825 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
5826 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
5827 (dbus_message_iter_get_double),
5828 (dbus_message_iter_get_boolean_array), (message_iter_test):
5829 * dbus/dbus-message.h:
5830 * dbus/dbus-protocol.h:
5831 * doc/dbus-specification.sgml:
5832 * test/data/valid-messages/lots-of-arguments.message:
5833 Add support for boolean and boolean array types.
5835 2003-02-23 Havoc Pennington <hp@pobox.com>
5837 * dbus/dbus-keyring.c: finish most of this implementation and
5840 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
5841 these barf if the error isn't cleared to NULL
5843 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
5844 (_dbus_create_directory): new function
5846 * dbus/dbus-errors.c (dbus_set_error): fix warning
5848 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
5849 (_dbus_string_hex_decode): new function
5850 (test_hex_roundtrip): test code
5852 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
5854 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
5856 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
5857 the save-to-temp/rename trick to atomically write the new file
5858 (_dbus_string_parse_uint): new function
5860 2003-02-22 Havoc Pennington <hp@pobox.com>
5862 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
5864 2003-02-22 Havoc Pennington <hp@pobox.com>
5866 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
5867 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
5869 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
5871 * dbus/test/data/sha-1: add US government test suite for SHA-1
5873 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5875 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5876 Make string arrays NULL-terminated.
5878 * dbus/dbus-memory.c: (dbus_free_string_array):
5879 * dbus/dbus-memory.h:
5880 New function for freeing NULL-terminated string arrays.
5882 * dbus/dbus-message-builder.c: (append_quoted_string),
5883 (_dbus_message_data_load):
5884 Add support for array types.
5886 * dbus/dbus-message.c: (check_message_handling):
5887 Add more types as test cases.
5889 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
5890 (_dbus_string_parse_double):
5891 Add the start offset to the end offset.
5893 * test/data/valid-messages/lots-of-arguments.message:
5894 New test message with lots of arguments.
5896 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5898 * dbus/dbus-message.c: (dbus_message_append_nil),
5899 (dbus_message_append_int32), (dbus_message_append_uint32),
5900 (dbus_message_append_double), (dbus_message_append_string),
5901 (dbus_message_append_int32_array),
5902 (dbus_message_append_uint32_array),
5903 (dbus_message_append_double_array),
5904 (dbus_message_append_byte_array),
5905 (dbus_message_append_string_array):
5906 Fix all out-of-memory handling in these functions.
5908 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5910 * dbus/dbus-message.c: (dbus_message_append_nil):
5913 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5915 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5916 (dbus_message_append_nil), (dbus_message_append_int32_array),
5917 (dbus_message_append_uint32_array),
5918 (dbus_message_append_double_array),
5919 (dbus_message_append_byte_array),
5920 (dbus_message_append_string_array), (dbus_message_get_args_valist),
5921 (dbus_message_iter_get_int32_array),
5922 (dbus_message_iter_get_uint32_array),
5923 (dbus_message_iter_get_double_array),
5924 (dbus_message_iter_get_byte_array),
5925 (dbus_message_iter_get_string_array):
5927 * dbus/dbus-message.h:
5928 Add functions for appending and getting arrays.
5930 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5932 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
5933 element size at least 8 bytes, fixes mempool tests on
5936 2003-02-20 Alexander Larsson <alexl@redhat.com>
5938 * dbus/dbus-transport-unix.c (unix_do_iteration):
5939 Unlock the connection mutex during a blocking select call.
5940 Add todo about how we need a way to wake up the select.
5942 * dbus/dbus-connection-internal.h:
5943 * dbus/dbus-connection.c:
5944 Add _dbus_connection_lock and _dbus_connection_unlock.
5946 2003-02-19 Havoc Pennington <hp@pobox.com>
5948 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
5949 Doxyfile.in, not Doxyfile
5951 * dbus/dbus-keyring.c: do some hacking on this
5953 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
5955 * dbus/dbus-errors.c (dbus_set_error_const): do not call
5957 (dbus_set_error): remove dbus_error_init, check for message ==
5958 NULL *before* we sprintf into it, and add @todo about including
5959 system headers in this file
5961 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
5963 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
5965 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
5966 get various bits of user information based on either username
5968 (_dbus_homedir_from_username): new function
5970 2003-02-19 Anders Carlsson <andersca@codefactory.se>
5973 Add check for nonposix getpwnam_r
5975 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5976 Align the pool element size to a sizeof (void *) boundary.
5978 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5979 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5980 General Solaris fixes.
5982 * test/data/valid-messages/simplest-manual.message:
5983 Explicitly state that we want little-endian packing.
5985 2003-02-19 Mikael Hallendal <micke@codefactory.se>
5987 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5989 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5990 Added to create a transport connecting using a tcp/ip socket.
5992 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5993 to a tcp socket at given host and port.
5994 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5997 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5999 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6000 Added to create a server listening on a TCP/IP socket.
6002 2003-02-19 Havoc Pennington <hp@pobox.com>
6004 Throughout: mop up all the Doxygen warnings and undocumented
6007 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6008 to search any paths.
6010 * dbus/dbus-threads.c: move global mutex initializers to
6011 dbus-internals.h, multiple prototypes was confusing doxygen
6012 besides being kind of ugly
6014 * Doxyfile (PREDEFINED): have Doxygen define
6015 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6016 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6017 (do not abuse the feature! it's for stuff like the autogenerated
6018 macros in dbus-md5.c, not just for things you don't feel like
6021 2003-02-18 Havoc Pennington <hp@pobox.com>
6023 * dbus/dbus-string.c (_dbus_string_zero): new function
6025 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6026 wrap it in some dbus-friendly API
6028 * dbus/dbus-types.h: add 16-bit types
6030 2003-02-18 Joe Shaw <joe@assbarn.com>
6032 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6033 credentials from our currently running process.
6034 (get_word): Fix a buglet where we were copying the entire length
6035 instead of relative to our position.
6037 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6038 keys on the stack... it's 640k of data.
6040 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6041 read the credentials byte off the socket, even if we don't have
6043 (_dbus_poll): Implement poll() using select() for systems which
6046 * glib/test-dbus-glib.c (main): Print out an error if no
6047 parameters are given.
6049 * test/data/auth/fallback.auth-script: Added. Tests that a client
6050 can fallback to a secondary auth mechanism if the first fails.
6052 2003-02-18 Havoc Pennington <hp@pobox.com>
6056 2003-02-17 Havoc Pennington <hp@pobox.com>
6058 * doc/dbus-specification.sgml: lots of cosmetic
6059 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6060 env variable to DBUS_BUS_ADDRESS, s/client/application/,
6061 s/server/bus/ (except in authentication section). Add a section
6062 "Message Bus Message Routing"
6064 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
6070 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6072 * doc/dbus-specification.sgml:
6073 Specification updates.
6075 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6077 * bus/activation.c: (bus_activation_init), (child_setup),
6078 (bus_activation_activate_service):
6080 * bus/main.c: (main):
6081 Set DBUS_ADDRESS environment variable.
6083 * dbus/dbus-errors.c: (dbus_set_error):
6084 Don't use va_copy since that's a C99 feature.
6086 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6087 (_dbus_spawn_async):
6088 * dbus/dbus-sysdeps.h:
6089 Add child_setup_func to _dbus_spawn_async.
6091 * doc/dbus-specification.sgml:
6092 Update specification.
6094 * test/spawn-test.c: (setup_func), (main):
6097 2003-02-17 Alexander Larsson <alexl@redhat.com>
6099 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6102 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6106 * doc/dbus-test-plan.sgml:
6107 Add test plan document.
6112 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6114 * dbus/dbus-message.c: (decode_header_data),
6115 (_dbus_message_loader_return_buffer):
6116 Set the header padding amount when loading a message.
6118 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6120 * bus/dispatch.c: (send_one_message):
6121 Only send broadcast messages to registered connections.
6123 * dbus/dbus-message.c: (dbus_message_name_is):
6124 * dbus/dbus-message.h:
6125 New convenience function.
6127 * dbus/dbus-transport-debug.c: (do_reading):
6128 Only dispatch one message per run.
6131 * test/bus-test.c: (new_connection_callback), (die),
6132 (test_hello_client1_handler), (test_hello_client2_handler),
6133 (test_hello_replies), (main):
6135 * test/bus-test-loop.[ch]:
6138 2003-02-16 Havoc Pennington <hp@pobox.com>
6140 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6141 backward conditional
6143 2003-02-16 Alexander Larsson <alexl@redhat.com>
6145 * dbus/dbus-connection.c:
6146 Implement sent_message_with_reply. (with_reply_and block is still
6148 Made dispatch_message not lose message if OOM.
6150 * dbus/dbus-errors.h:
6151 Add NoReply error (for reply timeouts).
6153 2003-02-16 Alexander Larsson <alexl@redhat.com>
6155 * dbus/dbus-hash.c (_dbus_hash_table_unref):
6156 Actually free keys and values when destroying hashtable.
6158 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6160 * dbus/dbus-auth.c: (client_try_next_mechanism):
6163 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6164 Return TRUE if there's no thread implementation around.
6166 * glib/dbus-gmain.c: (free_source),
6167 (dbus_connection_hookup_with_g_main):
6168 Make sure to remove the GSource when the connection is finalized.
6170 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6172 * bus/dispatch.c: (bus_dispatch_message_handler):
6173 * dbus/dbus-errors.h:
6174 Return an error if someone tries to send a message to a service
6177 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6179 * bus/activation.c: (load_directory), (bus_activation_init),
6180 (bus_activation_activate_service):
6183 (bus_driver_handle_activate_service), (bus_driver_handle_message):
6184 More work on the activation handling.
6186 * dbus/dbus-errors.h:
6187 Add some error messages
6189 * dbus/dbus-message.c: (dbus_message_new_error_reply):
6190 * dbus/dbus-message.h:
6191 New function that creates an error message.
6193 * dbus/dbus-protocol.h:
6194 Add ACTIVATE_SERVER message.
6196 * dbus/dbus-server-unix.c: (unix_handle_watch),
6197 (_dbus_server_new_for_domain_socket):
6198 Call _dbus_fd_set_close_on_exec.
6200 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6201 (_dbus_spawn_async), (_dbus_disable_sigpipe),
6202 (_dbus_fd_set_close_on_exec):
6203 * dbus/dbus-sysdeps.h:
6204 Add _dbus_fd_set_close_on exec function. Also add function that checks
6205 that all open fds are set to close-on-exec and warns otherwise.
6207 * dbus/dbus-transport-unix.c:
6208 (_dbus_transport_new_for_domain_socket):
6209 Call _dbus_fd_set_close_on_exec.
6211 2003-02-16 Havoc Pennington <hp@pobox.com>
6213 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6214 allow people to avoid setting SIGPIPE to SIG_IGN
6215 (_dbus_connection_new_for_transport): disable SIGPIPE unless
6216 we've been asked not to
6218 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6220 * dbus/dbus-list.c: (_dbus_list_append_link),
6221 (_dbus_list_prepend_link):
6222 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6226 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6229 * bus/activation.c: (bus_activation_entry_free),
6230 (add_desktop_file_entry), (load_directory), (bus_activation_init):
6232 * bus/main.c: (main):
6233 Add simple activation support, doesn't work yet though.
6235 2003-02-15 Zack Rusin <zack@kde.org>
6237 * qt/dbus-qthread.cpp: small casting fix
6239 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6241 * dbus/dbus-errors.c: (dbus_set_error):
6242 * dbus/dbus-errors.h:
6243 Add a few errors and make dbus_set_error void.
6245 * dbus/dbus-sysdeps.c:
6246 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6247 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6248 * dbus/dbus-sysdeps.h:
6249 Add _dbus_spawn_async.
6251 * test/spawn-test.c: (main):
6252 Test for _dbus_spawn_async.
6254 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6256 * dbus/dbus-internals.h:
6257 Fix build without tests.
6259 * dbus/dbus-list.c: (alloc_link):
6260 Fix a segfault when a malloc fails.
6262 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6263 (dbus_malloc0), (dbus_realloc):
6264 Add support for malloc debugging.
6266 2003-02-15 Alexander Larsson <alexl@redhat.com>
6268 * dbus/dbus-threads.c:
6269 * dbus/dbus-threads.h:
6270 Add condvars. Remove static mutext from API.
6271 Implement static mutexes by initializing them from threads_init.
6273 * glib/dbus-gthread.c:
6274 * qt/dbus-qthread.cpp:
6275 Update with the thread api changes.
6280 Turn StaticMutex into normal mutex + init function.
6281 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6282 _dbus_list_append_link, _dbus_list_prepend_link
6285 * dbus/dbus-sysdeps.c:
6286 * dbus/dbus-sysdeps.h:
6287 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6288 _dbus_atomic_dec. Only slow fallback implementation at the moment.
6290 * dbus/dbus-protocol.h:
6291 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6293 * dbus/dbus-message.c:
6294 Make ref/unref atomic.
6297 * dbus/dbus-connection-internal.h:
6298 * dbus/dbus-connection.c:
6299 * dbus/dbus-connection.h:
6301 Change _peek to _borrow,_return & _steal_borrowed.
6302 Change disconnect callback to event.
6303 Make dbus_connection_dispatch_messages reentrant.
6305 * dbus/dbus-transport.c:
6306 Don't ref the connection on calls to the transport
6309 * dbus/dbus-message-handler.c:
6312 * glib/dbus-gmain.c:
6313 Don't use peek_message anymore
6316 * test/debug-thread.c:
6317 * test/debug-thread.h:
6318 Simple thread implementation that asserts() on deadlocks in
6319 single-threaded code.
6322 (main) Call debug_threads_init.
6325 Use disconnect message instead of disconnect callback.
6329 Don't call dbus_connection_set_disconnect_function. Instead export
6330 bus_connection_disconnect.
6333 Call bus_connection_disconnect when we get a disconnected message.
6335 2003-02-15 Havoc Pennington <hp@pobox.com>
6337 * dbus/dbus-message.c (dbus_message_new): fool around with the
6340 2003-02-14 Havoc Pennington <hp@pobox.com>
6342 * dbus/dbus-mempool.c: fail if the debug functions so indicate
6344 * dbus/dbus-memory.c: fail if the debug functions indicate we
6347 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6348 (_dbus_decrement_fail_alloc_counter): debug functions to
6349 simulate memory allocation failures
6351 2003-02-14 Havoc Pennington <hp@pobox.com>
6353 * dbus/dbus-errors.h (struct DBusError): add a word of padding
6356 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6358 * bus/driver.c: (bus_driver_handle_hello):
6360 * bus/services.c: (bus_service_lookup):
6361 Reorder message sending so we get a more sane order.
6363 * test/bus-test.c: (message_handler):
6366 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6368 * bus/driver.c: (bus_driver_send_service_deleted),
6369 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6370 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6371 (bus_driver_send_welcome_message),
6372 (bus_driver_handle_list_services),
6373 (bus_driver_handle_acquire_service),
6374 (bus_driver_handle_service_exists):
6375 * dbus/dbus-bus.c: (dbus_bus_register_client),
6376 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6377 * dbus/dbus-errors.c: (dbus_result_to_string):
6378 * dbus/dbus-errors.h:
6379 * dbus/dbus-message.c: (dbus_message_append_args),
6380 (dbus_message_append_args_valist), (dbus_message_get_args),
6381 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6382 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6383 (dbus_message_iter_get_byte_array),
6384 (dbus_message_iter_get_string_array), (message_iter_test),
6385 (check_message_handling), (_dbus_message_test):
6386 * dbus/dbus-message.h:
6387 * test/bus-test.c: (main):
6388 Change fields to arguments in messages, so that they won't be
6389 confused with header fields.
6391 * glib/test-dbus-glib.c: (main):
6392 Remove append_fields from hello message.
6394 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6396 * dbus/dbus-errors.c:
6397 * dbus/dbus-message.c:
6398 * dbus/dbus-string.c:
6399 Documentation fixes.
6401 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6403 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6405 Implement support for timeouts in dbus-glib.
6407 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6409 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6410 * dbus/dbus-message.c: (process_test_subdir):
6411 * test/break-loader.c: (find_breaks_based_on):
6412 Plug some memory leaks.
6414 2003-02-13 Richard Hult <rhult@codefactory.se>
6416 * bus/main.c: Fix build.
6418 * dbus/dbus-errors.h:
6419 * dbus/dbus-errors.c: Fix copyright for Anders.
6421 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6426 * bus/connection.c: (bus_connection_foreach):
6429 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6430 (unescape_string), (new_section), (parse_section_start),
6431 (parse_key_value), (report_error), (bus_desktop_file_load),
6432 (bus_desktop_file_get_string):
6433 * bus/desktop-file.h:
6434 Use DBusError for error reporting.
6436 * bus/dispatch.c: (send_one_message),
6437 (bus_dispatch_message_handler):
6438 * bus/driver.c: (bus_driver_send_service_deleted),
6439 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6440 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6441 (bus_driver_send_welcome_message),
6442 (bus_driver_handle_list_services),
6443 (bus_driver_handle_acquire_service),
6444 (bus_driver_handle_service_exists):
6445 * bus/loop.c: (bus_loop_run):
6447 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6449 * bus/utils.c: (bus_wait_for_memory):
6451 New files with general utility functions.
6453 * dbus/dbus-internals.h:
6454 Remove _DBUS_HANDLE_OOM.
6456 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6458 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6459 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6460 * dbus/dbus-errors.h:
6461 Add DBusError structure.
6463 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6465 * test/data/valid-messages/standard-acquire-service.message:
6466 * test/data/valid-messages/standard-hello.message:
6467 * test/data/valid-messages/standard-list-services.message:
6468 * test/data/valid-messages/standard-service-exists.message:
6469 Add some standard messages.
6471 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6473 * bus/driver.c: (bus_driver_send_welcome_message),
6474 (bus_driver_handle_list_services),
6475 (bus_driver_handle_acquire_service),
6476 (bus_driver_handle_service_exists), (bus_driver_handle_message):
6477 Update for API changes in libdbus.
6479 * dbus/dbus-message.c: (dbus_message_new_reply):
6480 * dbus/dbus-message.h:
6481 Remove the name argument. The spec states that replies shouldn't
6484 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6486 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6487 (report_error), (bus_desktop_file_load), (lookup_section),
6488 (lookup_line), (bus_desktop_file_get_raw),
6489 (bus_desktop_file_get_string):
6490 * bus/desktop-file.h:
6491 Some fixes, and new functions for getting a key value from a section.
6493 2003-02-13 Havoc Pennington <hp@pobox.com>
6495 * test/data/auth/fail-after-n-attempts.auth-script: new test
6497 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6500 2003-02-13 Havoc Pennington <hp@pobox.com>
6502 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6503 dbus_credentials_match were backward
6505 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6506 NO_CREDENTIALS and ROOT_CREDENTIALS
6508 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6509 into here. Never process more commands after we've reached an
6510 end state; store further data as unused bytes.
6512 * test/data/auth/*: add more auth tests
6514 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6515 command to match exact string and EXPECT_UNUSED to match unused
6518 * test/Makefile.am (dist-hook): fix to dist all the test stuff
6520 2003-02-12 Havoc Pennington <hp@pobox.com>
6522 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6523 \r off of popped lines
6525 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6528 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6531 2003-02-12 Havoc Pennington <hp@pobox.com>
6533 * dbus/Makefile.am: remove break-loader from the build, since it
6536 * configure.in: add --enable-gcov to turn on coverage profiling
6537 flags and disable optimization
6539 2003-02-10 Havoc Pennington <hp@pobox.com>
6541 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6542 initial cut at test framework for DBusAuth from laptop.
6543 Doesn't quite work yet but it compiles and I need to get
6544 it off the 266mhz laptop. ;-)
6546 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6547 fix a memleak in error case
6549 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6552 * bus/desktop-file.c:
6553 * bus/desktop-file.h:
6554 Add a desktop file parser.
6556 2003-02-11 Zack Rusin <zack@kde.org>
6558 * qt/message.[h|cpp]: sample implementation
6559 of the KDE wrapper for DBusMessage
6561 2003-02-09 Zack Rusin <zack@kde.org>
6563 * test/bus-test.c: make_it_compile
6564 * doc/dbus-specification.sgml: minimal semantic fix
6566 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6572 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6575 * dbus/dbus-break-loader.c:
6577 * test/break-loader.c:
6578 Move dbus-break-loader to test/ and rename it to break-loader.
6580 2003-02-02 Havoc Pennington <hp@pobox.com>
6582 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6583 for code to manage cookies in your home directory
6585 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6587 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6588 to authenticate, then disconnect the client.
6590 2003-02-03 Alexander Larsson <alexl@redhat.com>
6592 * dbus/dbus-message.c (dbus_message_append_fields):
6595 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6597 * doc/dbus-specification.sgml:
6598 Update address format section.
6600 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6603 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6604 (message_handler), (new_connection_callback), (loop_quit),
6608 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6610 * bus/driver.c: (bus_driver_handle_service_exists):
6611 Simplify the code a bit.
6613 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6616 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6619 Add libdbus-daemon.la and link to it.
6621 2003-02-01 James Willcox <jwillcox@gnome.org>
6623 * bus/driver.c: (bus_driver_handle_own_service):
6624 Actually include the service reply code in the message.
6626 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6628 * bus/driver.c: (bus_driver_handle_service_exists):
6629 Don't unref the incoming message.
6631 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6633 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6635 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6637 * dbus/dbus-server.c: (dbus_server_listen):
6638 * dbus/dbus-transport.c: (_dbus_transport_open):
6639 ifdef out the calls to the debug transport and server.
6641 2003-02-02 Alexander Larsson <alexl@redhat.com>
6643 * dbus/dbus-watch.c (dbus_watch_get_flags):
6644 Add note in the docs that ERROR or HANGUP won't be returned
6645 and are assumed always on.
6647 * glib/dbus-gmain.c (add_watch):
6648 Always add IO_ERR | IO_HUP
6650 * dbus/dbus-message.h:
6651 Add semicolon after dbus_message_iter_get_string_array().
6652 Makes qt code build again
6654 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6656 * bus/driver.c: (create_unique_client_name),
6657 (bus_driver_handle_hello):
6658 Don't take a name, just use a numeric id to identify
6662 * dbus/dbus-bus.c: (dbus_bus_register_client),
6663 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6665 Add new convenience functions for communicating with the bus.
6667 * dbus/dbus-message.h:
6669 * dbus/dbus-protocol.h:
6672 2003-02-01 Alexander Larsson <alexl@redhat.com>
6674 * dbus/dbus-message.c (dbus_message_append_fields):
6675 Add some more doc comments.
6677 2003-02-01 Havoc Pennington <hp@pobox.com>
6679 * dbus/dbus-break-loader.c (randomly_modify_length): change
6680 a 4-byte value in the message as if it were a length
6682 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6683 execute bit on saved files
6685 2003-02-01 Havoc Pennington <hp@pobox.com>
6687 * dbus/dbus-break-loader.c (main): new program to find messages
6688 that break the loader.
6690 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6691 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6693 * dbus/dbus-string.c (_dbus_string_set_byte): new
6695 2003-01-31 Havoc Pennington <hp@pobox.com>
6697 * dbus/dbus-message.c: refactor the test code to be more general,
6698 in preparation for writing a "randomly permute test cases to
6699 try to break the loader" program.
6701 2003-01-31 Havoc Pennington <hp@pobox.com>
6703 * doc/dbus-specification.sgml: work on the specification
6705 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6706 the protocol version of the message.
6708 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6709 no longer specifies that.
6710 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6713 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6714 "break" for DBUS_TYPE_NIL, remove @todo
6716 2003-01-31 Havoc Pennington <hp@pobox.com>
6718 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6719 just set_is_error/get_is_error as this is a commonly-used
6720 function, and write docs.
6722 2003-01-31 Anders Carlsson <andersca@codefactory.se>
6724 * dbus/dbus-address.c: (dbus_address_entry_free):
6725 Free key and value lists.
6727 * dbus/dbus-internals.c: (_dbus_type_to_string):
6728 Add the types we didn't have.
6730 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6731 (_dbus_marshal_validate_arg):
6734 * dbus/dbus-message.c: (dbus_message_set_sender):
6735 Remove todo about being able to set sender to NULL.
6737 (dbus_message_set_is_error_reply),
6738 (dbus_message_get_is_error_reply):
6739 * dbus/dbus-message.h:
6742 * dbus/dbus-protocol.h:
6743 Add error reply flag.
6745 * test/data/valid-messages/opposite-endian.message:
6746 Add NIL type to test.
6748 2003-01-31 Havoc Pennington <hp@pobox.com>
6750 * doc/dbus-specification.sgml: fully specify the header. Add
6751 flags and major protocol version, and change header/body len to
6754 * dbus/dbus-message-builder.c (append_saved_length): append length
6757 * dbus/dbus-message.c (dbus_message_create_header): change header
6758 length and body length to unsigned. Add the new fields from the
6760 (_dbus_message_loader_return_buffer): unsigned header/body len
6762 2003-01-30 Havoc Pennington <hp@pobox.com>
6764 * dbus/dbus-auth.c: rework to use only REJECTED, no
6767 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
6768 use REJECTED, suggested by Mark McLoughlin
6770 2003-01-30 Havoc Pennington <hp@pobox.com>
6772 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
6773 a better way to report errors here. e.g. "unix address lacks
6774 path" or something. also "no such file" when the path doesn't
6777 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
6779 (dbus_parse_address): add @todo about documenting address format,
6780 and allowing , and ; to be escaped
6782 2003-01-30 Anders Carlsson <andersca@codefactory.se>
6785 Add dbus-address.[ch]
6787 * dbus/dbus-address.c: (dbus_address_entry_free),
6788 (dbus_address_entries_free), (create_entry),
6789 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
6790 (dbus_parse_address), (_dbus_address_test):
6791 * dbus/dbus-address.h:
6792 New files for dealing with address parsing.
6794 * dbus/dbus-connection.c:
6795 Document timeout functions.
6797 * dbus/dbus-message.c:
6798 Document dbus_message_new_from_message.
6800 * dbus/dbus-server-debug.c:
6803 * dbus/dbus-server.c: (dbus_server_listen):
6804 Parse address and use correct server implementation.
6806 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
6807 * dbus/dbus-string.h:
6808 New function with test.
6810 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
6814 * dbus/dbus-transport-debug.c:
6817 * dbus/dbus-transport.c: (_dbus_transport_open):
6818 Parse address and use correct transport implementation.
6820 2003-01-30 Havoc Pennington <hp@pobox.com>
6822 * dbus/dbus-message.c: use message->byte_order instead of
6823 DBUS_COMPILER_BYTE_ORDER throughout.
6824 (dbus_message_create_header): pad header to align the
6825 start of the body of the message to 8-byte boundary
6827 * dbus/dbus-marshal.h: make all the demarshalers take const
6828 DBusString arguments.
6830 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
6831 validate message args here, so we don't have to do slow validation
6832 later, and so we catch bad messages as they are incoming. Also add
6833 better checks on header_len and body_len. Also fill in
6836 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
6837 implemented properly)
6838 (_dbus_string_validate_nul): new function to check all-nul
6840 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
6841 get_arg_end_pos and remove all validation
6842 (_dbus_marshal_validate_arg): actually do validation here.
6844 2003-01-29 Havoc Pennington <hp@pobox.com>
6846 * dbus/dbus-message.c (check_message_handling): fix assertion
6847 failure on set_client_serial
6849 2003-01-28 Havoc Pennington <hp@pobox.com>
6851 * dbus/dbus-server-debug.c: Add doc section comments
6853 * dbus/dbus-transport-debug.c: add doc section comments
6855 2003-01-28 Havoc Pennington <hp@redhat.com>
6857 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
6858 the reverse order from how I had it
6859 (_dbus_string_base64_encode): reverse encoding order. I was
6860 basically byteswapping everything during encoding.
6862 2003-01-28 Anders Carlsson <andersca@codefactory.se>
6864 * dbus/dbus-connection-internal.h:
6865 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
6866 (_dbus_connection_remove_timeout):
6867 Add functions for adding and removing timeouts.
6869 * dbus/dbus-message.c: (dbus_message_new_from_message):
6870 Add new function that takes a message and creates an exact
6871 copy of it, but with the refcount set to 1.
6872 (check_message_handling):
6875 * dbus/dbus-server-protected.h:
6876 * dbus/dbus-server.c: (_dbus_server_init_base),
6877 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
6878 (dbus_server_set_timeout_functions):
6879 (_dbus_server_remove_timeout):
6880 New functions so that a server can add and remove timeouts.
6882 (dbus_server_listen):
6883 Add commented out call to dbus_server_debug_new.
6885 * dbus/dbus-timeout.c: (_dbus_timeout_new):
6886 Actually set the handler, doh.
6888 * dbus/dbus-transport.c: (_dbus_transport_open):
6889 Add commented out call to dbus_transport_debug_client_new.
6892 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
6894 2003-01-28 Havoc Pennington <hp@pobox.com>
6896 * dbus/dbus-message.c (check_message_handling): function to check
6897 on the loaded message, iterates over it etc.
6899 2003-01-28 Havoc Pennington <hp@pobox.com>
6901 * test/Makefile.am (dist-hook): fix make distdir
6903 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
6905 2003-01-27 Havoc Pennington <hp@pobox.com>
6907 * dbus/dbus-mempool.c (time_for_size): replace printf with
6910 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
6911 empty lines; fix the SAVE_LENGTH stuff to be
6912 START_LENGTH/END_LENGTH so it actually works; couple other
6915 * test/Makefile.am (dist-hook): add dist-hook for .message files
6917 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
6918 can be constant or locked.
6919 (_dbus_string_free): allow freeing a const string as
6922 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
6924 * dbus/dbus-test-main.c (main): take an argument which is the
6925 directory containing test data
6927 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
6928 argument to this and load all the messages in test/data/
6929 checking that they can be loaded or not loaded as appropriate.
6931 2003-01-27 Anders Carlsson <andersca@codefactory.se>
6933 * bus/dispatch.c: (bus_dispatch_message_handler):
6934 Dispatch messages sent to services.
6936 * bus/driver.c: (bus_driver_send_service_deleted),
6937 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6938 (bus_driver_send_service_acquired):
6939 Add helper functions for sending service related messages.
6941 (bus_driver_send_welcome_message):
6942 Send HELLO_REPLY instead of WELCOME.
6944 (bus_driver_handle_list_services):
6945 Send LIST_SERVICES_REPLY instead of SERVICES.
6947 (bus_driver_handle_own_service),
6948 (bus_driver_handle_service_exists):
6949 New message handlers.
6951 (bus_driver_handle_message):
6952 Invoke new message handlers.
6954 (bus_driver_remove_connection):
6955 Don't remove any services here since that's done automatically
6956 by bus_service_remove_owner now.
6959 New function signatures.
6961 * bus/services.c: (bus_service_add_owner):
6962 Send ServiceAcquired message if we're the only primary owner.
6964 (bus_service_remove_owner):
6965 Send ServiceAcquired/ServiceLost messages.
6967 (bus_service_set_prohibit_replacement),
6968 (bus_service_get_prohibit_replacement):
6969 Functions for setting prohibit replacement.
6971 (bus_service_has_owner):
6972 New function that checks if a connection is in the owner queue of
6976 Add new function signatures.
6978 * dbus/dbus-list.c: (_dbus_list_test):
6979 Add tests for _dbus_list_remove_last and traversing the list backwards.
6982 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6983 go any further, so return NULL then.
6985 * dbus/dbus-protocol.h:
6986 Add new messages, service flags and service replies.
6988 2003-01-26 Havoc Pennington <hp@pobox.com>
6990 * dbus/dbus-message-builder.c: implement, completely untested.
6992 * test/data/*: add data to be used in testing.
6993 ".message" files are our simple loadable text format.
6994 ".message-raw" will be binary dumps of messages.
6996 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6998 2003-01-26 Havoc Pennington <hp@pobox.com>
7000 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
7002 * dbus/dbus-errors.c (dbus_result_to_string): add
7005 * dbus/dbus-message-builder.c: new file, will contain code to load
7006 up messages from files. Not implemented yet.
7008 2003-01-26 Havoc Pennington <hp@pobox.com>
7010 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7011 the sender by setting to NULL
7013 2003-01-26 Havoc Pennington <hp@pobox.com>
7015 The unit tests pass, but otherwise untested. If it breaks, the
7016 tests should have been better. ;-)
7018 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7021 * dbus/dbus-message.c: redo everything so we maintain
7022 message->header as the only copy of the various fields.
7023 This avoids the possibility of out-of-memory in some cases,
7024 for example dbus_message_lock() can't run out of memory anymore,
7025 and avoids extra copying. Figured I may as well go ahead and do
7026 this since it was busted for dbus_message_lock to not return
7027 failure on OOM, and dbus_message_write_header was totally
7028 unchecked for OOM. Also fixed some random other bugs.
7030 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7031 that strings are nul-terminated. Also, end_pos can be equal
7032 to string length just not greater than, I think.
7033 (_dbus_marshal_set_int32): new function
7034 (_dbus_marshal_set_uint32): new function
7035 (_dbus_marshal_set_string): new function
7037 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7038 a warning, init timeout_list to NULL
7039 (dbus_connection_send_message): don't use uninitialized variable
7042 * dbus/dbus-string.c (_dbus_string_replace_len): new function
7044 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7046 * bus/driver.c: (bus_driver_handle_hello),
7047 (bus_driver_send_welcome_message):
7050 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7052 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7053 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7054 (dbus_connection_unref):
7055 * dbus/dbus-marshal.c: (_dbus_marshal_test):
7056 * dbus/dbus-message.c: (dbus_message_unref),
7059 (dbus_message_get_fields):
7060 Remove debugging printout.
7062 (_dbus_message_loader_return_buffer):
7063 Don't store the header string.
7065 (_dbus_message_test):
7068 2003-01-26 Richard Hult <rhult@codefactory.se>
7070 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7071 the file descriptor list, since it can change under us.
7073 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7075 * glib/dbus-gmain.c: (dbus_connection_prepare),
7076 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7077 (remove_watch), (dbus_connection_hookup_with_g_main):
7078 Rewrite the glib handling to use its own GSource instead of a
7079 GIOChannel so we can catch messages put in the queue while waiting
7082 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7085 * bus/connection.c: (connection_disconnect_handler),
7086 (connection_watch_callback), (bus_connection_setup):
7087 * bus/dispatch.c: (send_one_message),
7088 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7089 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7091 * bus/driver.c: (bus_driver_send_service_deleted),
7092 (bus_driver_send_service_created), (bus_driver_handle_hello),
7093 (bus_driver_send_welcome_message),
7094 (bus_driver_handle_list_services), (bus_driver_remove_connection),
7095 (bus_driver_handle_message):
7097 Refactor code, put the message dispatching in its own file. Use
7098 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7101 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7103 * dbus/dbus-internals.h:
7104 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7106 * dbus/dbus-message.c: (dbus_message_get_sender):
7107 * dbus/dbus-message.h:
7108 Implement dbus_message_get_sender.
7110 * dbus/dbus-protocol.h:
7111 Add message and service defines.
7113 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7115 * dbus/dbus-connection.c: (dbus_connection_send_message):
7116 * dbus/dbus-message-internal.h:
7117 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7118 (dbus_message_write_header):
7119 Remove _dbus_messag_unlock and don't set the client serial on a
7120 message if one already exists.
7122 2003-01-24 Havoc Pennington <hp@pobox.com>
7124 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7127 * bus/driver.c (bus_driver_handle_list_services): fix a leak
7130 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7132 * dbus/dbus-list.c: (alloc_link), (free_link):
7133 Use a memory pool for the links.
7135 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7137 * bus/connection.c: (bus_connection_foreach):
7139 Add new bus_connection_foreach function.
7141 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7142 Add function that broadcasts a message to all clients.
7144 (bus_driver_send_service_created), (bus_driver_handle_hello),
7145 (bus_driver_send_welcome_message),
7146 (bus_driver_handle_list_services), (bus_driver_message_handler):
7147 Implement functions that take care of listing services, and notifying
7148 clients when new services are created.
7150 * bus/services.c: (bus_services_list):
7152 Add new function that returns an array of strings with the currently
7153 registered services.
7156 * glib/dbus-gmain.c:
7157 Update copyright year.
7159 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7161 * dbus/dbus-connection.c: (dbus_connection_send_message):
7162 Unlock the message in case it was sent earlier.
7164 (dbus_connection_send_message_with_reply_and_block):
7165 Remove the reply message from the list.
7167 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7168 Set array_len and new_pos correctly.
7170 (_dbus_marshal_test):
7171 Remove debug output.
7173 * dbus/dbus-message-internal.h:
7174 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7175 New function that returns the reply serial.
7177 (_dbus_message_unlock):
7178 New function that unlocks a message and resets its header.
7180 (dbus_message_append_string_array),
7181 (dbus_message_get_fields_valist),
7182 (dbus_message_iter_get_field_type),
7183 (dbus_message_iter_get_string_array),
7184 (dbus_message_get_fields),
7185 (dbus_message_append_fields_valist):
7186 Handle string arrays.
7188 (dbus_message_set_sender):
7189 Make this function public since the bus daemon needs it.
7191 (decode_header_data):
7192 Set the reply serial to -1 initially.
7194 * dbus/dbus-message.h:
7195 Add dbus_message_set_sender.
7197 2003-01-24 Havoc Pennington <hp@pobox.com>
7199 * doc/dbus-specification.sgml: add some stuff
7201 2003-01-22 Havoc Pennington <hp@pobox.com>
7203 * doc/dbus-specification.sgml: Start to document the protocol.
7205 2003-01-22 Havoc Pennington <hp@pobox.com>
7207 * dbus/dbus-connection.c
7208 (dbus_connection_send_message_with_reply_and_block): add some @todo
7210 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7212 2003-01-21 Havoc Pennington <hp@pobox.com>
7214 (patch untested because can't compile)
7216 * bus/driver.c (create_unique_client_name): make this function
7217 never recycle client names. Also, caller should initialize
7220 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7222 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7224 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7225 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7226 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7227 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7228 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7229 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7230 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7231 * dbus/dbus-marshal.h:
7232 * dbus/dbus-protocol.h:
7233 Add support for marshalling and demarshalling integer, double
7236 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7241 * bus/connection.c: (connection_disconnect_handler):
7242 Remove the connection from the bus driver's list.
7244 (connection_watch_callback): Dispatch messages.
7246 (free_connection_data): Free connection name.
7248 (bus_connection_setup): Add connection to the bus driver's list.
7249 (bus_connection_remove_owned_service):
7250 (bus_connection_set_name), (bus_connection_get_name):
7251 Add functions for setting and getting the connection's name.
7254 Add function headers.
7256 * bus/driver.c: (create_unique_client_name),
7257 (bus_driver_handle_hello_message),
7258 (bus_driver_send_welcome_message), (bus_driver_message_handler),
7259 (bus_driver_add_connection), (bus_driver_remove_connection):
7262 * bus/services.c: (bus_service_free):
7264 New file that handles communication and registreation with the bus
7267 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7269 * dbus/dbus-connection.c: (dbus_connection_send_message):
7270 Add a new client_serial parameter.
7272 (dbus_connection_send_message_with_reply):
7273 Remove a @todo since we've implemented the blocking function.
7275 (dbus_connection_send_message_with_reply_and_block):
7276 New function that sends a message and waits for a reply and
7277 then returns the reply.
7279 * dbus/dbus-connection.h:
7282 * dbus/dbus-errors.c: (dbus_result_to_string):
7283 * dbus/dbus-errors.h:
7284 Add new DBUS_RESULT.
7286 * dbus/dbus-message-internal.h:
7287 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7288 (_dbus_message_set_sender), (dbus_message_write_header),
7289 (dbus_message_new_reply), (decode_header_data),
7290 (_dbus_message_loader_return_buffer), (_dbus_message_test):
7291 * dbus/dbus-message.h:
7292 Add new functions that set the reply serial and sender.
7293 Also marshal and demarshal them correctly and add test.
7295 * dbus/dbus-protocol.h:
7296 Add new DBUS_MESSAGE_TYPE_SENDER.
7299 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7300 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7301 (dbus_connection_hookup_with_g_main):
7302 * glib/test-dbus-glib.c: (main):
7303 Rewrite to use GIOChannel and remove the GSource crack.
7305 * test/echo-client.c: (main):
7306 * test/watch.c: (check_messages):
7307 Update for changed APIs
7309 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7311 * dbus/Makefile.am: Add dbus-timeout.[cħ]
7313 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7314 Create a DBusTimeoutList.
7315 (dbus_connection_set_timeout_functions): Add new function to
7316 set timeout callbacks
7318 * dbus/dbus-connection.h: Add public DBusTimeout API.
7320 * dbus/dbus-message.c: (dbus_message_get_service):
7321 * dbus/dbus-message.h: New function.
7323 * dbus/dbus-server.c: Fix small doc typo.
7325 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7327 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7329 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7330 of the string, just as long as specified.
7332 2003-01-19 Havoc Pennington <hp@pobox.com>
7334 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7337 * dbus/dbus-server.c (dbus_server_set_max_connections)
7338 (dbus_server_get_max_connections, dbus_server_get_n_connections):
7339 keep track of current number of connections, and add API for
7340 setting a max (but haven't implemented enforcing the max yet)
7342 2003-01-18 Havoc Pennington <hp@pobox.com>
7344 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7345 reading/writing if read_watch != NULL or write_watch != NULL.
7347 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7348 the message loader code to actually load message->header and
7349 message->body into the newly-created message.
7351 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7354 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7355 (dbus_connection_get_max_message_size)
7356 (dbus_connection_set_max_live_messages_size)
7357 (dbus_connection_get_max_live_messages_size): implement some
7358 resource limitation functions
7360 * dbus/dbus-resources.c: new file implementing some of the
7361 resource limits stuff
7363 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7364 missing docs, add @todo to handle OOM etc.
7366 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7369 2003-01-18 Havoc Pennington <hp@pobox.com>
7371 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7372 connection if it hasn't been already.
7374 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7375 replace with DisconnectFunction.
7377 2003-01-18 Havoc Pennington <hp@pobox.com>
7379 Building --disable-verbose-mode --disable-asserts --disable-tests
7380 cuts the library from 112K to 45K or so
7382 * configure.in: check for varargs macro support,
7383 add --enable-verbose-mode, --enable-asserts.
7385 * dbus/dbus-internals.h (_dbus_assert): support
7387 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7389 2003-01-18 Havoc Pennington <hp@pobox.com>
7391 * dbus/dbus-test.c: include config.h so that tests actually run
7393 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7394 so the failure mode when that assumption fails will be plenty
7397 2003-01-18 Havoc Pennington <hp@pobox.com>
7399 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7401 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7404 * test/Makefile.am: don't use special variable "TESTS" for echo-*
7405 since we don't want to use those in make check
7407 2003-01-15 Havoc Pennington <hp@redhat.com>
7413 2003-01-15 Havoc Pennington <hp@redhat.com>
7415 * test/Makefile.am: fix so that test source code ends up in the
7416 distribution on make distcheck
7418 2003-01-15 Havoc Pennington <hp@redhat.com>
7424 2003-01-15 Havoc Pennington <hp@redhat.com>
7426 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7427 fix build when --disable-tests
7429 * Makefile.am (EXTRA_DIST): put HACKING in here
7431 * HACKING: document procedure for making a tarball release.
7433 2003-01-14 Anders Carlsson <andersca@codefactory.se>
7435 * bus/connection.c: (connection_error_handler),
7436 (bus_connection_setup):
7437 * bus/main.c: (main):
7438 Make sure that the DBusConnectionData struct is NULLed
7439 out to prevent a segfault.
7441 * dbus/dbus-errors.c: (dbus_result_to_string):
7442 * dbus/dbus-errors.h:
7443 * dbus/dbus-message.c: (dbus_message_get_fields),
7444 (dbus_message_get_fields_valist), (_dbus_message_test):
7445 * dbus/dbus-message.h:
7446 Make dbus_message_get_fields return a result code so we can
7447 track invalid fields as well as oom.
7449 2003-01-11 Havoc Pennington <hp@pobox.com>
7451 * configure.in: change --enable-test/--enable-ansi action-if-given
7452 to enable_foo=$enableval instead of enable_foo=yes
7454 2003-01-08 Havoc Pennington <hp@pobox.com>
7456 * dbus/dbus-string.c (_dbus_string_align_length): new function
7458 * dbus/dbus-test-main.c: move main() for test app here
7460 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7461 symbol to run tests, because dbus-test isn't in the main
7464 Code review nitpicks.
7466 * dbus/dbus-message.c (dbus_message_write_header): add newlines
7467 for people with narrow emacs ;-). Assert client_serial was filled
7468 in. Assert message->name != NULL.
7469 (dbus_message_append_fields): have "first_field_type" arg separate
7470 from va list, needed for C++ binding that also uses varargs IIRC
7471 and helps with type safety
7472 (dbus_message_new): add @todo about using DBusString to store
7473 service/name internally
7474 (dbus_message_new): don't leak ->service and ->name on OOM later
7476 (dbus_message_unref): free the service name
7477 (dbus_message_get_fields): same change to varargs
7478 i.e. first_field_type
7479 (_dbus_message_loader_return_buffer): assert that the message data
7480 is aligned (if not it's a bug in our code). Put in verbose griping
7481 about why we set corrupted = TRUE.
7482 (decode_header_data): add FIXME that char* is evil. Was going to
7483 add FIXME about evil locale-specific string.h strncmp, but just
7484 switched to wacky string-as-uint32 optimization. Move check for
7485 "no room for field name" above get_const_data_len() to avoid
7486 assertion failure in get_const_data_len if we have trailing 2
7487 bytes or the like. Check for service and name fields being
7488 provided twice. Don't leak service/name on error. Require field
7489 names to be aligned to 4 bytes.
7491 * dbus/dbus-marshal.c: move byte swap stuff to header
7492 (_dbus_pack_int32): uscore-prefix
7493 (_dbus_unpack_int32): uscore-prefix
7494 (_dbus_unpack_uint32): export
7495 (_dbus_demarshal_string): add @todo complaining about use of
7497 (_dbus_marshal_get_field_end_pos): add @todo about bad error
7498 handling allowing corrupt data to go unchecked
7500 2003-01-08 Havoc Pennington <hp@redhat.com>
7502 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7503 to the select() as needed for authentication. (should be using
7504 _dbus_poll() not select, but for another day)
7506 * dbus/dbus.h: include dbus/dbus-protocol.h
7508 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7510 * dbus/Makefile.am (dbusinclude_HEADERS): Install
7513 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7515 * dbus/dbus-internals.c: (_dbus_type_to_string):
7516 New function that returns a string describing a type.
7518 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7519 * dbus/dbus-marshal.h:
7520 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7521 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7522 (dbus_message_iter_get_byte_array):
7523 * dbus/dbus-message.h:
7524 Add new convenience functions for appending and getting message fields.
7525 Also add demarshalling routines for byte arrays.
7527 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7529 * dbus/dbus-connection-internal.h:
7530 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7531 (_dbus_connection_get_next_client_serial),
7532 (dbus_connection_send_message):
7533 * dbus/dbus-internals.h:
7534 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7535 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7536 (_dbus_marshal_uint32), (_dbus_demarshal_double),
7537 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7538 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7539 (_dbus_verbose_bytes), (_dbus_marshal_test):
7540 * dbus/dbus-marshal.h:
7541 * dbus/dbus-message-internal.h:
7542 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7543 (dbus_message_write_header), (_dbus_message_lock),
7544 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7545 (dbus_message_get_name), (dbus_message_append_int32),
7546 (dbus_message_append_uint32), (dbus_message_append_double),
7547 (dbus_message_append_string), (dbus_message_append_byte_array),
7548 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7549 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7550 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7551 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7552 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7553 (decode_header_data), (_dbus_message_loader_return_buffer),
7554 (message_iter_test), (_dbus_message_test):
7555 * dbus/dbus-message.h:
7556 * dbus/dbus-protocol.h:
7557 * dbus/dbus-test.c: (main):
7559 * glib/test-dbus-glib.c: (message_handler), (main):
7560 * test/echo-client.c: (main):
7561 * test/watch.c: (check_messages):
7562 Make messages sendable and receivable for real.
7564 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7566 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7567 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7568 * dbus/dbus-message.c: (dbus_message_append_int32),
7569 (dbus_message_append_uint32), (dbus_message_append_double),
7570 (dbus_message_append_string), (dbus_message_append_byte_array):
7571 Handle OOM restoration.
7573 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7575 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7576 (_dbus_demarshal_string), (_dbus_marshal_test):
7577 * dbus/dbus-marshal.h:
7578 * dbus/dbus-message.c: (dbus_message_get_name),
7579 Document these functions.
7581 (dbus_message_append_int32), (dbus_message_append_uint32),
7582 (dbus_message_append_double), (dbus_message_append_string),
7583 (dbus_message_append_byte_array):
7584 * dbus/dbus-message.h:
7585 Add functions for adding message fields of different types.
7587 * dbus/dbus-protocol.h:
7588 Add the different types.
7590 2003-01-05 Havoc Pennington <hp@pobox.com>
7592 * bus/connection.c: implement routines for handling connections,
7593 first thing is keeping a list of owned services on each connection
7594 and setting up watches etc.
7596 * bus/services.c: implement a mapping from service names to lists
7599 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7601 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7602 to use static mutexes for global data
7604 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7605 collection of functions to set/get application-specific data
7606 on the DBusConnection.
7608 2003-01-04 Havoc Pennington <hp@pobox.com>
7610 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7611 (_dbus_poll): new function
7613 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7616 * bus/loop.c: initial code for the daemon main loop
7618 2003-01-04 Havoc Pennington <hp@pobox.com>
7620 * test/watch.c (error_handler): make it safe if the error handler
7621 is called multiple times (if we s/error handler/disconnect
7622 handler/ we should just guarantee it's called only once)
7624 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7625 error handler on disconnect (it's quite possible we should
7626 just change the error handler to a "disconnect handler," I'm
7627 not sure we have any other meaningful errors)
7629 * configure.in: check for getpwnam_r
7631 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7632 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7633 mechanism as in SASL spec, using socket credentials
7635 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7636 (_dbus_send_credentials_unix_socket): new function
7638 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7640 (_dbus_write): only check errno if <0 returned
7641 (_dbus_write_two): ditto
7643 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7645 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7646 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7647 (_dbus_marshal_test):
7648 * dbus/dbus-marshal.h:
7649 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7650 to _dbus_marshal_utf8_string. Also fix some tests.
7652 2002-12-28 Harri Porten <porten@kde.org>
7654 * configure.in: added check for C++ compiler and a very cheesy
7655 check for the Qt integration
7657 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7659 * qt/Makefile.am: added
7661 * qt/.cvsignore: added
7663 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7664 latter, added #ifdef QT_THREAD_SUPPORT guard.
7666 * dbus/Makefile.am: added missing headers for make dist
7668 2002-12-28 Kristian Rietveld <kris@gtk.org>
7670 * dbus/Makefile.am: fixup export-symbols-regex.
7672 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7674 * acinclude.m4: Add this file and put the
7675 PKG_CHECK_MODULE macro in it.
7677 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7679 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7680 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7681 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7682 (_dbus_marshal_test):
7683 Make the demarshalling routines align the pos argument.
7684 Add string marshalling tests and fix the obvious bugs
7687 2002-12-26 Havoc Pennington <hp@pobox.com>
7689 * dbus/dbus-auth.c: fixes fixes fixes
7691 * dbus/dbus-transport-unix.c: wire up support for
7692 encoding/decoding data on the wire
7694 * dbus/dbus-auth.c (_dbus_auth_encode_data)
7695 (_dbus_auth_decode_data): append to target string
7696 instead of nuking it.
7698 2002-12-26 Havoc Pennington <hp@pobox.com>
7700 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7701 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7704 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7705 avoid swap_bytes() overhead (ignoring possible assembly stuff for
7706 now). Main point is because I wanted unpack_uint32 to implement
7708 (_dbus_verbose_bytes): new function
7710 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7712 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7713 mechanism to handle a corrupt message stream
7714 (_dbus_message_loader_new): fix preallocation to only prealloc,
7717 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7718 (_dbus_string_test): enhance tests for copy/move and fix the
7721 * dbus/dbus-transport-unix.c: Hold references in more places to
7722 avoid reentrancy problems
7724 * dbus/dbus-transport.c: ditto
7726 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7727 leak reference count in no-message case
7729 * test/watch.c (do_mainloop): handle adding/removing watches
7730 during iteration over the watches. Also, ref the connection/server
7731 stored on a watch, so we don't try to mangle a destroyed one.
7733 * dbus/dbus-transport-unix.c (do_authentication): perform
7736 * dbus/dbus-auth.c (get_state): add a state
7737 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7738 (_dbus_auth_get_unused_bytes): append the unused bytes
7739 to the passed in string, rather than prepend
7741 * dbus/dbus-transport.c (_dbus_transport_init_base): create
7742 the auth conversation DBusAuth
7744 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
7745 (_dbus_transport_new_for_domain_socket): when creating a
7746 transport, pass in whether it's a client-side or server-side
7747 transport so we know which DBusAuth to create
7749 2002-12-03 Havoc Pennington <hp@pobox.com>
7751 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
7752 _after_ finalizing the derived members
7753 (unix_connection_set): unref watch if we fail to add it
7755 * dbus/dbus-connection.c (dbus_connection_unref): delete the
7756 transport first, so that the connection owned by the
7757 transport will be valid as the transport finalizes.
7759 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
7760 if necessary, and remove watches from the connection.
7762 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
7764 2002-12-26 Anders Carlsson <andersca@codefactory.se>
7766 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7767 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7768 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7769 (_dbus_marshal_test):
7770 * dbus/dbus-marshal.h:
7771 Add string marshal functions and have the demarshal functions
7772 return the new position.
7774 2002-12-25 Havoc Pennington <hp@pobox.com>
7776 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
7777 it is a simple protocol that just maps directly to SASL.
7779 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
7780 initial implementation, not actually used yet.
7782 * dbus/dbus-string.c (_dbus_string_find): new function
7783 (_dbus_string_equal): new function
7784 (_dbus_string_base64_encode): new function
7785 (_dbus_string_base64_decode): new function
7787 2002-12-25 Anders Carlsson <andersca@codefactory.se>
7790 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
7791 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7792 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7793 (_dbus_demarshal_uint32), (_dbus_marshal_test):
7794 * dbus/dbus-marshal.h:
7795 * dbus/dbus-protocol.h:
7796 * dbus/dbus-test.c: (main):
7798 Add un-optimized marshalling/demarshalling routines.
7800 2002-12-25 Harri Porten <porten@kde.org>
7802 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
7804 2002-12-24 Zack Rusin <zack@kde.org>
7806 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
7807 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
7810 2002-12-24 Havoc Pennington <hp@pobox.com>
7812 * glib/dbus-gthread.c: fix include
7814 * glib/dbus-glib.h: rename DBusMessageHandler for now.
7815 I think glib API needs to change, though, as you don't
7816 want to use DBusMessageFunction, you want to use the
7817 DBusMessageHandler object. Probably
7818 dbus_connection_open_with_g_main_loop()
7819 and dbus_connection_setup_g_main_loop() or something like that
7820 (but think of better names...) that just create a connection
7821 that has watch/timeout functions etc. already set up.
7823 * dbus/dbus-connection.c
7824 (dbus_connection_send_message_with_reply): new function just to
7825 show how the message handler helps us deal with replies.
7827 * dbus/dbus-list.c (_dbus_list_remove_last): new function
7829 * dbus/dbus-string.c (_dbus_string_test): free a string that
7832 * dbus/dbus-hash.c: use memory pools for the hash entries
7833 (rebuild_table): be more paranoid about overflow, and
7834 shrink table when we can
7835 (_dbus_hash_test): reduce number of sprintfs and write
7836 valid C89. Add tests for case where we grow and then
7837 shrink the hash table.
7839 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
7841 * dbus/dbus-connection.c (dbus_connection_register_handler)
7842 (dbus_connection_unregister_handler): new functions
7844 * dbus/dbus-message.c (dbus_message_get_name): new
7846 * dbus/dbus-list.c: fix docs typo
7848 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
7849 an object representing a handler for messages.
7851 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7854 * glib/dbus-gthread.c: (dbus_gthread_init):
7855 Don't use the gdbus prefix for public functions.
7857 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7861 Add GLib checks and fixup .pc files
7865 * glib/dbus-gmain.c: (gdbus_connection_prepare),
7866 (gdbus_connection_check), (gdbus_connection_dispatch),
7867 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
7868 (dbus_connection_gsource_new):
7869 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
7870 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
7871 * glib/test-dbus-glib.c: (message_handler), (main):
7874 2002-12-15 Harri Porten <porten@kde.org>
7876 * autogen.sh: check for libtoolize before attempting to use it
7878 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
7881 * .cvsignore: ignore more stamp files
7883 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
7885 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
7886 without make install.
7888 2002-12-15 Havoc Pennington <hp@pobox.com>
7890 * dbus/dbus-threads.c: add thread stubs that a higher library
7891 layer can fill in. e.g. the GLib wrapper might fill them in with
7892 GThread stuff. We still need to use this thread API to
7893 thread-safe-ize the library.
7895 2002-12-12 Havoc Pennington <hp@pobox.com>
7897 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
7898 below new interfaces and include fewer system headers.
7900 * dbus/dbus-sysdeps.c (_dbus_read): new function
7901 (_dbus_write): new function
7902 (_dbus_write_two): new function
7903 (_dbus_connect_unix_socket): new function
7904 (_dbus_listen_unix_socket): new function
7906 * dbus/dbus-message-internal.h: change interfaces to use
7909 2002-12-11 Havoc Pennington <hp@pobox.com>
7911 * dbus/dbus-types.h: add dbus_unichar
7913 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
7915 * dbus/dbus-connection.c (dbus_connection_send_message): return
7918 * dbus/dbus-transport.c: include dbus-watch.h
7920 * dbus/dbus-connection.c: include dbus-message-internal.h
7922 * HACKING: add file with coding guidelines stuff.
7924 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
7925 handling here, for security purposes (as in vsftpd). Not actually
7926 using this class yet.
7928 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
7929 system/libc usage here, as in vsftpd, for ease of auditing (and
7930 should also simplify portability). Haven't actually moved all the
7931 system/libc usage into here yet.
7933 2002-11-25 Havoc Pennington <hp@pobox.com>
7935 * dbus/dbus-internals.c (_dbus_verbose): fix to not
7936 always print the first verbose message.
7938 2002-11-24 Havoc Pennington <hp@pobox.com>
7940 * test/echo-client.c, test/echo-server.c: cheesy test
7943 * configure.in (AC_CHECK_FUNCS): check for writev
7945 * dbus/dbus-message.c (_dbus_message_get_network_data): new
7948 * dbus/dbus-list.c (_dbus_list_foreach): new function
7950 * dbus/dbus-internals.c (_dbus_verbose): new function
7952 * dbus/dbus-server.c, dbus/dbus-server.h: public object
7953 representing a server that listens for connections.
7955 * dbus/.cvsignore: create
7957 * dbus/dbus-errors.h, dbus/dbus-errors.c:
7958 public API for reporting errors
7960 * dbus/dbus-connection.h, dbus/dbus-connection.c:
7961 public object representing a connection that
7962 sends/receives messages. (Same object used for
7963 both client and server.)
7965 * dbus/dbus-transport.h, dbus/dbus-transport.c:
7966 Basic abstraction for different kinds of stream
7967 that we might read/write messages from.
7969 2002-11-23 Havoc Pennington <hp@pobox.com>
7971 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7974 * dbus/dbus-test.c (main): add list test, and include
7975 dbus-test.h as intended
7977 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7978 (_dbus_hash_table_remove_int): return value indicates
7979 whether the entry existed to remove
7981 * dbus/dbus-list.c: add linked list utility class,
7984 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7987 2002-11-23 Havoc Pennington <hp@pobox.com>
7989 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7990 DBUS_END_DECLS to nothing, that should fix this once and for all
7992 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7994 * dbus/dbus-message.c, dbus/dbus-hash.c:
7995 add some missing @brief
7997 2002-11-23 Havoc Pennington <hp@pobox.com>
7999 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
8000 to avoid confusing Doxygen
8002 * dbus/dbus-hash.c: @} not }@
8004 * dbus/dbus-message.c (struct DBusMessage): split out
8007 2002-11-23 Havoc Pennington <hp@pobox.com>
8009 * configure.in: pile on more warning flags if using gcc
8011 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8012 to document static functions
8014 * configure.in: add summary to end of configure so it
8015 looks nice and attractive
8017 * dbus/dbus-hash.c: finish implementation and write unit
8020 * configure.in: add --enable-tests to enable unit tests
8022 * dbus/dbus-test.c: test program to run unit tests
8023 for all files in dbus/*, initially runs a test for
8026 * dbus/dbus-internals.h: file to hold some internal utility stuff
8028 2002-11-22 Havoc Pennington <hp@redhat.com>
8030 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8031 "ported" away from Tcl
8033 * dbus/dbus-types.h: header for types such as dbus_bool_t
8035 2002-11-22 Havoc Pennington <hp@redhat.com>
8037 * dbus/dbus.h: fixups for doc warnings
8039 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8041 (QUIET): make it quiet so we can see warnings
8043 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8045 2002-11-22 Havoc Pennington <hp@redhat.com>
8047 * Makefile.am: include "Doxyfile" target in all-local
8049 * configure.in: generate the Doxyfile
8051 * Doxyfile.in: move Doxyfile here, so we can use
8052 configure to generate a Doxyfile with the right
8055 2002-11-22 Havoc Pennington <hp@redhat.com>
8057 * dbus/dbus-message.c: move inline docs into .c file
8059 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8060 so all docs are under doc/
8061 (MAN_EXTENSION): generate man pages. Use extension
8062 ".3dbus" which matches ".3qt" on my system,
8063 I guess this is OK, I don't know really.
8064 (FILE_PATTERNS): look for .c files not .h, makes sense
8067 2002-11-22 Havoc Pennington <hp@pobox.com>
8069 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8070 because any app can be a server, and any app can be a client,
8071 the bus is a special kind of server.
8073 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
8075 * Doxyfile : adding. Still needs Makefile rules to be generated
8076 automatically (just run "doxygen" in the toplevel dir for now to
8079 * dbus/dbus-message.h : Adding sample docs (javadoc since
8080 resembles gtk-doc a little more)
8082 * dbus/dbus.h : Adding sample docs
8084 2002-11-21 Havoc Pennington <hp@redhat.com>
8086 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8087 so we can allow ourselves to include files directly,
8088 instead of having to use dbus.h
8090 * dbus/dbus.h: fill in
8092 * dbus/dbus-message.h: sketch out a sample header file.
8093 Include griping if you include it directly instead of
8096 * dbus/dbus-macros.h: new file with macros for extern "C",
8097 TRUE/FALSE, NULL, etc.
8099 * doc/file-boilerplate.c: put include guards in here
8101 2002-11-21 Havoc Pennington <hp@redhat.com>
8103 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8105 * COPYING: include the GPL as well, and license code
8106 under both AFL and GPL.
8108 2002-11-21 Havoc Pennington <hp@redhat.com>
8110 * acconfig.h: get rid of this
8112 * autogen.sh (run_configure): add --no-configure option
8114 * configure.in: remove AC_ARG_PROGRAM to make
8115 autoconf complain less. add AC_PREREQ.
8116 add AC_DEFINE third arg.
8118 2002-11-21 Anders Carlsson <andersca@codefactory.se>
8121 Fix references so we can distcheck.
8123 2002-11-21 Havoc Pennington <hp@redhat.com>
8125 * Initial module creation