1 2005-01-01 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
4 for a variety of reasons '==' doesn't do this.
6 2004-12-31 Havoc Pennington <hp@redhat.com>
8 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
11 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
13 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
15 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
17 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
18 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
19 dbus-protocol.h. Because they are defines and not enums they are not
22 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
24 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
25 dbus_bus_activate_service
27 * python/dbus.py (Bus.activate_service): activate a service on the
30 2004-12-24 Havoc Pennington <hp@redhat.com>
32 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
33 file format has also changed and I haven't adapted to that yet
35 * Makefile.am: load .gcno files from latest gcc
37 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
38 * Patch from Rob Taylor <robtaylor@fastmail.fm>
40 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
43 * python/dbus.py (get_unix_user): Added binding to
44 call dbus_bindings.bus_get_unix_user
46 * python/extract.py: Modified the proto_pat regex to
49 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
51 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
52 better POSIX compliance.
54 2004-12-19 Havoc Pennington <hp@redhat.com>
56 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
57 (_dbus_string_insert_8_aligned): new functions
59 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
61 2004-12-18 Havoc Pennington <hp@redhat.com>
63 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
66 * dbus/dbus-message.c: fix a comment, and add a still-unused
67 not-implemented function
69 * dbus/dbus-marshal.h: fix comment
71 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
73 2004-12-17 Joe Shaw <joeshaw@novell.com>
75 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
76 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
77 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
78 Type.UnderlyingSystemType to get the actual system type
79 underneath. This code previously depended on the broken Mono
80 behavior, which was fixed in 1.1.3.
82 2004-11-27 Havoc Pennington <hp@redhat.com>
84 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
86 (_dbus_string_get_const_data): inline when asserts are disabled
88 * dbus/dbus-message.c: record the _dbus_current_generation of
89 creation so we can complain if dbus_shutdown() is used improperly.
90 Do this only if checks are enabled.
92 * dbus/dbus-connection.c: ditto
94 2004-11-26 Havoc Pennington <hp@redhat.com>
96 * test/glib/test-profile.c: add with_bus mode to profile echoes
97 that go through the bus.
99 * test/glib/run-test.sh: add ability to run test-profile
101 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
104 2004-11-26 Havoc Pennington <hp@redhat.com>
106 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
107 thing was implemented
109 2004-11-26 Havoc Pennington <hp@redhat.com>
111 * test/glib/test-profile.c: tweak a bit, add support for some
112 made-up minimal malloc overhead with plain sockets, since in
113 real life some sort of buffers are unavoidable thus we could
114 count them in the theoretical best case
116 2004-11-26 Havoc Pennington <hp@redhat.com>
118 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
119 where I was trying to cache one too many messages
121 2004-11-26 Havoc Pennington <hp@redhat.com>
123 * dbus/dbus-message.c: reimplement message cache as an array which
124 makes the cache about twice as fast and saves maybe 1.5% overall
126 2004-11-26 Havoc Pennington <hp@redhat.com>
128 * dbus/dbus-threads.c (init_global_locks): forgot to put the
129 message cache lock here
131 2004-11-26 Havoc Pennington <hp@redhat.com>
133 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
134 the "char byte_order" next to each other to save 4 bytes
135 (dbus_message_new_empty_header): reduce preallocation, since the
136 message cache should achieve a similar effect
137 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
138 message cache that keeps a few DBusMessage around in a pool,
139 another 8% speedup or so.
141 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
143 2004-11-25 Havoc Pennington <hp@redhat.com>
145 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
146 to write, without reading or blocking, try it before the poll()
147 and skip the poll() if nothing remains to write. This is about a
148 3% speedup in the echo client/server
150 2004-11-25 Havoc Pennington <hp@redhat.com>
152 The primary change here is to always write() once before adding
153 the write watch, which gives us about a 10% performance increase.
155 * dbus/dbus-transport-unix.c: a number of modifications to cope
156 with removing messages_pending
157 (check_write_watch): properly handle
158 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
159 messages_pending stuff
160 (check_read_watch): properly handle WAITING_FOR_MEMORY and
162 (unix_handle_watch): after writing, see if the write watch can be
164 (unix_do_iteration): assert that write_watch/read_watch are
165 non-NULL rather than testing that they aren't, since they
166 aren't allowed to be NULL. check_write_watch() at the end so
167 we add the watch if we did not finish writing (e.g. got EAGAIN)
169 * dbus/dbus-transport-protected.h: remove messages_pending call,
170 since it resulted in too much inefficient watch adding/removing;
171 instead we now require that the transport user does an iteration
172 after queueing outgoing messages, and after trying the first
173 write() we add a write watch if we got EAGAIN or exceeded our
174 max bytes to write per iteration setting
176 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
179 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
180 freed and then accessed, valgrind flagged this bug, fix it
182 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
183 as the last valid field plus 1, where really it is equal to the
184 last valid field. Corrects some message corruption issues.
186 * dbus/dbus-mainloop.c: verbosity changes
188 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
189 instead of aborting in one of the test codepaths
191 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
192 caused not printing the pid ever again if a verbose was missing
193 the newline at the end
194 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
196 * dbus/dbus-connection.c: verbosity changes;
197 (dbus_connection_has_messages_to_send): new function
198 (_dbus_connection_message_sent): no longer call transport->messages_pending
199 (_dbus_connection_send_preallocated_unlocked): do one iteration to
200 try to write() immediately, so we can avoid the write watch. This
201 is the core purpose of this patchset
202 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
203 dump the outgoing message queue, so nobody will get confused
204 trying to send them or thinking stuff is pending to be sent
206 * bus/test.c: verbosity changes
208 * bus/driver.c: verbosity/assertion changes
210 * bus/dispatch.c: a bunch of little tweaks to get it working again
211 because this patchset changes when/where you need to block.
213 2004-11-23 Havoc Pennington <hp@redhat.com>
215 * test/glib/test-profile.c: modify to accept a plain_sockets
216 argument in which case it will bench plain sockets instead of
217 libdbus, for comparison purposes.
219 2004-11-22 Havoc Pennington <hp@redhat.com>
221 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
222 threads for more time, so sysprof can get a grip on it.
224 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
227 2004-11-13 Havoc Pennington <hp@redhat.com>
229 * test/glib/test-profile.c: fix this thing up a bit
231 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
232 preallocation sizes by a fair bit; not sure if this will be an
233 overall performance win or not, but it does reduce reallocs.
235 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
236 the test hack that forced constant realloc if asserts are
237 disabled, so we can profile sanely. Sprinkle in some
238 _DBUS_UNLIKELY() which are probably pointless, but before I
239 noticed the real performance problem I put them in.
240 (_dbus_string_validate_utf8): micro-optimize this thing a little
241 bit, though callgrind says it didn't help; then special-case
242 ascii, which did help a lot; then be sure we detect nul bytes as
243 invalid, which is a bugfix.
244 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
245 superstition; use memset to nul the padding instead of a manual
247 (_dbus_string_get_length): inline this as a
248 macro; it showed up in the profile because it's used for loop
251 2004-11-10 Colin Walters <walters@verbum.org>
253 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
256 2004-11-09 Colin Walters <walters@verbum.org>
258 * dbus/dbus-string.c (_dbus_string_get_length): New
259 function, writes DBusString to C buffer.
261 * dbus/dbus-string.h: Prototype it.
263 * dbus/dbus-message.c (dbus_message_type_to_string): New
264 function, converts message type into C string.
266 * dbus/dbus-message.h: Prototype it.
268 * bus/selinux.c (bus_selinux_check): Take source pid,
269 target pid, and audit data. Pass audit data to
271 (log_audit_callback): New function, appends extra
273 (bus_selinux_allows_acquire_service): Also take
274 service name, add it to audit data.
275 (bus_selinux_allows_send): Also take message
276 type, interface, method member, error name,
277 and destination, and add them to audit data.
278 (log_cb): Initialize func_audit.
280 * bus/selinux.h (bus_selinux_allows_acquire_service)
281 (bus_selinux_allows_send): Update prototypes
283 * bus/services.c (bus_registry_acquire_service): Pass
284 service name to bus_selinux_allows_acquire_service.
286 * bus/bus.c (bus_context_check_security_policy): Pass
287 additional audit data. Move assignment of dest
290 2004-11-07 Colin Walters <walters@verbum.org>
292 * dbus/dbus-transport-unix.c (do_authentication): Always
293 initialize auth_completed.
295 2004-11-07 Colin Walters <walters@verbum.org>
297 * bus/bus.c (load_config): Break into three
298 separate functions: process_config_first_time_only,
299 process_config_every_time, and process_config_postinit.
300 (process_config_every_time): Move call of
301 bus_registry_set_service_context_table into
302 process_config_postinit.
303 (process_config_postinit): New function, does
304 any processing that needs to happen late
305 in initialization (and also on reload).
306 (bus_context_new): Instead of calling load_config,
307 open config parser here and call process_config_first_time_only
308 and process_config_every_time directly. Later, after
309 we have forked but before changing UID,
310 invoke bus_selinux_full_init, and then call
311 process_config_postinit.
312 (bus_context_reload_config): As in bus_context_new,
313 load parse file inside here, and call process_config_every_time
314 and process_config_postinit.
316 * bus/services.h, bus/services.c
317 (bus_registry_set_service_context_table): Rename
318 from bus_registry_set_sid_table. Take string hash from config
319 parser, and convert them here into SIDs.
321 * bus/config-parser.c (struct BusConfigParser): Have
322 config parser only store a mapping of service->context
324 (merge_service_context_hash): New function.
325 (merge_included): Merge context string hashes instead
326 of using bus_selinux_id_table_union.
327 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
328 simply create a new string hash.
329 (bus_config_parser_unref): Unref it.
330 (start_selinux_child): Simply insert strings into hash,
331 don't call bus_selinux_id_table_copy_over.
333 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
334 (bus_selinux_id_table_copy_over): Delete.
336 2004-11-03 Colin Walters <walters@verbum.org>
338 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
341 2004-11-03 Colin Walters <walters@verbum.org>
343 * bus/test-main.c (test_pre_hook): Fix test logic,
344 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
346 2004-11-02 Colin Walters <walters@redhat.com>
348 * bus/selinux.c (bus_selinux_init): Split into two functions,
349 bus_selinux_pre_init and bus_selinux_post_init.
350 (bus_selinux_pre_init): Just determine whether SELinux is
352 (bus_selinux_post_init): Do everything else.
354 * bus/main.c (main): Call bus_selinux_pre_init before parsing
355 config file, and bus_selinux_post_init after. This ensures that
356 we don't lose the policyreload notification thread that
357 bus_selinux_init created before forking previously.
359 * bus/test-main.c (test_pre_hook): Update for split.
361 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
363 Patch from Johan Fischer <linux@fischaz.com>
365 * mono/doc/Makefile.am (install-data-local): Added directory
368 2004-10-29 Colin Walters <walters@redhat.com>
370 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
371 parameter for fd to write pid to.
373 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
375 * bus/bus.c (bus_context_new): Pass print_pid_fd
376 to _dbus_become_daemon (bug #1720)
378 2004-10-29 Colin Walters <walters@redhat.com>
380 Patch from Ed Catmur <ed@catmur.co.uk>
382 * mono/doc/Makefile.am (install-data-local): Handle
385 2004-10-29 Colin Walters <walters@redhat.com>
387 * bus/.cvsignore, qt/.cvsignore: Update.
389 2004-10-29 Colin Walters <walters@redhat.com>
391 Patch from Kristof Vansant <de_lupus@pandora.be>
393 * configure.in: Detect Slackware.
394 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
395 * bus/rc.messagebus.in: New file.
397 2004-10-29 Colin Walters <walters@redhat.com>
399 * tools/dbus-monitor.c (filter_func): Return
400 DBUS_HANDLER_RESULT_HANDLED in filter function
402 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
404 2004-10-29 Colin Walters <walters@redhat.com>
406 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
408 * bus/services.c (bus_registry_acquire_service):
409 Correctly retrieve service name from DBusString
412 2004-10-29 Colin Walters <walters@redhat.com>
414 * dbus/dbus-glib.h: Update documentation to not
415 refer to internal APIs.
417 2004-10-27 Joe Shaw <joeshaw@novell.com>
419 * mono/Arguments.cs (GetDBusTypeConstructor):
420 type.UnderlyingSystemType will return "System.Byte" if you do it
421 on "byte[]", which is not what we want. So check the type.IsArray
422 property and use System.Array instead.
424 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
426 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
427 the DBusUserInfo structure since this is passed into the function.
428 This would cause a double free when the function that allocated
429 the structure would try to free it when an error occured.
431 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
432 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
433 for service activation to avoid 32bit/64bit parallel install issues
435 2004-10-21 Colin Walters <walters@verbum.org>
437 * AUTHORS: Fix my email address, the @gnu.org one
438 has been bouncing for some time. Also add J5.
440 2004-10-21 Colin Walters <walters@verbum.org>
442 * dbus/dbus-transport-unix.c (do_authentication): Return
443 authentication status to callers.
444 (unix_handle_watch): If we completed authentication this round,
445 don't do another read. Instead wait until the next iteration,
446 after we've read any pending data in the auth buffer.
447 (unix_do_iteration): Ditto.
448 (unix_handle_watch): Updated for new do_authentication prototype.
450 2004-10-18 Colin Walters <walters@verbum.org>
452 * bus/selinux.c (bus_selinux_enabled): Handle
453 --disable-selinux case.
455 2004-10-18 Colin Walters <walters@verbum.org>
457 * bus/selinux.h: Add bus_selinux_enabled.
459 * bus/selinux.c (bus_selinux_enabled): Implement it.
461 * bus/config-parser.c (struct include): Add
462 if_selinux_enabled member.
463 (start_busconfig_child): Parse if_selinux_enabled
464 attribute for include.
465 (bus_config_parser_content): Handle it.
467 * bus/session.conf.in, bus/system.conf.in: Add
468 inclusion of context mapping to default config files;
469 conditional on SELinux being enabled.
471 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
473 * test/data/invalid-config-files/badselinux-1.conf,
474 test/data/invalid-config-files/badselinux-2.conf:
475 Test files for bad syntax.
477 2004-10-17 Colin Walters <walters@verbum.org>
479 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
480 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
481 format specifier mismatches.
483 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
485 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
488 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
489 pointer (bug #1540, Leonardo Boiko).
491 2004-09-28 Jon Trowbridge <trow@ximian.com>
493 * mono/BusDriver.cs: Changed BusDriver struct to remove
494 the ServiceCreated and ServiceDeleted events and replace them
495 with the new ServiceOwnerChanged event.
497 * mono/example/BusListener.cs: Added a new example program,
498 which listens for and reports any ServiceOwnerChanged events
501 * mono/example/Makefile.am (DESTDIR): Build changes for the
502 new BusListener.cs example.
504 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
506 * bus/signals.c (bus_match_rule_parse): validate the components of
507 match rules (bug #1439).
509 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
511 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
513 * doc/dbus-specification.xml: document ServiceOwnerChanged
516 * bus/driver.c, bus/driver.h, bus/services.c: Use
517 ServiceOwnerChanged signal instead of ServiceCreated and
520 * bus/dispatch.c: update testcase for the new signal.
522 2004-09-20 Jon Trowbridge <trow@ximian.com>
524 Patch from Nat Friedman <nat@novell.com>
526 * mono/Makefile.am: A number of small build fixes to allow "make
527 distcheck" to succeed.
529 * mono/example/Makefile.am: "make distcheck" fixes.
531 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
534 * test/Makefile.am: "make distcheck" fixes.
536 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
538 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
540 * doc/busconfig.dtd: update the DTD for the at_console attribute.
542 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
543 messages after the first one (bug #1389).
545 * bus/dispatch.c (check_double_hello_message): add a test case for
546 the double hello message bug.
547 (check_existent_service_activation): fix check of spawning error.
549 2004-09-16 David Zeuthen <david@fubar.dk>
551 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
553 2004-09-12 David Zeuthen <david@fubar.dk>
555 Patch from Kay Sievers <kay.sievers@vrfy.org>
557 * bus/bus.c (bus_context_new):
561 Add commandline option --nofork to override configuration file
564 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
566 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
567 compilers don't like it (bug #974).
569 2004-09-04 Harald Fernengel <harry@kdevelop.org>
571 * qt/connection.*: Applied patch by Jérôme Lodewyck
572 <lodewyck@clipper.ens.fr> to integrate an existing
573 connection into the Qt eventloop
575 2004-08-30 Jon Trowbridge <trow@ximian.com>
577 * mono/BusDriver.cs: Added. This is a class for interacting with
578 the org.freedesktop.DBus service.
580 * mono/Message.cs: Added a mechanism to expose the message that is
581 currently being dispatched via the static Message.Current
582 property. Added Message.Sender and Message.Destination
585 * mono/Handler.cs: Expose the dispatched message via
586 Message.Current when handling method calls.
588 * mono/Service.cs: Expose the dispatched message via
589 Message.Current when handling signal emissions.
591 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
592 Connection.BaseService property.
594 2004-08-28 Havoc Pennington <hp@redhat.com>
596 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
598 More fixes from Steve Grubb
600 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
601 (_dbus_listen_tcp_socket): fix fd leak
603 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
604 EINTR to a bit lower in the code
606 2004-08-26 Jon Trowbridge <trow@ximian.com>
608 * bus/driver.c (bus_driver_handle_service_exists): Respond with
609 TRUE if we are inquiring about the existence of the built-in
610 org.freedesktop.DBus service.
612 2004-08-25 John Palmieri <johnp@redhat.com>
613 * bus/config-parser.c:
614 (struct PolicyType): Add POLICY_CONSOLE
615 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
616 (start_busconfig_child): Sets up console element when
617 <policy at_console=""> is encountered in a policy file
618 (append_rule_from_element): Convert console elements to console
622 (bus_policy_create_client_policy): Add console rules to the client
623 policy based on if the client is at the console
624 (bus_policy_append_console_rule): New function for adding a
625 console rule to a policy
626 (bus_policy_merge): Handle console rule merging
628 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
629 where we check for console user files
631 * dbus/dbus-sysdeps.c:
632 (_dbus_file_exists): New function which checks if the given
634 (_dbus_user_at_console): New function which does the system
635 specific process of checking if the user is at the console
637 * dbus/dbus-userdb.c:
638 (_dbus_is_console_user): New function converts a UID to user name
639 and then calls the system specific _dbus_user_at_console to
640 see if the user is at the console and therefor a console user
642 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
644 * bus/config-parser.c (set_limit):
645 * bus/dbus-daemon-1.1.in:
646 * test/data/valid-config-files/many-rules.conf: set the
647 max_match_rules_per_connection limt from the config file.
649 * doc/busconfig.dtd: update the DTD.
651 * bus/driver.c: remove some unused variables.
653 2004-08-24 Mikael Hallendal <micke@imendio.com>
655 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
656 it's been replaced by dbus_g_bus_get
658 2004-08-23 Colin Walters <walters@redhat.com>
660 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
662 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
664 * bus/selinux.c: Create a thread for policy reload notification.
665 (bus_selinux_get_policy_root): Implement.
667 * bus/config-parser.c (start_busconfig_child)
668 (bus_config_parser_content): Support SELinux-root relative
671 * configure.in <HAVE_SELINUX>: Add -lpthread.
673 * bus/test-main.c (test_pre_hook, test_post_hook): New.
674 (test_post_hook): Move memory checking into here.
675 (test_pre_hook, test_post_hook): Move SELinux checks in
676 here, but conditional on a DBUS_TEST_SELINUX environment
677 variable. Unfortunately we can't run the SELinux checks
678 as a normal user, since they won't have any permissions
679 for /selinux. So this will have to be tested manually
680 for now, until we have virtualization for most of
683 2004-08-23 Havoc Pennington <hp@redhat.com>
685 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
686 drop supplementary groups, suggested by Steve Grubb
688 2004-08-20 Colin Walters <walters@redhat.com>
690 * bus/config-parser.c (start_busconfig_child): Remove some unused
693 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
696 2004-08-17 Joe Shaw <joeshaw@novell.com>
698 * configure.in: If --enable-mono is passed in, if we can't find
701 * mono/Makefile.am: Use /gacutil to install assemblies into the
704 2004-08-12 Havoc Pennington <hp@redhat.com>
706 * NEWS: update for 0.22
708 * configure.in: release 0.22
710 2004-08-11 Colin Walters <walters@redhat.com>
712 * tools/dbus-send.c (main, usage): Add --reply-timeout
715 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
717 * bus/bus.c (process_config_first_time_only): get rid of an unused
718 DBusError that was causing a memoy leak (bug #989).
720 * dbus/dbus-keyring.c, dbus/dbus-message.c:
721 fix compilation on Solaris/Forte C (bug #974)
723 * bus/main.c (main): plug two minuscule memleaks.
725 2004-08-10 Havoc Pennington <hp@redhat.com>
727 * doc/dbus-tutorial.xml: add some more info on GLib bindings
729 2004-08-09 Havoc Pennington <hp@redhat.com>
731 * COPYING: switch to Academic Free License version 2.1 instead of
732 2.0, to resolve complaints about patent termination clause.
734 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
736 * README: added documentation for the --enable-python
739 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
741 * bus/config-parser.c (bus_config_parser_new): fix an invalid
742 _unref in the SELinux support.
744 * doc/busconfig.dtd: update DTD for SELinux support.
746 * bus/config-loader-libxml.c: fix error handler and parser
747 initialisation/cleanup. OOM test now works with libxml2 HEAD.
749 * configure.in: remove the warning about libxml2.
751 * dbus/dbus-bus.c: silence doxygen warning.
753 2004-07-31 Colin Walters <walters@redhat.com>
755 * configure.in: Move #error in SELinux check to its own line.
757 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
759 * dbus/dbus-internals.h (_DBUS_SET_OOM):
760 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
763 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
764 broken by the change in the _SET_OOM macros.
766 2004-07-31 Colin Walters <walters@redhat.com>
768 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
771 2004-07-31 Colin Walters <walters@redhat.com>
773 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
774 to correctly detect DBUS__ACQUIRE_SVC. Also add an
777 2004-07-24 Havoc Pennington <hp@redhat.com>
779 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
781 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
784 * configure.in: add --enable-selinux
786 * bus/policy.c (bus_policy_merge): add FIXME to a comment
788 * bus/main.c (main): initialize and shut down selinux
790 * bus/connection.c: store SELinux ID on each connection, to avoid
791 repeated getting of the string context and converting it into
794 * bus/bus.c (bus_context_get_policy): new accessor, though it
796 (bus_context_check_security_policy): check whether the security
797 context of sender connection can send to the security context of
800 * bus/config-parser.c: add parsing for <selinux> and <associate>
802 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
803 implement dbus_connection_get_unix_fd()
805 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
806 function, used by the selinux stuff
808 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
810 * bus/config-loader-libxml.c: complete the implementation of
811 libxml backend for config file loader. Doesn't work with full OOM
814 * configure.in: change error when selecting libxml into a warning.
816 * test/data/invalid-config-files: add two non-well-formed XML
819 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
821 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
822 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
823 be necessary to read all the buffer. (bug #894)
825 * bus/activation.c (bus_activation_activate_service): fix a
826 potential assertion failure (bug #896). Small optimization in the
827 case of auto-activation messages.
829 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
830 add test case for byte-through-vararg bug (#901). patch by Kimmo
833 2004-07-28 Anders Carlsson <andersca@gnome.org>
836 * python/dbus_bindings.pyx.in:
837 Add dbus.init_gthreads (), allow emit_signal to pass
838 arguments to the signal.
840 2004-07-24 Havoc Pennington <hp@redhat.com>
842 * AUTHORS: add some people, not really comprehensively, let me
845 2004-07-24 Havoc Pennington <hp@redhat.com>
847 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
850 * test/Makefile.am (DIST_SUBDIRS): here also
852 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
854 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
855 breaking build on Solaris, reported by Farhad Saberi on the ML.
857 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
858 va_arg invocation to account for integer promotion in the case of
859 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
861 * bus/services.c (bus_service_remove_owner): fix bug #902, use
862 _dbus_list_get_first_link, not _dbus_list_get_first.
864 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
866 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
867 handler functions so that the asserts in _dbus_object_subtree_unref
870 * dbus/dbus-transport-unix.c (do_reading):
871 _dbus_transport_queue_messages return value is of type
872 dbus_bool_t, not DBusDispatchStatus.
874 2004-07-19 David Zeuthen <david@fubar.dk>
876 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
879 (check_get_connection_unix_user): Debug says GetProperty; but the
880 method is called GetConnectionUnixUser
881 (check_get_connection_unix_process_id): New function
882 (bus_dispatch_test): Actually call check_get_connection_unix_user();
883 also call check_get_connection_unix_process_id()
886 (bus_driver_handle_get_connection_unix_process_id): New function,
887 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
891 (handle_server_data_external_mech): Set pid from the credentials
892 obtained from the socket
894 * dbus/dbus-connection.c:
895 (dbus_connection_get_unix_process_id): New function
897 * dbus/dbus-connection.h:
898 Add prototype for dbus_connection_get_unix_process_id
900 * dbus/dbus-transport.c:
901 (_dbus_transport_get_unix_process_id): New function
903 * dbus/dbus-transport.h:
904 Add prototype for _dbus_transport_get_unix_process_id
906 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
908 * dbus/dbus-message.c: Message counter fix, patch by Christian
909 Hammond <chipx86@gnupdate.org>
911 2004-07-18 Seth Nickell <seth@gnome.org>
914 * python/dbus_bindings.pyx.in:
915 * python/tests/test-client.py:
917 Add dbus.ByteArray and dbus_bindings.ByteArray
918 types so that byte streams can be passed back.
920 Give jdahlin the heaps of credit that are so
923 2004-07-12 Seth Nickell <seth@gnome.org>
927 Add message argument to the default object_method_handler
930 * python/dbus_bindings.pyx.in:
932 Automatically return NIL when passed an empty list
933 (we can't pass back a list since lists are typed
934 and we don't have any idea what type the the client
935 intended the list to be... :-( )
937 2004-07-10 Seth Nickell <seth@gnome.org>
939 * python/examples/Makefile.am:
941 Fix distcheck breakage caused by new examples.
943 2004-07-10 Seth Nickell <seth@gnome.org>
947 Add "message" argument to service-side dbus.Object
948 methods. This will break existing services written
949 using the python bindings, but will allow extraction
950 of all the message information (e.g. who its from).
952 Add improved "object oriented" signal handling/emission.
954 * python/examples/example-service.py:
958 * python/examples/example-signal-emitter.py:
959 * python/examples/example-signal-recipient.py:
961 Two new examples that show how to emit and receive
962 signals using the new APIs.
964 * python/examples/example-signals.py:
965 * python/examples/gconf-proxy-service.py:
966 * python/examples/gconf-proxy-service2.py:
968 Add "message" argument to service methods.
970 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
972 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
973 * dbus/bus.c (dbus_bus_get_unix_user)
974 * doc/dbus-specification.xml: implement GetConnectionUnixUser
975 method of org.freedesktop.DBus interface.
977 * bus/dispatch.c: test case
979 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
981 * python/Makefile.am: switched include directory from glib/ to dbus/
982 since dbus-glib.h moved
984 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
986 * configure.in: prevent building the gcj stuff and libxml loader
987 since they are broken.
989 2004-06-20 Havoc Pennington <hp@redhat.com>
991 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
992 codes from the dbus error names
994 * glib/dbus-glib.h: move to subdir dbus/ since it's included
995 as dbus/dbus-glib.h and that breakage is now visible due to
996 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
998 * glib/dbus-glib.h: s/gproxy/g_proxy/
1000 * dbus/dbus-shared.h: new header to hold stuff shared with
1003 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1006 * glib/dbus-glib.h (dbus_set_g_error): move to
1007 dbus-glib-lowlevel.h
1009 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1010 of stuff to enable this
1012 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1014 * a bunch of other changes with the same basic "separate glib
1015 bindings from dbus.h" theme
1017 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
1019 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1021 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1023 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
1025 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1026 the reply value of the ServiceExists message.
1028 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
1030 * python/dbus_bindings.pyx.in: No longer need to parse path
1031 elements and pass them as arrays of strings. The C API now
1032 accepts plain path strings.
1033 (_build_parsed_path): removed
1035 2004-06-07 Havoc Pennington <hp@redhat.com>
1037 * doc/TODO: remove auto-activation item since it's done; sort
1038 items by importance/milestone
1040 2004-06-07 Havoc Pennington <hp@redhat.com>
1042 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1043 random signature when using REQUIRED_FIELDS (this hack won't work
1046 * dbus/dbus-message.c: change the signature to be a header field,
1047 instead of message->signature special-case string. Incremental
1048 step forward. Then we can fix up code to send the signature in the
1049 message, then fix up code to validate said signature, then fix up
1050 code to not put the typecodes inline, etc.
1051 (load_one_message): don't make up the signature after the fact
1052 (decode_header_data): require signature field for the known
1055 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1057 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1059 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
1061 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1063 * mono/Handler.cs: Updated to follow new path argument for
1064 (un-)registering objects.
1066 * mono/example/Makefile.am:
1068 * configure.in: Bumped required version for mono and use new -pkg
1071 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1073 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1074 registration functions take the path argument as char* instead of
1077 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1078 split off the path decompostion part of
1079 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1082 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1084 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1086 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1087 machine approach. A state is implemented as a function that
1088 handles incoming events as specified for that state.
1090 * doc/dbus-specification.xml: Update auth protocol state machine
1091 specification to match implementation. Remove some leftover
1094 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1096 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1097 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1100 * Doxyfile.in: remove deprecated options.
1102 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1103 glib/test-thread.h, glib/test-thread-client.c,
1104 glib/test-thread-server.c, glib/test-profile.c,
1105 glib/test-dbus-glib.c: remove these unused files.
1107 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
1109 * dbus/dbus-object-tree.c
1110 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1111 non-fallback handlers (bug #684).
1112 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1113 (find_subtree_recurse): report wether the returned subtree is an
1114 exact match or a "fallback" match higher up in the tree.
1115 (object_tree_test_iteration): update test case.
1117 2004-06-01 Seth Nickell <seth@gnome.org>
1119 * python/dbus_bindings.pyx.in:
1120 * python/tests/test-client.py:
1122 Round off basic type support. Add dicts (yay!), and
1123 remaining array types.
1125 Make MessageIter more general so it works for dicts too.
1127 Mark all loop variables as C integers.
1129 2004-05-31 Havoc Pennington <hp@redhat.com>
1131 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1134 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1136 * glib/dbus-glib-tool.c (main): set up to have a --self-test
1137 option that runs the tests, and start filling in some code
1138 including for starters just dumping the interfaces to stdout
1140 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1142 * test/data/valid-introspection-files/lots-of-types.xml: test of
1143 an example introspection file
1145 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1148 2004-05-31 Seth Nickell <seth@gnome.org>
1150 * python/dbus_bindings.pyx.in:
1151 * python/tests/test-client.py:
1156 Fix string array memory trashing bug... oops...
1158 2004-05-30 Seth Nickell <seth@gnome.org>
1162 Add a nicer-but-less-flexible alternate API for handling
1163 calls to virtual objects in dbus.ObjectTree.
1165 Screw up the argument order to the dbus.Object constructor
1166 for consistency with dbus.ObjectTree (and to make dbus_methods
1167 optional for future extension)
1169 * python/examples/Makefile.am:
1170 * python/examples/gconf-proxy-service.py:
1171 * python/examples/gconf-proxy-service2.py:
1173 Alternate implementation of gconf-proxy-service using the
1174 nicer dbus.ObjectTree API.
1176 * python/examples/example-service.py:
1177 * python/tests/test-server.py
1179 Reverse the argument order to deal with dbus.Object constructor
1182 2004-05-30 Seth Nickell <seth@gnome.org>
1184 * python/examples/example-client.py:
1185 * python/examples/example-service.py:
1187 Take it back. Lists seem to work but they're broken
1188 in the test suite. Make the base examples use
1191 2004-05-30 Seth Nickell <seth@gnome.org>
1193 * python/dbus_bindings.pyx.in:
1194 * python/tests/test-client.py:
1196 Add some more tests and fix errors that crop up.
1197 Unfortunately, currently it seems like marshalling
1198 and unmarshalling of lists is completely broken :-(
1200 2004-05-30 Seth Nickell <seth@gnome.org>
1202 * python/dbus_bindings.pyx.in:
1204 Add support for ObjectPath type.
1208 Refactor message handling code to a common function.
1210 * python/tests/test-client.py:
1211 * python/tests/test-server.py:
1213 Add tests that check to make sure values of all types
1214 can be echoed from a service w/o mangling.
1216 2004-05-29 Seth Nickell <seth@gnome.org>
1220 Add ObjectTree class which allows implementation
1221 of trees of "virtual" objects. Basically the python
1222 wrapper for "register_fallback".
1224 * python/examples/Makefile.am
1225 * python/examples/gconf-proxy-client.py:
1226 * python/examples/gconf-proxy-service.py:
1228 Implement a simple GConf proxy service that supports
1229 get/set on string and int GConf keys using the ObjectTree.
1231 2004-05-29 Seth Nickell <seth@gnome.org>
1234 * python/examples/example-client.py:
1235 * python/examples/example-service.py:
1236 * python/examples/list-system-services.py:
1238 Add SessionBus, SystemBus and ActivationBus classes
1239 so you don't need to know the special little BUS_TYPE
1242 2004-05-29 Havoc Pennington <hp@redhat.com>
1244 * bus/config-parser.c (process_test_valid_subdir): temporarily
1245 stop testing config parser OOM handling, since expat has issues
1246 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1248 * bus/dbus-daemon-1.1.in: change requested_reply to
1249 send_requested_reply/receive_requested_reply so we can send the
1250 replies, not just receive them.
1252 * bus/config-parser.c: parse the new
1253 send_requested_reply/receive_requested_reply
1255 * bus/policy.c (bus_client_policy_check_can_send): add
1256 requested_reply argument and use it
1258 * bus/bus.c (bus_context_check_security_policy): pass through
1259 requested_reply status to message send check
1261 * bus/system.conf.in: adapt to requested_reply change
1263 2004-05-28 Havoc Pennington <hp@redhat.com>
1265 * test/glib/test-service-glib.c (main): remove unused variable
1267 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1269 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1270 from the enum, no longer in use.
1272 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1275 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1276 whether error_name passed in is a valid error name.
1278 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
1280 * dbus/dbus-message.c (dbus_message_get_args): Added support for
1281 OBJECT_PATH and OBJECT_PATH_ARRAY
1283 2004-05-28 Seth Nickell <seth@gnome.org>
1285 * python/examples/Makefile.am:
1287 Forget to add Makefile.am. Do not pass go.
1289 2004-05-28 Michael Meeks <michael@ximian.com>
1291 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
1294 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1296 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1297 (_dbus_message_iter_get_basic_type_array): impl.
1298 drastically simplify ~all relevant _get methods to use these.
1299 (_dbus_message_iter_append_basic_array),
1300 (dbus_message_iter_append_basic): impl
1301 drastically simplify ~all relevant _append methods to use these.
1303 * dbus/dbus-message-builder.c (parse_basic_type)
1304 (parse_basic_array, lookup_basic_type): impl.
1305 (_dbus_message_data_load): prune scads of duplicate /
1308 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
1309 (_dbus_demarshal_basic_type): implement,
1310 (demarshal_and_validate_len/arg): beef up debug.
1311 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1313 2004-05-27 Seth Nickell <seth@gnome.org>
1316 * python/Makefile.am:
1318 Include the example python apps in the tarball.
1320 * python/examples/list-system-services.py
1322 Add a python new example that fetches the list of services
1323 from the system bus.
1325 2004-05-27 Seth Nickell <seth@gnome.org>
1328 * python/dbus_bindings.pyx.in:
1330 Fix failure to notify that a signal was not handled,
1331 resulted in hung functions.
1333 2004-05-25 Colin Walters <walters@redhat.com>
1335 * tools/dbus-monitor.c (main): Monitor all types of messages.
1337 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
1339 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1340 which unregisters the object path and disposes the handler.
1342 2004-05-23 Kristian Høgsberg <krh@redhat.com>
1344 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1346 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1347 operands to && so we call dbus_message_iter_next () for the last
1350 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1352 * dbus/dbus-object-tree.c
1353 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1354 children even if the requested path isn't registered.
1355 (object_tree_test_iteration): test object_tree_list_registered.
1357 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1360 2004-05-20 Kristian Høgsberg <krh@redhat.com>
1362 * doc/TODO: Remove resolved items.
1364 * bus/expirelist.h (struct BusExpireList): remove unused n_items
1367 * bus/connection.c (bus_connections_expect_reply): Enforce the
1368 per-connection limit on pending replies.
1370 Patch from Jon Trowbridge <trow@ximian.com>:
1372 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
1373 up a watch that triggers a config reload when one end of the pipe
1375 (signal_handler): Instead of doing the config reload in our SIGHUP
1376 handler, just write to the reload pipe and let the associated
1377 watch handle the reload when control returns to the main loop.
1379 * bus/driver.c (bus_driver_handle_reload_config): Added.
1380 Implements a ReloadConfig method for requesting a configuration
1381 file reload via the bus driver.
1383 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
1385 * HACKING: Updated release instructions concerning the wiki page.
1387 2004-05-18 Kristian Høgsberg <krh@redhat.com>
1389 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1390 filter against auth->allowed_mechs; we only add allowed mechs in
1391 record_mechanisms().
1393 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1394 ALLOWED_MECHS to auth-script format so we can set the list of
1397 * data/auth/client-out-of-mechanisms.auth-script: New test to
1398 check client disconnects when it is out of mechanisms to try.
1400 * dbus/dbus-auth.c (process_command): Remove check for lines
1401 longer that 1 MB; we only buffer up maximum 16 kB.
1403 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1404 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1405 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1406 assume there might be unused bytes.
1408 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1409 client-out-of-mechs, it is handled in process_reject(). Move check
1410 for max failures to send_rejected(), as it's a server-only thing.
1412 * dbus/dbus-auth.c: Factor out protocol reply code into functions
1413 send_auth(), send_data(), send_rejected(), send_error(),
1414 send_ok(), send_begin() and send_cancel().
1416 2004-05-17 Kristian Høgsberg <krh@redhat.com>
1418 Remove base64 encoding, replace with hex encoding. Original patch
1419 from trow@ximian.com, added error handling.
1421 * dbus/dbus-string.c (_dbus_string_base64_encode)
1422 (_dbus_string_base64_decode): Remove.
1423 (_dbus_string_hex_decode): Add end_return argument so we can
1424 distinguish between OOM and invalid hex encoding.
1425 (_dbus_string_test): Remove base64 tests and add test case for
1428 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1429 Replace base64 with hex.
1431 * test/data/auth/invalid-hex-encoding.auth-script: New test case
1432 for invalid hex encoded data in auth protocol.
1434 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1436 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1439 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1441 * mono/dbus-sharp.dll.config.in: Added for GAC
1442 * mono/dbus-sharp.snk: Added for GAC
1443 * mono/Assembly.cs.in: Added for GAC
1444 * mono/Makefile.am: Changes for GAC installation
1445 * configure.in: Added refs for dbus-sharp.dll.config.in and
1446 Assembly.cs.in. More fixes for mono testing
1447 * mono/example/Makefile.am: Changed var to CSC
1448 * Makefile.am: Changed flag name to DBUS_USE_CSC
1450 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1452 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1453 * mono/doc/*: Added documentation framework
1454 * configure.in: Added monodoc check
1455 * README: Added description of mono configure flags
1457 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
1459 * doc/dbus-specification.xml: Added a "Required" column to the
1460 header fields table and changed the "zero or more" verbage in
1461 the above paragraph to read "The header must contain the required
1462 named header fields and zero or more of the optional named header
1464 * test/data/invalid-messages/*.message: Added the required PATH
1465 named header field to the tests so that they don't fail on
1466 'Missing path field'
1468 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
1470 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1471 the stack by implicitly defining variable and parameter types and
1472 removing the hack of defining C pointers as python objects and later
1475 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
1477 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1479 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
1481 * mono/DBusType/Dict.cs: Handle empty dicts
1482 * mono/DBusType/Array.cs: Handle empty arrays
1483 * mono/Arguments.cs: Handle empty arguments
1485 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
1487 * dbus-sharp.pc.in: Modified to include include Libs and Requires
1490 2004-04-25 Kristian Høgsberg <krh@redhat.com>
1492 * test/data/valid-messages/standard-*.message: Update message
1493 test scripts to new header field names.
1495 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
1497 * test/break-loader.c (randomly_do_n_things): tracked down buffer
1498 overflow to times_we_did_each_thing array which would chop off the
1499 first character of the failure_dir string. Increased the size of
1500 the array to 7 to reflect the number of random mutation functions
1503 2004-04-21 Kristian Høgsberg <krh@redhat.com>
1505 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1506 unix_server->watch here, it is unreffed in disconnect.
1507 (_dbus_server_new_for_tcp_socket): convert NULL host to
1508 "localhost" here so we don't append NULL to address.
1510 * dbus/dbus-server.c (_dbus_server_test): Add test case for
1511 various addresses, including tcp with no explicit host.
1513 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1515 * dbus/dbus-message.c (decode_header_data, decode_string_field):
1516 fix incorrect setting of .name_offset in the HeaderField (it was
1517 off by two bytes, positioned right after the name and typecode)
1519 * bus/bus.c (bus_context_new, bus_context_unref): test before
1520 calling dbus_server_free_data_slot and _dbus_user_database_unref
1521 in case of an error.
1523 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1526 2004-04-19 Kristian Høgsberg <krh@redhat.com>
1528 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1529 _dbus_poll() instead of select().
1531 2004-04-15 Jon Trowbridge <trow@ximian.com>
1533 * bus/main.c (signal_handler): Reload the configuration files
1535 (main): Set up our SIGHUP handler.
1537 * bus/bus.c (struct BusContext): Store the config file, user and
1538 fork flag in the BusContext.
1539 (process_config_first_time_only): Added. Contains the code
1540 (previously in bus_context_new) for setting up the BusContext from
1541 the BusConfigParser that should only be run the first time the
1542 config files are read.
1543 (process_config_every_time): Added. Contains the code (previously
1544 in bus_context_new) for setting up the BusContext from the
1545 BusConfigParser that should be run every time the config files are
1547 (load_config): Added. Builds a BusConfigParser from the config
1548 files and passes the resulting structure off to
1549 process_config_first_time_only (assuming this is the first time)
1550 and process_config_every_time.
1551 (bus_context_new): All of the config-related code has been moved
1552 to process_config_first_time_only and process_config_every_time.
1553 Now this function just does the non-config-related initializations
1554 and calls load_config.
1555 (bus_context_reload_config): Added.
1557 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1559 * bus/driver.c (bus_driver_handle_get_service_owner):
1560 implement a GetServiceOwner method.
1561 * doc/dbus-specification.xml: document it.
1562 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1564 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1565 implement, using the bus GetServiceOwner method.
1567 * test/glib/test-dbus-glib.c:
1568 use dbus_gproxy_new_for_service_owner so that we can receive the
1571 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1573 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1574 dbus/dbus-message.c, dbus/dbus-protocol.h
1575 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1577 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1578 dbus/dbus-message.c, dbus/dbus-protocol.h
1579 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1581 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1582 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1583 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1585 * doc/dbus-specification.xml (Header Fields Table):
1586 s/SERVICE/DESTINATION
1587 s/SENDER_SERVICE/SENDER
1590 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1592 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1595 2004-04-13 Michael Meeks <michael@ximian.com>
1597 * glib/dbus-gobject.c (handle_introspect): split out
1598 (introspect_properties): this.
1599 (handle_introspect): implement this.
1601 * test/glib/Makefile.am: use the absolute path so the bus
1602 daemon's chdir ("/") doesn't kill us dead.
1604 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1606 2004-04-12 Jon Trowbridge <trow@ximian.com>
1608 * bus/config-parser.c (struct BusConfigParser): Added
1609 included_files field.
1610 (seen_include): Added. Checks whether or not a file has already
1611 been included by any parent BusConfigParser.
1612 (bus_config_parser_new): Copy the parent's included_files.
1613 (include_file): Track which files have been included, and fail on
1614 circular inclusions.
1615 (process_test_valid_subdir): Changed printf to report if we are
1616 testing valid or invalid conf files.
1617 (all_are_equiv): Changed printf to be a bit clearer about
1618 what we are actually doing.
1619 (bus_config_parser_test): Test invalid configuration files.
1621 2004-04-09 Jon Trowbridge <trow@ximian.com>
1623 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1624 argument. If non-null, the newly-constructed BusConfigParser will
1625 be initialized with the parent's BusLimits instead of the default
1627 (include_file): When including a config file, pass in
1628 the current parser as the parent and then copy the BusLimits
1629 from the included BusConfigParser pack to the current parser.
1630 (process_test_valid_subdir): Renamed from process_test_subdir.
1631 (process_test_equiv_subdir): Added. Walks through a directory,
1632 descending into each subdirectory and loading the config files
1633 it finds there. If any subdirectory contains two config files
1634 that don't produce identical BusConfigParser structs, fail.
1635 For now, the BusConfigParser's BusPolicies are not compared.
1636 (bus_config_parser_test): Call both process_test_valid_subdir and
1637 process_test_equiv_subdir.
1639 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1640 argument and pass it along to the call to bus_config_parser_new.
1641 Also made a few small changes to allow this code to compile.
1643 * bus/config-loader-expat.c (bus_config_load): Take a parent
1644 argument and pass it along to the call to bus_config_parser_new.
1646 * bus/bus.c (bus_context_new): Load the config file
1647 with a NULL parent argument.
1649 2004-03-29 Michael Meeks <michael@ximian.com>
1651 * glib/dbus-gobject.c (introspect_properties): split
1652 out, fix mangled 'while' flow control.
1653 (introspect_signals): implement.
1654 (handle_introspect): update.
1656 2004-03-29 Michael Meeks <michael@ximian.com>
1658 * glib/dbus-gobject.c (set_object_property): split out /
1659 re-work, use the property type, and not the message type(!)
1660 (get_object_property): ditto.
1662 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1663 (dbus_gvalue_marshal): make this code re-usable, needed
1664 for signals too, also on both proxy and server side.
1665 Re-write for more efficiency / readability.
1667 2004-03-29 Michael Meeks <michael@ximian.com>
1669 * dbus/dbus-message.c
1670 (dbus_message_new_error_printf): impl.
1672 * dbus/dbus-connection.c
1673 (dbus_connection_unregister_object_path): fix warning.
1675 * configure.in: fix no-mono-installed situation.
1677 2004-03-27 Havoc Pennington <hp@redhat.com>
1679 Patch from Timo Teräs:
1681 * tools/dbus-send.c (main): if --print-reply, assume type is
1682 method call; support boolean type args
1684 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1685 bunch of memleak and logic bugs
1687 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1689 * mono/Arguments.cs:
1690 * mono/Introspector.cs:
1692 * mono/InterfaceProxy.cs:
1694 * mono/ProxyBuilder.cs:
1696 Added InterfaceProxy class to avoid building proxies for every
1700 * dbus-message.c (dbus_message_append_args_valist)
1701 (dbus_message_iter_get_object_path)
1702 (dbus_message_iter_get_object_path_array)
1703 (dbus_message_iter_append_object_path)
1704 (dbus_message_iter_append_object_path_array):
1705 Added object_path iter functions to handle OBJECT_PATH arguments
1707 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1709 First checkin of mono bindings.
1712 Build stuff for the bindings
1713 * dbus-sharp.pc.in: Added for pkgconfig
1715 2004-03-21 Havoc Pennington <hp@redhat.com>
1717 * test/test-service.c (main): remove debug spew
1719 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1721 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1724 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1725 (dbus_message_iter_init_array_iterator)
1726 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1727 indicate whether the iterator is empty
1729 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1732 2004-03-19 Havoc Pennington <hp@redhat.com>
1734 * NEWS: 0.21 updates
1736 * configure.in: 0.21
1738 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
1740 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
1741 you don't need pyrex to make dist
1743 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
1746 2004-03-18 Richard Hult <richard@imendio.com>
1748 * dbus/dbus-message.c (dbus_message_get_auto_activation)
1749 (dbus_message_set_auto_activation): Add doxygen docs.
1751 2004-03-16 Richard Hult <richard@imendio.com>
1753 * bus/activation.c: (bus_activation_service_created),
1754 (bus_activation_send_pending_auto_activation_messages),
1755 (bus_activation_activate_service):
1757 * bus/dispatch.c: (bus_dispatch),
1758 (check_nonexistent_service_auto_activation),
1759 (check_service_auto_activated),
1760 (check_segfault_service_auto_activation),
1761 (check_existent_service_auto_activation), (bus_dispatch_test):
1762 * bus/driver.c: (bus_driver_handle_activate_service):
1763 * bus/services.c: (bus_registry_acquire_service):
1764 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
1765 (dbus_message_get_auto_activation):
1766 * dbus/dbus-message.h:
1767 * dbus/dbus-protocol.h: Implement auto-activation.
1769 * doc/dbus-specification.xml: Add auto-activation to the spec.
1771 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
1773 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
1774 fix a bug with CUSTOM types.
1776 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
1777 a unit test for this bug (used to fail).
1779 2004-03-12 Mikael Hallendal <micke@imendio.com>
1782 (babysitter_watch_callback): notify all pending activations waiting for
1783 the same exec that the activation failed.
1784 (bus_activation_activate_service): shortcut the activation if we
1785 already waiting for the same executable to start up.
1787 2004-03-12 Mikael Hallendal <micke@imendio.com>
1790 - Added service file reloading.
1791 Each service files directory is kept in an hash table in
1792 BusActivation and each BusActivationEntry knows what .service-file it
1793 was read from. So when you try to activate a service the bus will
1794 check if it's been updated, removed or if new .service-files has
1796 - Test code at the bottom for the service file reloading.
1797 * bus/test-main.c: (main):
1799 - added service reloading test.
1800 * dbus/dbus-sysdeps.c:
1801 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
1803 2004-03-08 Michael Meeks <michael@ximian.com>
1805 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
1806 bail immediately if disconnected, to avoid busy loop.
1808 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
1809 cleanup cut/paste/inefficiency.
1811 2004-03-01 David Zeuthen <david@fubar.dk>
1813 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
1814 bug where args were used twice. This bug resulted in a segfault
1815 on a Debian/PPC system when starting the messagebus daemon. Include
1816 dbus-sysdeps.h for DBUS_VA_COPY
1818 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
1820 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
1821 appropriate va_copy implementation. From GLib
1823 2004-02-24 Joe Shaw <joe@ximian.com>
1825 * bus/services.c (bus_registry_acquire_service): We need to pass
1826 in the service name to dbus_set_error() to prevent a crash.
1828 2003-12-26 Anders Carlsson <andersca@gnome.org>
1830 * AUTHORS: Reveal my True identity.
1832 2003-12-17 Mikael Hallendal <micke@imendio.com>
1834 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1835 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
1837 2003-12-13 Mikael Hallendal <micke@imendio.com>
1839 * doc/TODO: Added not about better error check of configuration files.
1841 2003-12-02 Richard Hult <richard@imendio.com>
1843 * Update AFL version to 2.0 throughout the source files to reflect
1844 the update that was done a while ago.
1846 2003-12-02 Richard Hult <richard@imendio.com>
1848 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
1849 wrote_dict_key to FALSE on the iter that the dict is appended to,
1850 just like when appending other types. Fixes a bug where a dict
1851 couldn't be put inside a dict.
1852 (dbus_message_iter_append_dict_key): Fix typo in warning message.
1853 (message_iter_test, _dbus_message_test): Add test case for dict
1856 2003-12-01 David Zeuthen <david@fubar.dk>
1858 * python/dbus.py: Add the actual message when calling the reciever
1859 of a signal such that parameters can be inspected. Add the method
1860 remove_signal_receiver
1862 2003-11-26 Mikael Hallendal <micke@imendio.com>
1866 * glib/*.[ch]: Made ref functions return the pointer
1868 2003-11-25 Zack Rusin <zack@kde.org>
1870 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
1872 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
1875 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
1876 the Integrator and to better fit with the server,
1878 2003-11-24 Zack Rusin <zack@kde.org>
1880 * qt/connection.h, qt/connection.cpp: removing initDbus method since
1881 the integrator handles it now
1883 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
1884 since QTimer wasn't really meant to be used the way DBusTimeout is
1886 2003-11-24 Zack Rusin <zack@kde.org>
1888 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
1889 Integrator class which integrates D-BUS with the Qt event loop,
1891 * qt/connection.h, qt/connection.cpp: Move all the code which
1892 was dealing with D-BUS integration to the Integrator class,
1893 and start using Integrator,
1895 2003-11-23 Zack Rusin <zack@kde.org>
1897 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
1900 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
1901 switching namespaces to DBusQt, reworking the class,
1903 * Makefile.cvs: switching dependencies so that it matches KDE
1906 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
1909 2003-11-19 Havoc Pennington <hp@redhat.com>
1913 * configure.in: bump version to 0.20
1915 * configure.in (have_qt): add yet another place to look for qt
1916 (someone hand trolltech a .pc file...)
1918 2003-11-01 Havoc Pennington <hp@redhat.com>
1920 * doc/dbus-specification.xml: add state machine docs on the auth
1921 protocol; just a first draft, I'm sure it's wrong.
1923 2003-10-28 David Zeuthen <david@fubar.dk>
1925 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
1926 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
1928 2003-10-28 Havoc Pennington <hp@redhat.com>
1930 * dbus/dbus-message.c (get_next_field): delete unused function
1932 2003-10-28 Havoc Pennington <hp@redhat.com>
1934 * bus/expirelist.c (do_expiration_with_current_time): detect
1935 failure of the expire_func due to OOM
1937 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
1939 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
1940 NoReply error that's now created by the bus when the service exits
1942 2003-10-28 Havoc Pennington <hp@redhat.com>
1944 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
1945 tests for set_path, set_interface, set_member, etc.
1947 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
1949 * dbus/dbus-message.c (set_string_field): always just delete and
1950 re-append the field; accept NULL for deletion
1951 (re_align_fields_recurse): reimplement
1953 2003-10-26 Havoc Pennington <hp@redhat.com>
1955 * dbus/dbus-connection.c: fix docs to properly describe the
1956 disconnected message
1957 (_dbus_connection_notify_disconnected): remove this function;
1958 we can't synchronously add the disconnected message, we have to
1959 do it after we've queued any remaining real messages
1960 (_dbus_connection_get_dispatch_status_unlocked): queue the
1961 disconnect message only if the transport has finished queueing all
1962 its real messages and is disconnected.
1963 (dbus_connection_disconnect): update the dispatch status here
1965 2003-10-22 Havoc Pennington <hp@redhat.com>
1967 * bus/bus.c (bus_context_check_security_policy): fix up assertion
1969 * bus/connection.c (bus_transaction_send_from_driver): set the
1970 destination to the connection's base service
1972 2003-10-20 Havoc Pennington <hp@redhat.com>
1974 hmm, make check is currently not passing.
1976 * doc/dbus-specification.xml: add requirement that custom type
1977 names follow the same rules as interface names.
1979 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1980 duplication and allow 'c' to be 'custom'; dict is now 'm' for
1983 * doc/dbus-specification.xml: update type codes to match
1984 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1985 CUSTOM. Add type OBJECT_PATH to the spec.
1987 2003-10-17 Havoc Pennington <hp@redhat.com>
1989 * bus/driver.c (create_unique_client_name): use "." as separator
1990 in base service names instead of '-'
1992 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1993 byte at the end of the string
1995 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
1996 optimization macros since string validation seems to be a slow
1999 * doc/dbus-specification.xml: restrict valid
2000 service/interface/member/error names. Add test suite code for the
2003 * dbus/dbus-string.c: limit service/interface/member/error names
2006 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2007 format arg to verbose spew
2009 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2010 memory, return instead of g_error
2012 * test/test-service.c (path_message_func): support emitting a
2015 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2016 activation bus type if DBUS_BUS_ACTIVATION was set; default to
2017 assuming the activation bus was the session bus so that services
2018 started manually will still register.
2019 (init_connections_unlocked): fix so that in OOM situation we get
2020 the same semantics when retrying the function
2022 * test/test-service.c (main): change to use path registration, to
2023 test those codepaths; register with DBUS_BUS_ACTIVATION rather
2024 than DBUS_BUS_SESSION
2026 2003-10-16 Havoc Pennington <hp@redhat.com>
2028 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2030 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2031 coverage of the tests
2032 (coverage-report.txt): don't move the .da and .bbg files around
2034 2003-10-16 Havoc Pennington <hp@redhat.com>
2036 * bus/bus.c (struct BusContext): remove struct field I didn't mean
2039 2003-10-16 Havoc Pennington <hp@redhat.com>
2041 * bus/connection.c (bus_pending_reply_expired): either cancel or
2043 (bus_connections_check_reply): use unlink, not remove_link, as we
2044 don't want to free the link; fixes double free mess
2046 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2047 where no reply was received
2049 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2052 * bus/signals.c (match_rule_matches): add special cases for the
2053 bus driver, so you can match on sender/destination for it.
2055 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2056 DBUS_PRINT_BACKTRACE is set
2058 * dbus/dbus-internals.c: add pid to assertion failure messages
2060 * dbus/dbus-connection.c: add message type code to the debug spew
2062 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2063 sender=foo not service=foo
2065 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2066 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
2067 DBUS_ACTIVATION_ADDRESS instead
2069 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2070 DBUS_SYSTEM_BUS_ADDRESS if appropriate
2072 * bus/bus.c (bus_context_new): handle OOM copying bus type into
2075 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2076 (dbus_message_iter_get_object_path_array): new function (half
2077 finished, disabled for the moment)
2079 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2080 DBUS_MESSAGE_TYPE_ERROR
2082 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2083 avoid redirecting stderr to /dev/null
2084 (babysit): close stdin if not doing the "exit_with_session" thing
2086 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2087 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2088 stdout/stdin, so things don't get confused
2090 * bus/system.conf.in: fix to allow replies, I modified .conf
2091 instead of .conf.in again.
2093 2003-10-14 David Zeuthen <david@fubar.dk>
2095 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2096 argtype to arg_type when raising unknown arg type exception.
2097 Changed type list to reflect the changes in dbus-protocol.h so
2098 the bindings actually work.
2100 2003-10-14 Havoc Pennington <hp@redhat.com>
2102 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2103 to have a bug keeping it from outputting the .da files sometimes
2104 (string_get_string): don't append garbage nul bytes to the string.
2106 2003-10-15 Seth Nickell <seth@gnome.org>
2108 * python/Makefile.am:
2110 Include dbus_h_wrapper.h in the dist tarball.
2112 2003-10-14 Havoc Pennington <hp@redhat.com>
2114 * bus/bus.c (bus_context_check_security_policy): revamp this to
2115 work more sanely with new policy-based requested reply setup
2117 * bus/connection.c (bus_transaction_send_from_driver): set bus
2118 driver messages as no reply
2120 * bus/policy.c (bus_client_policy_check_can_receive): handle a
2121 requested_reply attribute on allow/deny rules
2123 * bus/system.conf: add <allow requested_reply="true"/>
2125 * bus/driver.c (bus_driver_handle_message): fix check for replies
2126 sent to the bus driver, which was backward. How did this ever work
2127 at all though? I think I'm missing something.
2129 * dbus/dbus-message.c (decode_header_data): require error and
2130 method return messages to have a reply serial field to be valid
2131 (_dbus_message_loader_queue_messages): break up this function;
2132 validate that reply serial and plain serial are nonzero;
2133 clean up the OOM/error handling.
2134 (get_uint_field): don't return -1 from this
2135 (dbus_message_create_header): fix signed/unsigned bug
2137 * bus/connection.c (bus_connections_expect_reply): save serial of
2138 the incoming message, not reply serial
2140 2003-10-14 Havoc Pennington <hp@redhat.com>
2142 * bus/connection.c: implement pending reply tracking using
2145 * bus/bus.c (bus_context_check_security_policy): verify that a
2146 reply is pending in order to allow a reply to be sent. Deny
2147 messages of unknown type.
2149 * bus/dbus-daemon-1.1.in: update to mention new resource limits
2151 * bus/bus.c (bus_context_get_max_replies_per_connection): new
2152 (bus_context_get_reply_timeout): new
2154 2003-10-13 Seth Nickell <seth@gnome.org>
2156 * python/Makefile.am:
2158 Pass "make distcheck": remove a couple files from DIST_FILES
2159 that weren't included in the final version.
2161 2003-10-12 Havoc Pennington <hp@pobox.com>
2163 Added test code that 1) starts an actual bus daemon and 2) uses
2164 DBusGProxy; fixed bugs that were revealed by the test. Lots
2165 more testing possible, but this is the basic framework.
2167 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2168 empty proxy lists from the proxy list hash
2170 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2171 couple of return_if_fail checks
2173 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2174 to allocate, so everything is cleared to NULL as it should be.
2176 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2177 source as data to dbus_connection_set_timeout_functions() as the
2178 timeout functions expected
2180 * test/glib/run-test.sh: add a little script to start up a message
2181 bus and run tests using it
2183 * tools/dbus-launch.1: updates
2185 * tools/dbus-launch.c (main): add --config-file option
2187 * tools/dbus-launch.c (main): remove confusing else if (runprog)
2188 that could never be reached.
2190 * dbus/dbus-message.c (dbus_message_new_method_return)
2191 (dbus_message_new_error, dbus_message_new_signal): set the
2192 no-reply-expected flag on all these. Redundant, but may
2193 as well be consistent.
2195 2003-10-11 Havoc Pennington <hp@pobox.com>
2197 * test/decode-gcov.c (function_solve_graph): make broken block
2198 graph a nonfatal error since it seems to be broken. Need to debug
2201 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2202 can't just check type > INVALID < LAST anymore
2204 * dbus/dbus-message.c (dbus_message_get_signature): new function
2205 (dbus_message_has_signature): new function
2206 (struct DBusMessage): add signature field (right now it isn't sent
2207 over the wire, just generated on the fly)
2208 (dbus_message_copy): copy the signature, and init strings to
2209 proper length to avoid some reallocs
2210 (dbus_message_iter_init_array_iterator): return void, since it
2212 (dbus_message_iter_init_dict_iterator): return void since it can't fail
2213 (_dbus_message_loader_queue_messages): add silly temporary hack to
2214 fill in message->signature on load
2216 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2217 characters, so they are relatively human-readable.
2219 2003-10-11 Havoc Pennington <hp@pobox.com>
2221 * dbus/dbus-message.c (_dbus_message_test): add more test
2222 coverage, but #if 0 for now since they uncover a bug
2223 not fixed yet; I think in re_align_field_recurse()
2224 (re_align_field_recurse): add FIXME about broken assertion
2226 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2228 * bus/connection.c: share a couple code bits with expirelist.c
2230 * bus/expirelist.h, bus/expirelist.c: implement a generic
2231 expire-items-after-N-seconds facility, was going to share between
2232 expiring connections and replies, decided not to use for expiring
2233 connections for now.
2235 * COPYING: include AFL 2.0 (still need to change all the file headers)
2237 2003-10-09 Havoc Pennington <hp@redhat.com>
2239 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2240 gcc 3.3. Not that we do anything about it yet.
2242 * bus/signals.c (bus_match_rule_parse): impose max length on the
2245 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2247 2003-10-09 Havoc Pennington <hp@redhat.com>
2249 Make matching rules theoretically work (add parser).
2251 * bus/bus.c (bus_context_check_security_policy): fix up to handle
2252 the case where destination is explicitly specified as bus driver
2253 and someone else is eavesdropping.
2255 * bus/policy.c (bus_client_policy_check_can_receive): fix up
2256 definition of eavesdropping and assertion
2258 * tools/dbus-send.c (main): use dbus_message_type_from_string
2260 * bus/signals.c (bus_match_rule_parse): implement
2262 * dbus/dbus-message.c (dbus_message_type_from_string): new
2264 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2266 2003-10-02 Havoc Pennington <hp@pobox.com>
2268 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2269 dbus_gproxy_oneway_call
2271 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
2272 (dbus_server_setup_with_g_main): fix to allow calling them more
2273 than once on the same args
2274 (dbus_bus_get_with_g_main): new function
2276 2003-10-02 Havoc Pennington <hp@redhat.com>
2278 * doc/dbus-tutorial.xml: write some stuff
2280 2003-09-29 Havoc Pennington <hp@pobox.com>
2282 * configure.in: split checks for Doxygen from XML docs, check for
2285 * doc/Makefile.am: XML-ify all the docs, and add a blank
2288 2003-09-29 Havoc Pennington <hp@pobox.com>
2290 * Merge dbus-object-names branch. To see the entire patch
2291 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2292 it's huuuuge though.
2293 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2295 2003-09-28 Havoc Pennington <hp@pobox.com>
2297 * HACKING: update to reflect new server
2299 2003-09-26 Seth Nickell <seth@gnome.org>
2302 * python/examples/example-signals.py:
2304 Start implementing some notions of signals. The API
2305 is really terrible, but they sort of work (with the
2306 exception of being able to filter by service, and to
2307 transmit signals *as* a particular service). Need to
2308 figure out how to make messages come from the service
2311 * python/dbus_bindings.pyx.in:
2313 Removed duplicate message_handler callbacks.
2315 2003-09-25 Havoc Pennington <hp@redhat.com>
2317 * bus/session.conf.in: fix my mess
2319 2003-09-25 Havoc Pennington <hp@pobox.com>
2321 * bus/session.conf.in: fix security policy, reported by Seth Nickell
2323 2003-09-25 Seth Nickell <seth@gnome.org>
2325 * python/examples/example-service.py:
2327 Johan notices complete wrong code in example-service, but
2328 completely wrong in a way that works exactly the same (!).
2329 Johan is confused, how could this possibly work? Example
2330 code fails to serve purpose of making things clear.
2333 2003-09-25 Mark McLoughlin <mark@skynet.ie>
2335 * doc/dbus-specification.sgml: don't require header fields
2336 to be 4-byte aligned and specify that fields should be
2337 distinguished from padding by the fact that zero is not
2340 * doc/TODO: remove re-alignment item and add item to doc
2341 the OBJECT_PATH type.
2343 * dbus/dbus-message.c:
2344 (HeaderField): rename the original member to value_offset
2345 and introduce a name_offset member to keep track of where
2346 the field actually begins.
2347 (adjust_field_offsets): remove.
2348 (append_int_field), (append_uint_field),
2349 (append_string_field): don't align the start of the header
2350 field to a 4-byte boundary.
2351 (get_next_field): impl finding the next marhsalled field
2352 after a given field.
2353 (re_align_field_recurse): impl re-aligning a number of
2354 already marshalled fields.
2355 (delete_field): impl deleting a field of any type and
2356 re-aligning any following fields.
2357 (delete_int_or_uint_field), (delete_string_field): remove.
2358 (set_int_field), (set_uint_field): no need to re-check
2359 that we have the correct type for the field.
2360 (set_string_field): ditto and impl re-aligning any
2362 (decode_header_data): update to take into account that
2363 the fields aren't 4-byte aligned any more and the new
2364 way to distinguish padding from header fields. Also,
2365 don't exit when there is too much header padding.
2366 (process_test_subdir): print the directory.
2367 (_dbus_message_test): add test to make sure a following
2368 field is re-aligned correctly after field deletion.
2370 * dbus/dbus-string.[ch]:
2371 (_dbus_string_insert_bytes): rename from insert_byte and
2372 allow the insert of multiple bytes.
2373 (_dbus_string_test): test inserting multiple bytes.
2375 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2376 warning note to docs about having to re-align any
2377 marshalled values following the string.
2379 * dbus/dbus-message-builder.c:
2380 (append_string_field), (_dbus_message_data_load):
2381 don't align the header field.
2383 * dbus/dbus-auth.c: (process_test_subdir): print the
2386 * test/break-loader.c: (randomly_add_one_byte): upd. for
2389 * test/data/invalid-messages/bad-header-field-alignment.message:
2392 * test/data/valid-messages/unknown-header-field.message: shove
2393 a dict in the unknown field.
2395 2003-09-25 Seth Nickell <seth@gnome.org>
2398 * python/dbus_bindings.pyx.in:
2400 Handle return values.
2402 * python/examples/example-client.py:
2403 * python/examples/example-service.py:
2405 Pass back return values from the service to the client.
2407 2003-09-24 Seth Nickell <seth@gnome.org>
2411 Connect Object methods (when you are sharing an object) up... pass
2412 in a list of methods to be shared. Sharing all the methods just
2413 worked out too weird. You can now create nice Services over the
2416 * python/dbus_bindings.pyx.in:
2418 Keep references to user_data tuples passed into C functions so
2419 Python doesn't garbage collect on us.
2421 Implement MethodReturn and Error subclasses of Message for creating
2422 DBusMessage's of those types.
2424 * python/examples/example-client.py:
2425 * python/examples/example-service.py:
2427 Simple example code showing both how create DBus services and objects,
2428 and how to use them.
2430 2003-09-23 Havoc Pennington <hp@pobox.com>
2432 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2434 2003-09-23 Havoc Pennington <hp@redhat.com>
2436 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2437 (dbus_gproxy_disconnect_signal): implement
2438 (dbus_gproxy_manager_remove_signal_match): implement
2439 (dbus_gproxy_manager_add_signal_match): implement
2440 (dbus_gproxy_oneway_call): implement
2442 2003-09-23 Havoc Pennington <hp@pobox.com>
2444 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2445 subclass. This means dropping the transparent thread safety of the
2446 proxy; you now need a separate proxy per-thread, or your own
2447 locking on the proxy. Probably right anyway.
2448 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2450 2003-09-22 Havoc Pennington <hp@redhat.com>
2452 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2454 2003-09-21 Seth Nickell <seth@gnome.org>
2456 First checkin of the Python bindings.
2458 * python/.cvsignore:
2459 * python/Makefile.am:
2460 * python/dbus_bindings.pyx.in:
2461 * python/dbus_h_wrapper.h:
2463 Pieces for Pyrex to operate on, building a dbus_bindings.so
2464 python module for low-level access to the DBus APIs.
2468 High-level Python module for accessing DBus objects.
2473 Build stuff for the python bindings.
2477 Extra macro needed for finding the Python C header files.
2479 2003-09-21 Havoc Pennington <hp@pobox.com>
2481 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2482 implementing the proxy manager, didn't get very far.
2484 * dbus/dbus-bus.c (dbus_bus_add_match): new
2485 (dbus_bus_remove_match): new
2487 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2488 path_name argument; adjust the other not-yet-implemented
2489 gproxy constructors to be what I think they should be.
2491 2003-09-21 Havoc Pennington <hp@pobox.com>
2493 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2494 by default for message bus connections.
2496 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2497 exit_on_disconnect flag is set and we process the disconnected
2499 (dbus_connection_set_exit_on_disconnect): new function
2501 2003-09-21 Havoc Pennington <hp@pobox.com>
2503 Get matching rules mostly working in the bus; only actually
2504 parsing the rule text remains. However, the client side of
2505 "signal connections" hasn't been started, this patch is only the
2508 * dbus/dispatch.c: fix for the matching rules changes
2510 * bus/driver.c (bus_driver_handle_remove_match)
2511 (bus_driver_handle_add_match): send an ack reply from these
2514 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2515 arguments, reported by Seth Nickell
2517 * bus/config-parser.c (append_rule_from_element): support
2518 eavesdrop=true|false attribute on policies so match rules
2519 can be prevented from snooping on the system bus.
2521 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2522 and "destination" in attribute names; fix some docs bugs;
2523 add eavesdrop=true|false attribute
2525 * bus/driver.c (bus_driver_handle_add_match)
2526 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2529 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2530 rid of broadcast service concept, signals are just always broadcast
2532 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2533 mostly implement matching rules stuff (currently only exposed as signal
2536 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2538 * doc/dbus-specification.sgml: Change the header field name
2539 to be an enum and update the rest of the spec to reference
2540 the fields using the conventinal name.
2542 * dbus/dbus-protocol.h: update to reflect the spec.
2544 * doc/TODO: add item to remove the 4 byte alignment requirement.
2546 * dbus/dbus-message.c: Remove the code to generalise the
2547 header/body length and serial number header fields as named
2548 header fields so we can reference field names using the
2550 (append_int_field), (append_uint_field), (append_string_field):
2551 Append the field name as a byte rather than four chars.
2552 (delete_int_or_uint_field), (delete_string_field): reflect the
2553 fact that the field name and typecode now occupy 4 bytes instead
2555 (decode_string_field), (decode_header_data): update to reflect
2556 protocol changes and move the field specific encoding from
2557 decode_string_field() back into decode_header_data().
2559 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2560 Add utility to aid debugging.
2562 * dbus/dbus-message-builder.c:
2563 (append_string_field), (_dbus_message_data_load): Update to
2564 reflect protocol changes; Change the FIELD_NAME directive
2565 to HEADER_FIELD and allow it to take the field's conventional
2566 name rather than the actual value.
2568 * test/data/*/*.message: Update to use HEADER_FIELD instead
2569 of FIELD_NAME; Always align the header on an 8 byte boundary
2570 *before* updating the header length.
2572 2003-09-15 Havoc Pennington <hp@pobox.com>
2574 * dbus/dbus-pending-call.c: add the get/set object data
2575 boilerplate as for DBusConnection, etc. Use generic object data
2576 for the notify callback.
2578 * glib/dbus-gparser.c (parse_node): parse child nodes
2580 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2582 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2583 contain functions shared between the convenience lib and the
2586 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2587 -export-symbols-regex to the GLib library
2589 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2590 fix the locking in here, and add a default handler for
2591 Introspect() that just returns sub-nodes.
2593 2003-09-14 Havoc Pennington <hp@pobox.com>
2595 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2596 rather than gfoo consistent
2598 * glib/dbus-gproxy.h: delete for now, move contents to
2599 dbus-glib.h, because the include files don't work right since we
2600 aren't in the dbus/ subdir.
2602 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2603 (dbus_gproxy_end_call): finish
2604 (dbus_gproxy_begin_call): finish
2606 * glib/dbus-gmain.c (dbus_set_g_error): new
2608 * glib/dbus-gobject.c (handle_introspect): include information
2609 about child nodes in the introspection
2611 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2612 function to help in implementation of introspection
2614 * dbus/dbus-object-tree.c
2615 (_dbus_object_tree_list_registered_and_unlock): new function
2617 2003-09-12 Havoc Pennington <hp@pobox.com>
2619 * glib/dbus-gidl.h: add common base class for all the foo_info
2622 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2625 * test/Makefile.am: try test srcdir -ef . in addition to test
2626 srcdir = ., one of them should work (yeah lame)
2628 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2631 * glib/dbus-gparser.h: make description_load routines return
2632 NodeInfo* not Parser*
2634 * Makefile.am (SUBDIRS): build test dir after all library dirs
2636 * configure.in: add GTK+ detection
2638 2003-09-07 Havoc Pennington <hp@pobox.com>
2640 * Make Doxygen contented.
2642 2003-09-07 Havoc Pennington <hp@pobox.com>
2644 * doc/dbus-specification.sgml: more updates
2646 2003-09-06 Havoc Pennington <hp@pobox.com>
2648 * doc/dbus-specification.sgml: partial updates
2650 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2651 zillionth time; hopefully I edited the right file this time.
2653 * bus/config-parser.c (append_rule_from_element): support
2654 send_type, send_path, receive_type, receive_path
2656 * bus/policy.c: add message type and path to the list of things
2657 that can be "firewalled"
2659 2003-09-06 Havoc Pennington <hp@pobox.com>
2661 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2662 (dbus_connection_register_object_path): make this not handle
2663 messages to paths below the given path
2665 2003-09-03 Havoc Pennington <hp@pobox.com>
2667 * test/glib/Makefile.am: add this with random glib-linked test
2670 * glib/Makefile.am: remove the random test programs from here,
2671 leave only the unit tests
2673 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
2674 uscore/javacaps conversion, and fix
2675 (get_object_property, set_object_property): change to .NET
2676 convention for mapping props to methods, set_FooBar/get_FooBar,
2677 since one language has such a convention we may as well copy it.
2678 Plus real methods in either getFooBar or get_foo_bar style won't
2679 collide with this convention.
2681 2003-09-01 Havoc Pennington <hp@pobox.com>
2683 * glib/dbus-gparser.c: implement
2685 * glib/dbus-gobject.c: start implementing skeletons support
2687 * configure.in: when disabling checks/assert, also define
2688 G_DISABLE_ASSERT and G_DISABLE_CHECKS
2690 2003-09-01 Havoc Pennington <hp@pobox.com>
2692 * glib/Makefile.am: rearrange a bunch of files and get "make
2693 check" framework set up
2695 2003-08-31 Havoc Pennington <hp@pobox.com>
2697 * fix build with --disable-tests
2699 2003-08-30 Havoc Pennington <hp@pobox.com>
2701 * dbus/dbus-connection.c: purge DBusMessageHandler
2703 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
2704 use callbacks everywhere
2706 2003-08-30 Havoc Pennington <hp@pobox.com>
2708 * test/data/valid-config-files/system.d/test.conf: change to
2709 root for the user so warnings don't get printed
2711 * dbus/dbus-message.c: add dbus_message_get_path,
2712 dbus_message_set_path
2714 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2715 dispatching to a path
2717 * dbus/dbus-string.c (_dbus_string_validate_path): add
2719 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2720 (_dbus_marshal_object_path): implement
2722 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
2723 to contain the path to the target object
2724 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2725 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2727 2003-08-30 Havoc Pennington <hp@pobox.com>
2729 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2731 2003-08-29 Havoc Pennington <hp@pobox.com>
2733 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
2735 (struct DBusObjectSubtree): shrink this
2736 a lot, since we may have a lot of them
2737 (_dbus_object_tree_free_all_unlocked): implement
2738 (_dbus_object_tree_dispatch_and_unlock): implement
2740 2003-08-29 Havoc Pennington <hp@pobox.com>
2742 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
2744 2003-08-28 Havoc Pennington <hp@pobox.com>
2748 * dbus/dbus-connection.c: port to no ObjectID, create a
2749 DBusObjectTree, rename ObjectTree to ObjectPath in public API
2751 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
2752 everything except UnregisterFunction and MessageFunction
2754 * dbus/dbus-marshal.c: port away from DBusObjectID,
2755 add DBUS_TYPE_OBJECT_PATH
2757 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
2758 dbus/dbus-objectid.[hc]: remove these, we are moving to
2759 path-based object IDs
2761 2003-08-25 Havoc Pennington <hp@pobox.com>
2763 Just noticed that dbus_message_test is hosed, I wonder when I
2764 broke that. I thought make check was passing earlier...
2766 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
2767 container tree, will replace most of dbus-object-registry
2769 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
2772 2003-08-19 Havoc Pennington <hp@pobox.com>
2774 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
2775 (dbus_message_is_error): fix this function
2777 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
2780 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
2781 reflect clarified man page
2782 (bus_client_policy_check_can_send): ditto
2784 * bus/session.conf.in: fixup
2786 * bus/system.conf.in: fixup
2788 2003-08-18 Havoc Pennington <hp@redhat.com>
2790 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
2792 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
2793 dumb bug created earlier (wrong order of args to
2794 decode_header_data())
2796 * tools/dbus-send.c: port
2798 * tools/dbus-print-message.c (print_message): port
2800 * test/data/*messages: port all messages over
2802 * dbus/dbus-message-builder.c: support including
2805 * bus/driver.c: port over
2807 * bus/dispatch.c: port over to new stuff
2809 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2810 rename disconnect signal to "Disconnected"
2812 2003-08-17 Havoc Pennington <hp@pobox.com>
2814 This doesn't compile yet, but syncing up so I can hack on it from
2815 work. What are branches for if not broken code? ;-)
2817 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
2818 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
2819 DBUS_HEADER_FIELD_ERROR_NAME
2821 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
2822 for the interface+member pairs
2823 (string_hash): change to use g_str_hash algorithm
2824 (find_direct_function, find_string_function): refactor these to
2827 * dbus/dbus-message.c: port all of this over to support
2828 interface/member fields instead of name field
2830 * dbus/dbus-object-registry.c: port over
2832 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
2833 from _dbus_string_validate_name
2835 * bus/dbus-daemon-1.1: change file format for the
2836 <deny>/<allow> stuff to match new message naming scheme
2838 * bus/policy.c: port over
2840 * bus/config-parser.c: parse new format
2842 2003-08-16 Havoc Pennington <hp@pobox.com>
2844 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
2847 * glib/dbus-gproxy.c: some hacking
2849 2003-08-15 Havoc Pennington <hp@redhat.com>
2851 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
2853 * dbus/dbus-connection.c
2854 (dbus_connection_send_with_reply_and_block): factor out internals;
2855 change to convert any error replies to DBusError instead of
2856 returning them as a message
2858 2003-08-15 Havoc Pennington <hp@pobox.com>
2860 * dbus/dbus-connection.c,
2861 dbus/dbus-pending-call.c: Finish the pending call stuff
2863 2003-08-14 Havoc Pennington <hp@redhat.com>
2865 * dbus/dbus-pending-call.c: start on new object that will replace
2866 DBusMessageHandler and ReplyHandlerData for tracking outstanding
2869 * dbus/dbus-gproxy.c: start on proxy object used to communicate
2870 with remote interfaces
2872 * dbus/dbus-gidl.c: do the boring boilerplate in here
2874 2003-08-12 Havoc Pennington <hp@pobox.com>
2876 * bus/dispatch.c (bus_dispatch): make this return proper
2877 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
2879 * dbus/dbus-errors.c (dbus_set_error): use
2880 _dbus_string_append_printf_valist
2882 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
2883 (_dbus_string_append_printf): new
2885 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
2888 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
2889 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
2890 message is unhandled.
2892 2003-08-11 Havoc Pennington <hp@pobox.com>
2894 * bus/test.c (client_disconnect_handler): change to return
2895 HANDLED (would have been REMOVE_MESSAGE)
2897 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
2898 HANDLED/NOT_YET_HANDLED instead of
2899 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
2902 2003-08-10 Havoc Pennington <hp@pobox.com>
2904 * tools/dbus-send.c (main): add --type argument, for now
2905 supporting only method_call and signal types.
2907 * tools/dbus-print-message.c: print message type
2909 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2910 init connection->objects
2912 * doc/dbus-specification.sgml: fix sgml
2914 * bus/*.c: port over to object-instance API changes
2916 * test/test-service.c: ditto
2918 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
2919 name, we will have to fix up the rest of the code to also handle
2921 (dbus_message_new): generic message-creation call
2922 (set_string_field): allow appending name field
2924 2003-08-06 Havoc Pennington <hp@pobox.com>
2926 * dbus/dbus-object-registry.c: implement signal connection
2929 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
2931 * dbus/dbus-internals.c (_dbus_memdup): new function
2933 2003-08-02 Havoc Pennington <hp@pobox.com>
2935 * dbus/dbus-message.c (dbus_message_get_no_reply)
2936 (dbus_message_set_no_reply): add these and remove
2937 set_is_error/get_is_error
2939 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
2940 remove the ERROR flag, since there's now an ERROR type
2942 2003-08-01 Havoc Pennington <hp@pobox.com>
2944 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
2947 * dbus/dbus-message.c (dbus_message_get_type): new function
2949 * doc/dbus-specification.sgml: add "type" byte to messages
2951 2003-08-01 Havoc Pennington <hp@pobox.com>
2953 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
2954 a message type enum to distinguish kinds of message
2955 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
2956 that need not be replied to
2958 2003-08-01 Havoc Pennington <hp@pobox.com>
2960 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
2961 (unpack_8_octets): fix no-64-bit-int bug
2963 * dbus/dbus-object-registry.c (validate_id): validate the
2964 connection ID bits, not just the instance ID.
2966 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
2967 the connection-global 33 bits of the object ID
2969 * dbus/dbus-object-registry.c (info_from_entry): fill in
2970 object ID in the new way
2972 * dbus/dbus-objectid.h: rather than high/low bits, specifically
2973 define server/client/instance bits.
2975 2003-07-30 Havoc Pennington <hp@pobox.com>
2977 * dbus/dbus-connection.c (dbus_connection_register_object): fix
2980 2003-07-13 Havoc Pennington <hp@pobox.com>
2982 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2983 fields to DBusObjectVTable and DBusObjectInfo
2985 2003-07-12 Havoc Pennington <hp@pobox.com>
2987 * dbus/dbus-object-registry.c: implement unit test,
2988 fix bugs discovered in process
2990 * dbus/dbus-connection.c: remove handler_table and
2991 register_handler(), add DBusObjectRegistry usage
2993 * dbus/dbus-objectid.c (dbus_object_id_is_null)
2994 (dbus_object_id_set_null): new functions
2996 2003-07-08 Havoc Pennington <hp@pobox.com>
2998 * dbus/dbus-object.c: implement some of this
3000 * dbus/dbus-object-registry.c
3001 (_dbus_object_registry_add_and_unlock): fill in the object_id out
3003 (_dbus_object_registry_new): handle OOM
3005 2003-07-08 Havoc Pennington <hp@pobox.com>
3007 * dbus/dbus-object.h: sketch out an API for registering objects
3008 with a connection, that allows us to use as little as 24 bytes
3009 per object and lets application code represent an object in
3010 any conceivable way.
3012 * dbus/dbus-object-registry.c: implement the hard bits of the
3013 DBusConnection aspect of object API. Not yet wired up.
3015 2003-07-06 Havoc Pennington <hp@pobox.com>
3017 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3018 (_dbus_marshal_object_id): new
3019 (_dbus_demarshal_object_id): new
3020 (_dbus_marshal_get_arg_end_pos): support object ID type, and
3021 consolidate identical switch cases. Don't conditionalize handling
3022 of DBUS_TYPE_UINT64, need to handle the type always.
3023 (_dbus_marshal_validate_arg): consolidate identical cases, and
3024 handle DBUS_TYPE_OBJECT_ID
3026 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3028 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3030 2003-09-28 Havoc Pennington <hp@pobox.com>
3034 2003-09-28 Havoc Pennington <hp@pobox.com>
3036 * doc/Makefile.am (dbus-specification.html): testing a funky hack
3037 to work with Debian db2html
3039 2003-09-28 Havoc Pennington <hp@pobox.com>
3041 * configure.in: 0.13
3043 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3044 stylesheet-images for benefit of Debian
3046 Change back to using filesystem-linked sockets for the system
3047 bus, so only root can create the default system bus address.
3049 * bus/system.conf.in: change to use
3050 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3052 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3055 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3056 here, and AC_DEFINE DBUS_SYSTEM_PATH
3058 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3061 * doc/busconfig.dtd:
3064 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3066 * doc/dbus-specification.sgml:
3067 Add activation reply values.
3069 2003-08-05 Havoc Pennington <hp@redhat.com>
3071 * configure.in: 0.12
3073 2003-08-05 Anders Carlsson <andersca@codefactory.se>
3075 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3076 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3077 (add_watch), (remove_watch), (create_source):
3078 Refcount fds, fixes some reentrancy issues.
3080 2003-07-30 Havoc Pennington <hp@redhat.com>
3082 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3083 bus address to be abstract if we have abstract sockets
3087 2003-07-28 Havoc Pennington <hp@redhat.com>
3089 * bus/messagebus.in: fix to avoid processname/servicename
3090 confusion, from Michael Kearey
3091 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3093 2003-07-23 Havoc Pennington <hp@pobox.com>
3095 * dbus/dbus-message.c (dbus_message_iter_get_named):
3096 fix from Andy Hanton to remove broken "+1"
3098 2003-07-16 Havoc Pennington <hp@pobox.com>
3100 * tools/dbus-launch.c (babysit): close stdout/stderr in the
3101 babysitter process, as suggested by Thomas Leonard, so
3102 an "eval `dbus-launch --exit-with-session`" will actually
3105 2003-07-16 Havoc Pennington <hp@pobox.com>
3107 * configure.in: print out EXPANDED_* variables in the summary at
3108 the end; clean up the code that computes EXPANDED_ variables and
3109 get the ones using exec_prefix right. Should make things work
3110 when you build without --prefix
3112 2003-06-29 Havoc Pennington <hp@pobox.com>
3114 * mono/Test.cs (class Test): fire up a main loop and run it
3116 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3117 done once, the app has to do it
3119 2003-06-26 Havoc Pennington <hp@pobox.com>
3121 * mono/Connection.cs: set up connection with the glib main loop
3123 2003-07-01 Havoc Pennington <hp@redhat.com>
3125 * doc/dbus-specification.sgml: clarify the format of a type code,
3126 change suggested by Jim Blandy
3128 2003-06-29 Miloslav Trmac <mitr@volny.cz>
3131 * tools/Makefile.am: Don't assume srcdir == builddir.
3133 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3134 the allocated block.
3135 (_dbus_memory_test): New function.
3136 * dbus/dbus-test.h: Add _dbus_memory_test ().
3137 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3139 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3141 (dbus_message_new): Remove obsolete @todo.
3143 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3144 (_dbus_marshal_set_uint64): Fix comment.
3146 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3147 hardcode FIELD_REPLY_SERIAL.
3149 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3150 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3152 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3153 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3155 2003-06-24 Havoc Pennington <hp@pobox.com>
3157 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3159 2003-06-23 Anders Carlsson <andersca@codefactory.se>
3165 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3166 * gcj/org/.cvsignore:
3167 * gcj/org/Makefile.am:
3168 * gcj/org/freedesktop/.cvsignore:
3169 * gcj/org/freedesktop/Makefile.am:
3170 * gcj/org/freedesktop/dbus/.cvsignore:
3171 * gcj/org/freedesktop/dbus/Makefile.am:
3172 * gcj/org/freedesktop/dbus/Message.java: (Message),
3174 * gcj/org/freedesktop/dbus/natMessage.cc:
3175 Fix the build system.
3177 2003-06-22 Havoc Pennington <hp@pobox.com>
3179 * mono/Connection.cs: add more bindings
3181 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3184 2003-06-22 Havoc Pennington <hp@pobox.com>
3186 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3187 Start wrapping more stuff.
3189 2003-06-22 Havoc Pennington <hp@pobox.com>
3191 * mono/Message.cs: implement Message.Wrap() that ensures we only
3192 have a single C# wrapper per DBusMessage, assuming it works which
3193 it probably doesn't.
3195 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3196 (dbus_message_free_data_slot): new
3197 (dbus_message_set_data): new
3198 (dbus_message_get_data): new
3200 2003-06-22 Havoc Pennington <hp@pobox.com>
3202 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3203 (_dbus_data_slot_allocator_alloc): rework these to keep a
3204 reference count on each slot and automatically manage a global
3205 slot ID variable passed in by address
3207 * bus/bus.c: convert to new dataslot API
3209 * dbus/dbus-bus.c: convert to new dataslot API
3211 * dbus/dbus-connection.c: convert to new dataslot API
3213 * dbus/dbus-server.c: convert to new dataslot API
3215 * glib/dbus-gmain.c: ditto
3219 * bus/connection.c: ditto
3221 2003-06-22 Anders Carlsson <andersca@codefactory.se>
3223 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3224 after the gcj checks so that the correct configuration tags
3225 will be added to libtool.
3227 * dbus-glib-1.pc.in: No need to specify any includes since
3228 dbus-1.pc.in has those.
3230 2003-06-22 Havoc Pennington <hp@pobox.com>
3232 * mono/*, gcj/*, configure.in, Makefile.am:
3233 Check in makefiles and subdirs for mono and gcj bindings.
3234 Neither binding actually exists, just trying to get through
3235 all the build and other boring bits.
3237 2003-06-21 Philip Blundell <philb@gnu.org>
3239 * tools/dbus-monitor.1: Updated.
3241 * tools/dbus-send.1: Likewise.
3243 2003-06-20 Anders Carlsson <andersca@codefactory.se>
3245 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3246 for hangup and error after checking read so we won't discard
3247 pending data if both hangup and read are set.
3249 2003-06-19 Philip Blundell <philb@gnu.org>
3251 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3253 * tools/dbus-send.c: Accept both --system and --session.
3255 * tools/dbus-monitor.c: Same here.
3257 2003-06-19 Anders Carlsson <andersca@codefactory.se>
3259 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3260 from C++ (Patch by Miloslav Trmac).
3262 2003-06-15 Joe Shaw <joe@assbarn.com>
3264 * configure.in: Check for socklen_t.
3266 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3268 * test/test-segfault.c: Add #include <sys/time.h>
3270 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3271 dbus-launch needs it.
3273 2003-06-09 Havoc Pennington <hp@redhat.com>
3275 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3276 SUN_LEN, it breaks abstract socket usage
3278 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3281 2003-06-04 Havoc Pennington <hp@pobox.com>
3283 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3284 using unix:abstract=/foo, and when listening in a tmpdir
3285 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3287 * dbus/dbus-transport.c (_dbus_transport_open): support
3290 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3291 support abstract sockets
3293 * dbus/dbus-transport-unix.c
3294 (_dbus_transport_new_for_domain_socket): support abstract sockets
3296 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3297 toggle as an argument, implement abstract namespace support
3298 (_dbus_listen_unix_socket): ditto
3300 * configure.in: add --enable-abstract-sockets and implement
3301 a configure check for autodetection of the right value.
3303 2003-06-01 Havoc Pennington <hp@pobox.com>
3305 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3306 in /tmp (though on Linux this will end up being useless,
3307 when we add abstract namespace support)
3309 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3312 2003-05-28 Colin Walters <walters@verbum.org>
3314 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3316 2003-05-18 Anders Carlsson <andersca@codefactory.se>
3318 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3320 2003-05-17 Colin Walters <walters@gnu.org>
3322 * tools/dbus-send.c: Don't exit with an error code if --help was
3323 passed. Default to using the session bus instead of the system
3326 * tools/dbus-launch.c: Ditto.
3328 * tools/dbus-monitor.c: Ditto.
3330 * tools/dbus-send.1: Update with new arguments.
3332 * tools/dbus-launch.c: Emit code to export variables. New
3333 arguments -s and -c to specify shell syntax, and a bit of code to
3334 autodetect syntax. Also, allow specifying a program to run.
3336 * tools/dbus-launch.1: Update with new arguments.
3338 * tools/dbus-send.1: Ditto.
3340 * tools/dbus-monitor.1: Ditto.
3342 2003-05-17 Havoc Pennington <hp@pobox.com>
3344 * bus/config-parser.c (merge_included): merge in policies from
3345 child configuration file.
3347 * bus/policy.c (bus_policy_merge): function to merge two policies
3350 2003-05-16 Havoc Pennington <hp@redhat.com>
3352 * dbus/dbus-connection.c: disable verbose lock spew
3354 * tools/dbus-send.c: add --print-reply command line option
3356 * tools/dbus-print-message.h (print_message): new util function
3357 shared by dbus-send and dbus-monitor
3359 * tools/dbus-monitor.c (handler_func): exit on disconnect
3361 * dbus/dbus-transport-unix.c (do_reading): if the transport is
3362 disconnected, don't try to use the read_watch
3364 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3365 so we can find this bug more easily
3367 2003-05-16 Havoc Pennington <hp@redhat.com>
3369 * bus/policy.c (free_rule_list_func): avoid a crash when passed
3370 NULL as DBusHashTable is annoyingly likely to do.
3372 2003-05-16 Colin Walters <walters@verbum.org>
3374 * tools/dbus-monitor.c: Add --session argument and usage()
3377 * tools/dbus-monitor.1: Update with new --session arg.
3379 * bus/Makefile.am (install-data-hook): Create
3380 $(libdir)/dbus-1.0/services so that the session bus is happy.
3382 2003-05-15 Havoc Pennington <hp@redhat.com>
3384 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3385 on non-x86. ifdef's are evil.
3387 2003-05-15 Havoc Pennington <hp@redhat.com>
3389 * configure.in: 0.11
3393 * bus/Makefile.am (initddir): apparently we are supposed to put
3394 init scripts in /etc/rc.d/init.d not /etc/init.d
3396 * bus/Makefile.am: remove the "you must --enable-tests to make
3397 check" as it broke distcheck
3399 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3401 2003-05-13 James Willcox <jwillcox@gnome.org>
3404 * bus/activation.c: (bus_activation_service_created),
3405 (bus_activation_activate_service):
3406 * bus/driver.c: (bus_driver_send_service_deleted),
3407 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3408 (bus_driver_send_service_acquired),
3409 (bus_driver_send_welcome_message),
3410 (bus_driver_handle_list_services):
3411 * bus/session.conf.in:
3412 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3413 (dbus_bus_service_exists), (dbus_bus_activate_service):
3416 Add some convenience API which lets you activate a service, and did a
3417 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3418 and dbus_message_get_args()
3420 2003-05-11 Havoc Pennington <hp@pobox.com>
3422 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3423 calling _dbus_marshal_validate_arg() for every byte in a byte
3426 * dbus/dbus-message-handler.c: use atomic reference counting to
3427 reduce number of locks slightly; the global lock in here sucks
3429 * dbus/dbus-connection.c
3430 (_dbus_connection_update_dispatch_status_and_unlock): variant of
3431 update_dispatch_status that can be called with lock held; then use
3432 in a couple places to reduce locking/unlocking
3433 (dbus_connection_send): hold the lock over the whole function
3434 instead of acquiring it twice.
3436 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3438 * bus/connection.c (bus_connections_setup_connection): fix access
3439 to already-freed memory.
3441 * dbus/dbus-connection.c: keep a little cache of linked list
3442 nodes, to avoid using the global linked list alloc lock in the
3443 normal send-message case. Instead we just use the connection lock
3444 that we already have to take.
3446 * dbus/dbus-list.c (_dbus_list_find_last): new function
3448 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3449 change to use a struct for the atomic type; fix docs,
3450 they return value before increment, not after increment.
3452 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3453 (_dbus_string_append_8_aligned): new functions to try to
3454 microoptimize this operation.
3455 (reallocate_for_length): break this out of set_length(), to
3456 improve profile info, and also so we can consider inlining the
3459 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3460 strings with some preallocation, cuts down on our calls to realloc
3461 a fair bit. Though if we can get the "move entire string to empty
3462 string" optimization below to kick in here, it would be better.
3464 * dbus/dbus-string.c (_dbus_string_move): just call
3465 _dbus_string_move_len
3466 (_dbus_string_move_len): add a special case for moving
3467 an entire string into an empty string; we can just
3468 swap the string data instead of doing any reallocs.
3469 (_dbus_string_init_preallocated): new function
3471 2003-05-11 Havoc Pennington <hp@pobox.com>
3473 Write a "test-profile" that does echo client-server with threads;
3474 profile reveals lock contention, memcpy/realloc of buffers, and
3475 UTF-8 validation as hot spots. 20% of lock contention eliminated
3476 with dbus_atomic_inc/dec implementation on x86. Much remaining
3477 contention is global mempool locks for GList and DBusList.
3479 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3482 * dbus/dbus-connection.c (struct DBusConnection): use
3483 dbus_atomic_t for the reference count
3485 * dbus/dbus-message.c (struct DBusMessage): declare
3486 dbus_atomic_t values as volatile
3488 * configure.in: code to detect ability to use atomic integer
3489 operations in assembly, from GLib patch
3491 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3492 time, tired of it being wrong in threads and forked processes
3494 * glib/test-profile.c: a little program to bounce messages back
3495 and forth between threads and eat CPU
3497 * dbus/dbus-connection.c: add debug spew macros for debugging
3498 thread locks; include config.h at top; fix deadlock in
3499 dbus_connection_flush()
3501 2003-05-08 Havoc Pennington <hp@pobox.com>
3503 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3504 data from getting written, and there wasn't a good reason to
3507 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3508 dbus_verbose lines in test coverage
3509 (main): add list of functions sorted by # of untested blocks
3510 to the coverage report
3512 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3514 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3516 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3517 extend test coverage
3519 * test/data/auth/cancel.auth-script: test canceling an
3522 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3523 aren't used. in CVS history if we end up needing them.
3525 2003-05-04 Havoc Pennington <hp@pobox.com>
3527 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3530 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3531 function, which assumed length was in # of strings, not bytes
3533 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3536 * dbus/dbus-connection.c
3537 (_dbus_connection_queue_received_message): disable function for
3538 now, we are only using it in test mode
3540 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3541 remove a mistaken FIXME
3543 2003-05-04 Havoc Pennington <hp@pobox.com>
3545 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3546 unlock mutex on successful return, patch from Anders Gustafsson
3548 2003-05-04 Havoc Pennington <hp@pobox.com>
3550 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3553 2003-05-04 Havoc Pennington <hp@pobox.com>
3555 * tools/dbus-launch.c: implement
3557 * bus/main.c (main), bus/bus.c (bus_context_new):
3558 implement --print-pid and --fork
3560 2003-05-03 Havoc Pennington <hp@redhat.com>
3562 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3563 the address had no value, and add to test suite. Fix and
3564 regression test from Miloslav Trmac
3566 2003-05-03 Havoc Pennington <hp@pobox.com>
3568 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3569 watch is invalid when handled
3571 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3572 dbus-launch utility to launch the bus from a shell script. Didn't
3573 actually implement dbus-launch yet, it's just a placeholder still.
3575 2003-05-03 Havoc Pennington <hp@pobox.com>
3577 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3578 daemon; also documents daemon config file, so replaces
3579 doc/config-file.txt. Corrected some stuff from config-file.txt in
3580 the process of moving it.
3582 2003-05-03 Havoc Pennington <hp@pobox.com>
3584 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3587 2003-05-03 Colin Walters <walters@verbum.org>
3589 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3590 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3592 * Makefile.am: Update to use new .pc versioning scheme.
3594 2003-05-02 Havoc Pennington <hp@redhat.com>
3596 * bus/system.conf.in: allow send/receive to/from message bus
3599 2003-04-30 Havoc Pennington <hp@redhat.com>
3601 * configure.in: print a note when building with unit tests and
3604 2003-04-30 Havoc Pennington <hp@redhat.com>
3606 * Makefile.am: add a check-local that complains if you didn't
3607 configure with --enable-tests
3609 2003-04-29 Havoc Pennington <hp@redhat.com>
3611 * glib/dbus-gmain.c: docs cleanups
3613 * dbus/dbus-types.h: add docs on int64 types
3615 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3616 public API docs section
3618 2003-04-29 Havoc Pennington <hp@redhat.com>
3620 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3621 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3622 parallel install API version, not with the D-BUS package version.
3624 * HACKING: move some of README over here
3626 * README: updates, and document API/ABI policy
3628 * configure.in: reindentation
3630 2003-04-29 Havoc Pennington <hp@redhat.com>
3632 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3633 to use this library" to be sure people have the right
3636 2003-04-28 Havoc Pennington <hp@redhat.com>
3638 * configure.in: add --enable-docs which by default is auto yes if
3639 doxygen and db2html found, no otherwise; but can be forced on/off
3641 * doc/Makefile.am: conditionalize whether to build docs on
3644 2003-04-28 Havoc Pennington <hp@redhat.com>
3646 * configure.in: 0.10
3650 * bus/system.conf.in: add <includedir>system.d</includedir>
3652 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3653 username was provided but not uid
3655 * bus/config-parser.c (struct BusConfigParser): keep track of
3656 whether the parser is toplevel or was included; change some
3657 of the error handling if it's included.
3659 2003-04-27 Havoc Pennington <hp@pobox.com>
3663 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3664 report correct status if we finish processing authentication
3665 inside this function.
3667 * bus/activation.c (try_send_activation_failure): use
3668 bus_transaction_send_error_reply
3670 * bus/connection.c (bus_connection_get_groups): return an error
3671 explaining the problem
3673 * bus/bus.c (bus_context_check_security_policy): implement
3674 restriction here that inactive connections can only send the
3675 hello message. Also, allow bus driver to send anything to
3678 * bus/connection.c (bus_connection_complete): create the
3679 BusClientPolicy here instead of on-demand.
3680 (bus_connection_get_policy): don't return an error
3682 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3683 sender field in message being replied to
3685 * bus/bus.c (bus_context_check_security_policy): fix silly typo
3686 causing it to return FALSE always
3688 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3689 we checked sender rather than destination
3691 2003-04-25 Havoc Pennington <hp@redhat.com>
3693 test suite is slightly hosed at the moment, will fix soon
3695 * bus/connection.c (bus_connections_expire_incomplete): fix to
3696 properly disable the timeout when required
3697 (bus_connection_set_name): check whether we can remove incomplete
3698 connections timeout after we complete each connection.
3700 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3701 probably still broken.
3703 * bus/services.c (bus_registry_acquire_service): implement max
3704 number of services owned, and honor allow/deny rules on which
3705 services a connection can own.
3707 * bus/connection.c (bus_connection_get_policy): report errors here
3709 * bus/activation.c: implement limit on number of pending
3712 2003-04-25 Havoc Pennington <hp@redhat.com>
3714 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3715 where we used >= 0 instead of != DBUS_UID_UNSET.
3717 2003-04-25 Havoc Pennington <hp@redhat.com>
3719 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3720 were toggled without add/remove, fix from Anders Gustafsson
3722 2003-04-24 Havoc Pennington <hp@redhat.com>
3724 * test/data/valid-config-files/basic.conf: add <limit> tags to
3727 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3728 <limit> tag in configuration file.
3730 2003-04-24 Havoc Pennington <hp@redhat.com>
3732 * bus/dispatch.c: somehow missed some name_is
3734 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
3735 (_dbus_timeout_set_interval): new
3737 * bus/connection.c (bus_connections_setup_connection): record time
3738 when each connection is first set up, and expire them after the
3739 auth timeout passes.
3741 2003-04-24 Havoc Pennington <hp@redhat.com>
3743 * dbus/dbus-message.c (dbus_message_name_is): rename
3744 (dbus_message_service_is): rename
3745 (dbus_message_sender_is): rename
3746 (dbus_message_get_service): rename
3748 2003-04-24 Havoc Pennington <hp@redhat.com>
3750 * configure.in: add --enable-checks
3752 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
3754 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
3755 to use thread locks.
3756 (_dbus_connection_handler_destroyed_locked): move some private
3757 functions into proper docs group
3759 * dbus/dbus-internals.h: add _dbus_return_if_fail,
3760 _dbus_return_val_if_fail
3762 Throughout: use dbus_return_if_fail
3764 2003-04-23 James Willcox <jwillcox@gnome.org>
3767 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
3768 (dbus_connection_setup_with_g_main),
3769 (dbus_server_setup_with_g_main):
3770 * glib/test-dbus-glib.c: (main):
3771 * glib/test-thread-client.c: (main):
3772 * glib/test-thread-server.c: (new_connection_callback), (main):
3773 * tools/dbus-monitor.c: (main):
3775 Added a GMainContext argument to dbus_connection_setup_with_g_main()
3776 and dbus_server_setup_with_g_main().
3778 2003-04-20 Havoc Pennington <hp@pobox.com>
3780 * doc/dbus-specification.sgml: document the restrictions on
3781 message and service names
3783 2003-04-22 Havoc Pennington <hp@redhat.com>
3785 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
3786 support, and do some code cleanups to share more code and
3787 speed up array marshal/demarshal.
3789 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
3791 * configure.in: generate dbus-arch-deps.h
3793 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
3796 2003-04-22 Havoc Pennington <hp@redhat.com>
3798 * test/data/valid-messages/opposite-endian.message: fix test
3799 to use proper type for rply field
3801 * test/data/invalid-messages: add tests for below validation
3803 * dbus/dbus-message.c (decode_header_data): validate field types,
3804 and validate that named fields are valid names
3805 (decode_name_field): consider messages in the
3806 org.freedesktop.Local. namespace to be invalid.
3808 * dbus/dbus-string.c (_dbus_string_validate_name): new
3810 2003-04-19 Havoc Pennington <hp@pobox.com>
3812 * bus/driver.c (bus_driver_handle_hello): check limits and
3813 return an error if they are exceeded.
3815 * bus/connection.c: maintain separate lists of active and inactive
3816 connections, and a count of each. Maintain count of completed
3817 connections per user. Implement code to check connection limits.
3819 * dbus/dbus-list.c (_dbus_list_unlink): export
3821 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
3822 number of bytes in the message queue for a connection
3824 2003-04-18 Havoc Pennington <hp@pobox.com>
3826 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
3828 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
3831 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
3832 on realloc be sure to update the pointer in the keyring
3834 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
3835 offset to avoid writing to unallocated memory
3837 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
3838 try the next mechanism, so we properly handle OOM
3840 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
3842 (_dbus_keyring_new): fix OOM bug
3843 (_dbus_keyring_new_homedir): always set error; impose a maximum
3844 number of keys we'll load from the file, mostly to speed up the
3845 test suite and make its OOM checks more useful, but also for
3848 * dbus/dbus-auth.c (process_error_server): reject authentication
3849 if we get an error from the client
3850 (process_cancel): on cancel, send REJECTED, per the spec
3851 (process_error_client): send CANCEL if we get an error from the
3854 2003-04-18 Havoc Pennington <hp@pobox.com>
3856 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
3859 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
3862 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
3863 about DBUS_TEST_HOMEDIR once
3865 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
3868 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
3869 config file so we test the right thing
3871 Throughout: assorted docs improvements
3873 2003-04-18 Havoc Pennington <hp@pobox.com>
3875 * glib/dbus-gmain.c: adapt to watch changes
3877 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
3879 * dbus/dbus-server.h: remove dbus_server_handle_watch
3881 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
3883 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
3884 like DBusTimeout, so we don't need dbus_connection_handle_watch
3887 2003-04-17 Havoc Pennington <hp@redhat.com>
3889 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
3890 database usage so it all goes via the DBusUserDatabase cache.
3892 2003-04-17 Havoc Pennington <hp@redhat.com>
3894 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
3895 there was an OOM watch we skipped, we always return TRUE so we
3896 iterate again to have a look at it again. Fixes test suite hang.
3897 Code rearrangement also lets us lose some memset and only iterate
3898 over callbacks once.
3900 * bus/driver.c (bus_driver_handle_message): sense of test for
3903 2003-04-16 Havoc Pennington <hp@pobox.com>
3905 * doc/dbus-specification.sgml: make spec say serials are unsigned
3907 * dbus/dbus-message.h: change message serials to unsigned
3909 * dbus/dbus-connection.c: adapt to message serials being unsigned
3911 2003-04-15 Havoc Pennington <hp@pobox.com>
3913 * bus/bus.c: create and keep around a shared DBusUserDatabase
3916 * bus/connection.c (bus_connection_get_groups): don't cache
3917 groups for user in the connection object, since user database
3918 object now does that.
3920 2003-04-16 Havoc Pennington <hp@redhat.com>
3922 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
3923 list of size counters
3924 (_dbus_message_loader_putback_message_link): put back a popped link
3926 * dbus/dbus-connection.c
3927 (dbus_connection_set_max_live_messages_size): rename
3929 (dbus_connection_get_outgoing_size): get size of outgoing
3931 (_dbus_connection_set_connection_counter): remove this cruft
3933 2003-04-14 Havoc Pennington <hp@redhat.com>
3935 * dbus/dbus-userdb.c: user database abstraction, mostly to get
3936 caching, but at some point we might want to be able to use a
3939 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
3940 SHA1 conf file to test the sha1 auth mechanism, since the regular
3941 test always uses EXTERNAL when available.
3944 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
3945 add conf file that requires use of sha1 auth
3947 2003-04-13 Havoc Pennington <hp@pobox.com>
3949 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
3950 from Philip Blundell to send messages and monitor them.
3952 2003-04-13 Havoc Pennington <hp@pobox.com>
3954 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
3957 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
3960 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3961 fix to only recover unused bytes if we're already authenticated
3962 (_dbus_transport_get_is_authenticated): fix to still mark us
3963 authenticated if there are unused bytes.
3965 * bus/dispatch.c: implement security policy checking
3967 * bus/connection.c (bus_transaction_send_from_driver): new
3969 * bus/bus.c (bus_context_check_security_policy): new
3971 * bus/dispatch.c (send_service_nonexistent_error): delete this,
3972 now we just set the DBusError and it gets converted to an error
3975 * bus/connection.c (allow_user_function): enable code using actual
3976 data from the config file
3978 * bus/policy.c (list_allows_user): handle wildcard rules for
3979 user/group connection perms
3981 2003-04-13 Havoc Pennington <hp@pobox.com>
3983 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3985 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3987 * bus/policy.c (bus_policy_append_mandatory_rule)
3988 (bus_policy_append_default_rule, bus_policy_append_user_rule)
3989 (bus_policy_append_group_rule): new functions
3991 2003-04-12 Havoc Pennington <hp@pobox.com>
3993 * bus/config-parser.c (bus_config_parser_new): fix a memleak
3995 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
3996 the pid/gid/uid, just for paranoia.
3998 * test/break-loader.c (randomly_do_n_things): find a byte
3999 containing a type code, and randomly change it to a different
4002 2003-04-12 Havoc Pennington <hp@pobox.com>
4004 * bus/policy.h: change BusPolicy to be the thing from the config
4005 file, and rename old BusPolicy to BusClientPolicy
4007 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4008 match change in how policy works
4010 * dbus/dbus-internals.h: mark assert_not_reached as
4011 __attribute((noreturn))__
4013 2003-04-11 Havoc Pennington <hp@redhat.com>
4015 * doc/dbus-specification.sgml: fix a spot with the wrong name for
4016 the broadcast service. Use boolean return for ServiceExists.
4018 2003-04-11 Havoc Pennington <hp@redhat.com>
4020 * configure.in: add another directory to look for qt in.
4022 2003-04-11 Havoc Pennington <hp@redhat.com>
4024 * AUTHORS: add Colin Walters
4026 2003-04-11 Havoc Pennington <hp@redhat.com>
4032 2003-04-11 Havoc Pennington <hp@redhat.com>
4034 * bus/messagebus.in: remove pid file when stopping the
4035 message bus, since the bus won't have privileges to remove it
4038 2003-04-11 Havoc Pennington <hp@redhat.com>
4040 * bus/bus.c (bus_context_new): move credentials change after
4043 2003-04-11 Havoc Pennington <hp@pobox.com>
4045 * test/decode-gcov.c: add "below average functions" to the
4046 coverage report, and change how some of the code works.
4048 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4049 not in the coverage stats.
4051 * test/test-service.c (main): use _dbus_verbose not fprintf in a
4052 couple places so running the test suite doesn't result in megaspam.
4054 2003-04-11 Havoc Pennington <hp@pobox.com>
4056 * bus/dispatch.c (check_existent_service_activation): accept a no
4057 memory error in a place we didn't before
4059 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4060 in case the first one failed," since the test suite is less
4063 2003-04-10 Havoc Pennington <hp@pobox.com>
4065 * bus/dispatch.c (check_segfault_service_activation): add test
4066 for launching an executable that just crashes.
4068 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4069 don't leave a million cores. We'll see how portable this is.
4071 2003-04-10 Havoc Pennington <hp@pobox.com>
4073 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4074 the possible parent failures before we fork, so that we don't
4075 fail to create a babysitter after creating the child.
4077 * bus/activation.c (bus_activation_activate_service): kill child
4078 if we don't successfully complete the activation.
4080 2003-04-10 Havoc Pennington <hp@redhat.com>
4082 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4083 the connection if it's disconnected
4085 * bus/activation.c (bus_activation_service_created): use new
4086 transaction features to roll back removal of pending activation if
4087 we don't successfully create the service after all. Don't remove
4088 pending activation if the function fails.
4090 * dbus/dbus-list.c (_dbus_list_insert_before_link)
4091 (_dbus_list_insert_after_link): new code to facilitate
4094 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4095 new functionality, so we can preallocate the ability to insert
4098 * bus/connection.c (bus_transaction_add_cancel_hook): new function
4099 allowing us to put custom hooks in a transaction to be used for
4100 cancelling said transaction
4102 * doc/dbus-specification.sgml: add some discussion of secondary
4103 service owners, and disallow zero-length service names
4105 * bus/services.c (bus_registry_acquire_service): new function,
4106 splits out part of bus_driver_handle_acquire_service() and fixes
4107 a bug where we didn't remove the service doing the acquiring
4108 from the secondary queue if we failed to remove the current owner
4109 from the front of the queue.
4111 2003-04-10 Alexander Larsson <alexl@redhat.com>
4113 * doc/dbus-specification.sgml:
4114 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4116 2003-04-10 Alexander Larsson <alexl@redhat.com>
4121 Added files to cvsignore
4123 * dbus/dbus-message.h:
4124 * dbus/dbus-message.c: (dbus_message_iter_get_named):
4125 Make get_named() take two out argument and return a boolean.
4126 (dbus_message_iter_get_args_valist):
4127 Update usage of get_named().
4128 (dbus_message_iter_append_byte):
4130 (dbus_message_iter_append_named)
4132 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4135 2003-04-10 Alexander Larsson <alexl@redhat.com>
4137 * dbus/dbus-marshal.[ch]:
4138 Add array_type_pos argument to _dbus_marshal_validate_arg.
4139 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4141 * dbus/dbus-message.[ch]:
4142 Multi-dimensional arrays have full type specification in the
4143 outermost array. Iter code re-arranged to handle this.
4144 Added some more iter tests.
4146 * doc/dbus-specification.sgml:
4149 Update new array encoding description.
4150 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4152 * test/data/invalid-messages/array-with-mixed-types.message:
4153 * test/data/valid-messages/array-of-array-of-uint32.message:
4154 Change to the new array format.
4156 * test/data/invalid-messages/too-short-dict.message:
4159 * test/data/valid-messages/recursive-types.message:
4160 Fix up and extend test.
4162 2003-04-10 Havoc Pennington <hp@pobox.com>
4164 * bus/dispatch.c: lots of fixes
4166 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4167 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4168 that was crack, broke the test service.
4170 * dbus/dbus-transport.c (_dbus_transport_open): fix error
4171 handling to avoid piling up errors if we get a failure on the
4174 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4175 pid in assertion failures.
4177 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4178 to some fixed size of file descriptor array. Don't return TRUE
4179 anytime a timeout exists, that led to lots of busy loop silliness
4182 2003-04-09 Havoc Pennington <hp@redhat.com>
4184 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4185 I'd checked this in earlier but hadn't.
4187 2003-04-09 Havoc Pennington <hp@redhat.com>
4189 * bus/dispatch.c (bus_dispatch_test): get a bit further through
4190 the activation test (man this is getting old!)
4192 2003-04-09 Havoc Pennington <hp@redhat.com>
4194 * test/test-utils.c: use dispatch status function to fix this up
4196 * bus/connection.c (connection_watch_callback): don't dispatch
4198 (connection_timeout_callback): don't dispatch from here
4199 (bus_connections_setup_connection): set the dispatch status function
4200 (bus_connection_disconnected): unset it
4202 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4203 used to add a connection to be dispatched
4204 (_dbus_loop_iterate): do the dispatching at the end of each
4207 * dbus/dbus-connection.c
4208 (dbus_connection_set_dispatch_status_function): new function
4209 allowing us to fix up main loop usage
4210 (_dbus_connection_last_unref): free all the various function
4212 (dbus_connection_dispatch): call the DispatchStatusFunction
4213 whenever this function returns
4214 (dbus_connection_handle_watch): call DispatchStatusFunction
4215 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4216 (reply_handler_timeout): call DispatchStatusFunction
4217 (dbus_connection_flush): call DispatchStatusFunction
4219 2003-04-09 Havoc Pennington <hp@redhat.com>
4221 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4224 * bus/dispatch.c (check_service_activated): fix bug in test
4226 * dbus/dbus-mainloop.c (check_timeout): fix this up
4228 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4229 verbose output so we can sort out output from different processes,
4230 e.g. in the activation case.
4232 2003-04-08 Colin Walters <walters@gnu.org>
4234 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4236 (bus_context_new): Set it.
4237 (bus_context_unref): Use it to delete the pid file.
4239 2003-04-08 Havoc Pennington <hp@redhat.com>
4241 * test/data/invalid-messages/array-with-mixed-types.message:
4242 regression test that fails for the moment
4244 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4245 tests for convenience
4247 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4248 array of nil, it broke things.
4250 * test/data/invalid-messages/array-of-nil.message: regression test
4252 * test/data/valid-messages/array-of-array-of-uint32.message:
4253 happened to write this so added it to suite
4255 2003-04-08 Havoc Pennington <hp@redhat.com>
4257 * bus/driver.c (bus_driver_handle_acquire_service): init
4258 retval/reply before checking name
4260 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4261 recursion depth argument
4263 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4264 in the public struct for future extension
4266 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4269 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4272 * doc/dbus-specification.sgml: fix typo
4274 2003-04-08 Alexander Larsson <alexl@redhat.com>
4276 Implemented recursive types, named types and new-style iters
4279 * glib/test-thread-client.c: (thread_func):
4280 * glib/test-thread-server.c: (handle_test_message):
4281 * test/test-service.c: (handle_echo):
4290 * dbus/dbus-internals.c: (_dbus_type_to_string):
4291 Update for new types.
4293 * dbus/dbus-marshal.[ch]:
4294 Implement recursive types and the new marshalling format.
4295 Remove hardcoded dict marshalling.
4296 Marshal named types.
4298 * dbus/dbus-message-builder.c:
4300 Remove references to old types
4302 * dbus/dbus-message.[ch]:
4303 New non-refcounted iter API that supports recursive iters.
4304 Use iters for appending, including support for recursive
4306 Add byte and named type support.
4307 Update everything to new marshalling formats.
4308 Add tests for new API.
4310 * dbus/dbus-protocol.h:
4311 Remove old array types.
4312 Add types: BYTE, ARRAY, DICT, NAMED
4314 * dbus/dbus-string.c:
4315 * dbus/dbus-sysdeps.c:
4316 Make parse_double locale safe.
4318 * dbus/dbus-test-main.c:
4324 * doc/dbus-specification.sgml:
4327 * test/data/incomplete-messages/missing-body.message:
4328 * test/data/invalid-messages/bad-boolean.message:
4329 * test/data/invalid-messages/bad-boolean-array.message:
4330 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4331 * test/data/invalid-messages/boolean-has-no-value.message-raw:
4332 * test/data/invalid-messages/too-short-dict.message:
4333 * test/data/valid-messages/dict-simple.message:
4334 * test/data/valid-messages/dict.message:
4335 * test/data/valid-messages/emptiness.message:
4336 * test/data/valid-messages/lots-of-arguments.message:
4337 * test/data/valid-messages/no-padding.message:
4338 * test/data/valid-messages/recursive-types.message:
4339 Add missing NAME fields
4340 Fix up dicts & arrays
4342 * test/data/invalid-messages/dict-with-nil-value.message:
4343 Removed, this is not invalid anymore.
4345 * test/data/valid-messages/recursive-types.message:
4346 Add new test for deeply recursive types.
4348 2003-04-07 Havoc Pennington <hp@pobox.com>
4350 * bus/driver.c (bus_driver_handle_acquire_service): return an
4351 error if you try to acquire a service that starts with ':'
4353 2003-04-07 Havoc Pennington <hp@redhat.com>
4355 * doc/dbus-specification.sgml: require that base service names
4356 start with ':' and that the base service is created/deleted
4357 as first and last things a connection does on the bus
4359 * bus/dispatch.c (check_existent_service_activation): lots more
4360 work on the activation test; it doesn't fully pass yet...
4362 * test/test-service.c (main): fix so we don't memleak the
4363 connection to the message bus
4364 (filter_func): accept a message asking us to exit
4366 2003-04-06 Havoc Pennington <hp@pobox.com>
4368 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4371 * configure.in: fixes to Qt detection from Colin Walters
4373 * doc/Makefile.am: Only remove generated docbook dirs if they
4374 exist, from Colin Walters
4376 * dbus/dbus-bus.c: change how we set well-known connections to
4377 NULL, so that it works if a single connection is stored in
4378 two well-known array slots.
4380 * test/Makefile.am: remove a lot of stuff that isn't immediately
4381 useful, it's in CVS history if we want it.
4383 * test/test-service.c: use dbus-mainloop instead of that
4386 2003-04-06 Havoc Pennington <hp@pobox.com>
4388 * dbus/Makefile.am: split lists of sources into stuff that goes in
4389 the library, util functions that go in the lib and are also used
4390 elsewhere, and util functions that are used in tests/daemon but
4391 don't go in the lib.
4393 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4394 here so it can be used in test binaries also
4396 2003-04-06 Havoc Pennington <hp@pobox.com>
4398 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4399 here in the parent process, so we can return an error if it
4400 fails. Also, move some of the code into the child so the parent
4401 is less hosed if we fail midway through.
4403 * bus/bus.c (bus_context_new): move pidfile detection further up
4404 in the function, before we start overwriting sockets and such.
4406 * bus/messagebus.in: adjust this a bit, not sure if it will work.
4408 * configure.in: add --with-system-pid-file and --with-system-socket
4410 2003-04-06 Colin Walters <walters@verbum.org>
4412 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4414 * bus/system.conf.in: Declare a pidfile.
4416 * bus/bus.c (bus_context_new): Test for an existing pid file, and
4417 create one (if appropriate).
4419 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4420 (struct BusConfigParser) [pidfile]: New.
4421 (element_type_to_name, merge_included, start_busconfig_child)
4422 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4423 (bus_config_parser_unref): Free it.
4424 (bus_config_parser_get_pidfile): New function.
4426 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4428 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4430 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4432 * dbus/dbus-sysdeps.h: Prototype it.
4434 2003-04-06 Havoc Pennington <hp@pobox.com>
4436 * bus/bus.c (bus_context_new): print the address in here, rather
4437 than in main(), because we need to do it before forking the daemon
4439 * bus/dispatch.c (send_service_nonexistent_error): set the sender
4440 on the service nonexistent error
4442 * bus/driver.c (bus_driver_handle_acquire_service): set the
4443 sender on the AcquireService reply
4445 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4446 server also listen on a UNIX socket so services can connect to it.
4448 2003-04-06 Havoc Pennington <hp@pobox.com>
4450 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4451 so it detects deadlocks and also we actually init threads when
4454 2003-04-06 Havoc Pennington <hp@pobox.com>
4456 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4457 save the domain socket name, and unlink it when we disconnect the
4458 server. Means that at least when we exit normally, we won't leave
4459 a bunch of junk in /tmp
4461 * dbus/dbus-transport-unix.c
4462 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4463 memory management). (I was making a real change here but then
4466 2003-04-06 Havoc Pennington <hp@pobox.com>
4468 * bus/bus.c (bus_context_new): fix wrong handling of
4469 server_data_slot_unref() in the error case.
4471 * dbus/dbus-internals.h (_dbus_assert): change so it passes
4472 "(condition) != 0" to _dbus_real_assert so that
4473 "_dbus_assert (pointer)" doesn't cause a warning
4475 * bus/main.c (main): accept --print-address option to print out
4476 the message bus address
4478 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4480 * dbus/dbus-transport.c (_dbus_transport_open): special error for
4481 "tmpdir" option to unix: address on client side
4483 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4486 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4487 we can use to create sockets in the test suite.
4489 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4490 cleanly. To be used for testing.
4492 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4494 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4496 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4497 handle trying to call this when there's no servers active
4499 2003-04-05 Havoc Pennington <hp@pobox.com>
4505 2003-04-05 Havoc Pennington <hp@pobox.com>
4507 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4508 crash on startup. Need to get "try starting the daemon"
4509 in the test suite I guess. ;-)
4511 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4512 tracked the number of open connections; it's better done in
4513 application-specific code as you want it to span all servers etc.
4515 2003-04-05 Havoc Pennington <hp@pobox.com>
4517 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4518 patch from Colin Walters
4520 2003-04-05 Havoc Pennington <hp@pobox.com>
4522 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4523 reality; in fact multiple mechanisms are allowed.
4525 * dbus/dbus-internals.c (_dbus_real_assert)
4526 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4527 _dbus_assert_not_reached() into functions, so that they don't show
4528 up in basic block counts for test coverage, and don't use up as
4529 much disk space. Does mean slower execution speed though, so
4530 assumes --disable-asserts is the normal production case.
4532 2003-04-05 Havoc Pennington <hp@pobox.com>
4534 * test/Makefile.am (dist-hook): also dist *.in files
4540 2003-04-05 Havoc Pennington <hp@pobox.com>
4542 * dbus/dbus-string.c: docs warning
4544 * dbus/dbus-spawn.c: missing docs
4546 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4548 2003-04-05 Havoc Pennington <hp@pobox.com>
4550 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4553 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4554 to -1 once we've reaped the babysitter
4555 (_dbus_babysitter_handle_watch): do as much work as we can, not
4558 * bus/activation.c: add code using DBusBabysitter so that we
4559 handle it when a service fails to start up properly.
4560 (bus_activation_service_created): don't remove the activation
4561 entries as we go, just let them get removed when we free the pending
4562 activation. Unref reply messages after sending them.
4564 2003-04-05 Havoc Pennington <hp@pobox.com>
4566 * test/decode-gcov.c (main): print per-directory stats in the report
4568 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4570 2003-04-05 Havoc Pennington <hp@pobox.com>
4572 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4574 * test/decode-gcov.c: hack up a little program to suck data
4575 out of gcov files. Yes this is sort of silly.
4577 * configure.in: define something in config.h and do an
4578 AM_CONDITIONAL when gcov is enabled
4580 2003-04-04 Havoc Pennington <hp@redhat.com>
4582 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4583 return a "babysitter" object that is used to monitor the status of
4584 the spawned process and reap it when required.
4586 * test/test-segfault.c, test/test-exit.c,
4587 test/test-sleep-forever.c: binaries that do various lame things,
4588 used in the test suite.
4590 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4592 2003-04-03 Havoc Pennington <hp@pobox.com>
4594 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4595 in preparation for modifying it, dbus-sysdeps is getting
4598 2003-04-03 Havoc Pennington <hp@redhat.com>
4600 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4603 * bus/*.[hc]: adapt to mainloop change
4605 2003-04-03 Havoc Pennington <hp@redhat.com>
4607 * bus/activation.c (load_directory): fix up memleaks
4608 (bus_activation_entry_free): free the entry
4610 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4611 we get one from the message bus; fix memleaks.
4613 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4615 2003-04-03 Havoc Pennington <hp@pobox.com>
4617 * bus/config-parser.c (bus_config_parser_unref): free
4618 list of mechanisms, bug discovered by test suite enhancements
4619 (putting system.conf and session.conf into suite)
4621 * test/Makefile.am, test/test-service.c: add placeholder for a
4622 test service that we'll activate as part of test suite. Doesn't
4625 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4626 setting NULL value, and use system malloc not dbus_malloc()
4627 when we have unavoidable memleakage.
4629 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4630 didn't work, and support DBUS_BUS_ACTIVATION.
4632 * bus/activation.c (child_setup): pass our well-known bus type to
4635 * bus/config-parser.c: support <type> to specify well-known type
4637 * doc/dbus-specification.sgml: document the env variables to
4638 locate well-known buses and find service activator
4640 2003-04-02 Havoc Pennington <hp@redhat.com>
4642 * test/Makefile.am (all-local): add a rule to copy tests to
4643 builddir, so we can have generated tests. Use this to remove the
4644 silly hack for testing system.conf and session.conf. Will use this
4645 shortly to generate .service files pointing to test binaries.
4647 2003-04-02 Havoc Pennington <hp@redhat.com>
4649 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4650 current alloc and needed new length, not max of the doubled
4651 allocation and needed new length. Also, when building tests,
4652 don't do the double-allocation stuff, just realloc every time.
4654 2003-04-02 Havoc Pennington <hp@redhat.com>
4656 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4658 (_dbus_string_get_dirname): new
4659 (_dbus_sysdeps_test): new
4660 (_dbus_directory_open): include dirnames in error messages
4662 * bus/config-parser.c: interpret <include> and <includedir> and
4663 <servicedir> relative to config file location if the given
4664 filename is not absolute.
4666 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4668 2003-04-02 Havoc Pennington <hp@redhat.com>
4670 * bus/connection.c (bus_transaction_send_error_reply): set sender
4671 service for the error, and unref the reply on success
4673 * bus/activation.c: convert to use BusTransaction so OOM can be
4675 (bus_activation_service_created): set sender of the message
4677 2003-04-01 Havoc Pennington <hp@redhat.com>
4679 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4680 <includedir> (at least mostly)
4682 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4683 first, then the user ID
4685 2003-04-01 Havoc Pennington <hp@pobox.com>
4687 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4690 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4692 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4694 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4695 socket 0777, and unlink any existing socket.
4697 * bus/bus.c (bus_context_new): change our UID/GID and fork if
4698 the configuration file so specifies; set up auth mechanism
4701 * bus/config-parser.c (bus_config_parser_content): add support
4702 for <fork> option and fill in code for <auth>
4704 * bus/system.conf.in: add <fork/> to default configuration,
4705 and limit auth mechanisms to EXTERNAL
4707 * doc/config-file.txt (Elements): add <fork>
4709 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4710 (_dbus_change_identity): new function
4712 2003-03-31 Havoc Pennington <hp@redhat.com>
4714 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4715 (_dbus_listen_unix_socket): fix off-by-one error in null
4716 termination spotted by Nalin
4718 2003-03-31 Havoc Pennington <hp@redhat.com>
4720 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4721 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4722 having a real home directory available.
4724 2003-03-31 Havoc Pennington <hp@redhat.com>
4726 * bus/Makefile.am (install-data-hook): create /var/run/dbus
4728 * bus/messagebus.in: add init script for Red Hat /etc/init.d
4730 * configure.in: add support for specifying a style of init script
4733 2003-03-31 Havoc Pennington <hp@redhat.com>
4735 Fix some annoying DBusString API and fix all affected code.
4737 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
4739 (_dbus_string_get_data): change to return string instead of using
4741 (_dbus_string_get_const_data): ditto
4742 (_dbus_string_get_data_len): ditto
4743 (_dbus_string_get_const_data_len): ditto
4745 2003-03-31 Havoc Pennington <hp@redhat.com>
4747 * bus/main.c (main): fix up the command line arguments to be nicer
4749 2003-03-31 Havoc Pennington <hp@redhat.com>
4751 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
4752 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
4753 final location that lands in the config file
4755 * bus/config-loader-expat.c (bus_config_load): fix type of
4758 * doc/TODO: remove TODO item for dbus_bus_get()
4760 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
4762 2003-03-31 Havoc Pennington <hp@pobox.com>
4764 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
4765 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
4766 argument since they are always client side
4768 * dbus/dbus-server.c (dbus_server_get_address): new function
4770 * bus/main.c (main): take the configuration file as an argument.
4772 * test/data/valid-config-files/debug-allow-all.conf: new file to
4773 use with dispatch.c tests for example
4775 * bus/test-main.c (main): require test data dir
4777 * bus/bus.c (bus_context_new): change this to take a
4778 configuration file name as argument
4780 * doc/config-file.txt (Elements): add <servicedir>
4782 * bus/system.conf, bus/session.conf: new files
4784 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
4785 well-known socket if none set
4787 * configure.in: create system.conf and session.conf
4789 2003-03-30 Havoc Pennington <hp@pobox.com>
4791 * bus/config-parser.c: hacking
4793 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
4794 to shut down, since it could cause weirdness with the DBusList
4797 * dbus/dbus-list.c (_dbus_list_test): add tests for the
4798 link-oriented stack routines
4799 (alloc_link): free the mempool if the first alloc from it fails
4801 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
4803 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
4805 (_dbus_string_skip_white): new
4807 * doc/config-file.txt (Elements): add <includedir>
4809 2003-03-28 Havoc Pennington <hp@pobox.com>
4811 * dbus/dbus-string.c (_dbus_string_copy_data_len)
4812 (_dbus_string_copy_data): new functions
4814 2003-03-28 Anders Carlsson <andersca@codefactory.se>
4816 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
4820 * dbus/dbus-memory.c:
4823 2003-03-28 Havoc Pennington <hp@pobox.com>
4825 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
4826 I think it may have just been superstition. Not sure.
4828 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
4829 failures that were not being handled.
4831 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
4833 * dbus/dbus-memory.c: add ability to set number of mallocs in a
4834 row that will fail on out-of-memory.
4836 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
4837 function for testing out-of-memory handling.
4839 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
4840 allocation functions, they do map exactly to the expat ones.
4842 2003-03-27 Havoc Pennington <hp@redhat.com>
4844 * bus/config-loader-libxml.c (bus_config_load): add another error
4847 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4850 Add note about automatic service activation.
4852 * doc/dbus-specification.sgml:
4853 Rename the specification and clarify a few things.
4855 2003-03-26 Anders Carlsson <andersca@codefactory.se>
4858 * dbus/dbus-address.c:
4860 * dbus/dbus-marshal.c:
4861 * dbus/dbus-server-debug-pipe.c:
4862 * dbus/dbus-transport-unix.c:
4863 Fix documentation warnings.
4865 2003-03-26 Havoc Pennington <hp@pobox.com>
4867 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
4868 after every test so it's quick and easy to see which leaked, and
4869 so we test multiple dbus_shutdown() calls
4871 * configure.in: change configure.in XML stuff to also support
4874 * config-loader-libxml.c: some hacking
4876 * config-loader-expat.c: some hacking
4878 * config-parser.c: some hacking, plus tests
4880 2003-03-25 Havoc Pennington <hp@redhat.com>
4882 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
4884 * configure.in: add --with-xml option to specify XML library,
4885 right now only libxml is supported.
4887 * bus/config-loader-libxml.c, config-parser.c: sync some minor
4888 nonworking code between home and work, still just stubs
4890 2003-03-24 Havoc Pennington <hp@redhat.com>
4892 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
4895 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
4896 NULL argument for "message" if the error is a well-known one,
4897 fill in a generic message in this case.
4899 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
4902 * bus/test.c (bus_test_flush_bus): add
4904 * bus/policy.c (bus_policy_test): test code stub
4906 2003-03-24 Havoc Pennington <hp@pobox.com>
4908 * bus/connection.c (bus_connections_setup_connection): set up
4909 the "can this user connect" function, but it always returns
4910 TRUE until we have a config file parser so we can have a config
4911 file that allows connections.
4913 2003-03-23 Havoc Pennington <hp@pobox.com>
4915 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
4916 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
4917 the mutex, so we can check for proper memory management
4920 * dbus/dbus-dataslot.c: remove the mutex from
4921 DBusDataSlotAllocator and lock it manually when using it,
4922 to simplify fitting it into the global slots framework.
4924 * dbus/dbus-threads.c (init_static_locks): rework how we're
4925 handling global locks so they are easily shut down.
4927 * bus/policy.c (bus_policy_append_rule): fix
4929 * bus/test-main.c (main): check for memleaks
4931 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
4932 test suite check for memleaks
4934 * dbus/dbus-memory.c: add support in test mode for tracking
4935 number of outstanding blocks
4937 2003-03-23 Havoc Pennington <hp@pobox.com>
4939 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
4942 * dbus/dbus-hash.h: add ULONG hash keys
4944 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
4945 (_dbus_get_group_id): new function
4947 2003-03-20 Havoc Pennington <hp@redhat.com>
4949 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
4951 (dbus_connection_get_unix_user): new function
4953 2003-03-20 Havoc Pennington <hp@pobox.com>
4955 * bus/connection.c (bus_connection_send_oom_error): assert that
4956 message has a sender
4957 (connection_execute_transaction): ditto
4958 (bus_connection_preallocate_oom_error): fix to set the sender, and
4959 set recipient to the destination service, not the bus driver
4961 * bus/policy.c: hacking
4963 * dbus/dbus-message.c (dbus_message_service_is): new function
4964 (dbus_message_sender_is): new
4966 2003-03-19 Havoc Pennington <hp@redhat.com>
4968 * bus/policy.c: start sketching code for policy restrictions on
4969 what connections can do.
4971 2003-03-18 Havoc Pennington <hp@redhat.com>
4973 * doc/TODO: some notes on high-level todo items. Little nitpick
4974 stuff is all in @todo, so no need to add it here.
4976 * doc/config-file.txt: some notes on how config file might look
4978 2003-03-18 Anders Carlsson <andersca@codefactory.se>
4984 2003-03-17 Havoc Pennington <hp@redhat.com>
4986 * dbus/dbus-internals.h: add gcc attributes so that
4987 our printf-style functions warn on bad arguments to
4990 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4993 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4996 2003-03-17 Havoc Pennington <hp@redhat.com>
4998 * bus/test-main.c (main): make it print something as it runs
4999 so make check doesn't look stuck
5001 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5002 from CVS, now obsolete
5004 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5006 * bus/dispatch.c: (bus_dispatch):
5007 Refetch the service name since it may have been reallocated
5008 when dbus_message_set_sender was called.
5010 * dbus/dbus-sysdeps.c: (_dbus_accept):
5011 Add address and address length variables and use them to stop
5012 valgrind from complaining.
5014 2003-03-17 Havoc Pennington <hp@pobox.com>
5016 All tests pass, no memleaks, no valgrind complaints.
5018 * bus/test.c: refcount handler_slot
5020 * bus/connection.c (bus_connections_new): refcount
5021 connection_data_slot
5023 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5024 bytes so that auth scripts pass.
5026 * bus/dispatch.c: init message_handler_slot so it gets allocated
5029 * bus/dispatch.c (message_handler_slot_ref): fix memleak
5031 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5032 dealloc server_pipe_hash when no longer used for benefit of
5035 * dbus/dbus-auth.c (process_command): memleak fix
5037 * bus/dispatch.c (check_hello_message): memleak fix
5039 2003-03-16 Havoc Pennington <hp@pobox.com>
5041 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5043 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5045 * bus/activation.c (bus_activation_activate_service): Append
5046 the pending activation entry to the list of pending activations.
5048 2003-03-16 Havoc Pennington <hp@pobox.com>
5050 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5053 * dbus/dbus-address.c (create_entry): fix OOM handling when
5054 failing to alloc entry->method
5056 2003-03-16 Havoc Pennington <hp@pobox.com>
5058 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5061 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5062 add some missing dbus_set_result
5064 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5065 alloc the DBusMessageHandler
5067 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5068 the transport here, since we call this from the finalizer; it
5069 resulted in a double-finalize.
5071 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5072 where we tried to use transport->connection that was NULL,
5073 happened when transport was disconnected early on due to OOM
5075 * bus/*.c: adapt to handle OOM for watches/timeouts
5077 * dbus/dbus-transport-unix.c: port to handle OOM during
5080 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5081 reference to unused bytes instead of a copy
5083 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5086 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5089 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5092 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5094 * doc/dbus-specification.sgml:
5095 Document reply message for ActivateService.
5097 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5099 * bus/activation.c: (bus_pending_activation_entry_free),
5100 (bus_pending_activation_free), (bus_activation_new),
5101 (bus_activation_unref), (bus_activation_service_created),
5102 (bus_activation_activate_service):
5104 * bus/bus.c: (bus_context_new):
5105 * bus/desktop-file.c: (new_section):
5106 * bus/driver.c: (bus_driver_send_service_deleted),
5107 (bus_driver_handle_activate_service):
5108 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5110 * dbus/dbus-connection.c:
5111 (dbus_connection_send_with_reply_and_block):
5112 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5113 * dbus/dbus-protocol.h:
5114 Make activation work better. Now pending activations will be queued
5115 and the daemon won't try to activate services that are already registered.
5117 2003-03-16 Havoc Pennington <hp@pobox.com>
5119 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5122 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5123 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5125 2003-03-16 Havoc Pennington <hp@pobox.com>
5127 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5128 this. always run the test suite before commit...
5130 * bus/*: adapt to DBusConnection API changes
5132 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5133 requires renaming stuff to avoid dbus_connection_dispatch name
5136 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5139 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5140 separate from _dbus_message_loader_return_buffer()
5142 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5143 this, because it's now always broken to use; the number of
5144 messages in queue vs. the number still buffered by the message
5145 loader is undefined/meaningless. Should use
5146 dbus_connection_get_dispatch_state().
5147 (dbus_connection_dispatch): rename from
5148 dbus_connection_dispatch_message
5150 2003-03-16 Havoc Pennington <hp@pobox.com>
5152 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5155 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5157 * dbus/dbus-connection.c:
5158 (dbus_connection_send_with_reply_and_block):
5159 Decrease connection->n_incoming when removing an entry
5161 * dbus/dbus-dict.c: (dbus_dict_entry_free),
5162 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5163 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5164 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5165 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5166 (dbus_dict_get_byte_array):
5167 Handle NULL arrays and strings. Also add support for byte arrays.
5169 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5170 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5171 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5172 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5173 (_dbus_demarshal_dict), (demarshal_and_validate_len),
5174 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5175 * dbus/dbus-marshal.h:
5176 Add support for marshalling and demarshalling empty arrays and strings.
5178 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5179 (dbus_message_append_string_array),
5180 (dbus_message_iter_get_boolean),
5181 (dbus_message_iter_get_boolean_array),
5182 (dbus_message_iter_get_int32_array),
5183 (dbus_message_iter_get_uint32_array),
5184 (dbus_message_iter_get_double_array),
5185 (dbus_message_iter_get_byte_array),
5186 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5187 (check_message_handling):
5188 Add support for getting empty arrays and dicts.
5190 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5191 Don't do any validation at all for now, that's better than just checking
5194 * test/data/valid-messages/emptiness.message:
5195 New test message with lots of empty arrays.
5197 2003-03-16 Havoc Pennington <hp@pobox.com>
5199 * dbus/dbus-connection.c
5200 (_dbus_connection_queue_received_message_link): new function that
5201 can't fail due to OOM
5203 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5204 new function pops a message together with a list link
5207 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5208 message queuing functions to avoid needing to alloc memory
5210 2003-03-16 Havoc Pennington <hp@pobox.com>
5212 Oops - test code was only testing failure of around 30 of the
5213 mallocs in the test path, but it turns out there are 500+
5214 mallocs. I believe this was due to misguided linking setup such
5215 that there was one copy of dbus_malloc etc. in the daemon and one
5216 in the shared lib, and only daemon mallocs were tested. In any
5217 case, the test case now tests all 500+ mallocs, and doesn't pass
5218 yet, though there are lots of fixes in this patch.
5220 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5221 this so that it doesn't need to allocate memory, since it
5222 has no way of indicating failure due to OOM (and would be
5223 annoying if it did).
5225 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5227 * bus/Makefile.am: rearrange to create two self-contained
5228 libraries, to avoid having libraries with overlapping symbols.
5229 that was resulting in weirdness, e.g. I'm pretty sure there
5230 were two copies of global static variables.
5232 * dbus/dbus-internals.c: move the malloc debug stuff to
5235 * dbus/dbus-list.c (free_link): free list mempool if it becomes
5238 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5240 * dbus/dbus-address.c (dbus_parse_address): free list nodes
5243 * bus/dispatch.c (bus_dispatch_add_connection): free
5244 message_handler_slot when no longer using it, so
5245 memory leak checkers are happy for the test suite.
5247 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5249 * bus/bus.c (new_connection_callback): disconnect in here if
5250 bus_connections_setup_connection fails.
5252 * bus/connection.c (bus_connections_unref): fix to free the
5254 (bus_connections_setup_connection): if this fails, don't
5255 disconnect the connection, just be sure there are no side
5258 * dbus/dbus-string.c (undo_alignment): unbreak this
5260 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5262 (_dbus_auth_new): fix the order in which we free strings
5265 * bus/connection.c (bus_connection_disconnected): fix to
5266 not send ServiceDeleted multiple times in case of memory
5269 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5270 get the base service name
5271 (dbus_bus_register_client): don't return base service name,
5272 instead store it on the DBusConnection and have an accessor
5274 (dbus_bus_register_client): rename dbus_bus_register()
5276 * bus/dispatch.c (check_hello_message): verify that other
5277 connections on the bus also got the correct results, not
5278 just the one sending hello
5280 2003-03-15 Havoc Pennington <hp@pobox.com>
5282 Make it pass the Hello handling test including all OOM codepaths.
5283 Now to do other messages...
5285 * bus/services.c (bus_service_remove_owner): fix crash when
5286 removing owner from an empty list of owners
5287 (bus_registry_ensure): don't leave service in the list of
5288 a connection's owned services if we fail to put the service
5291 * bus/connection.c (bus_connection_preallocate_oom_error): set
5292 error flag on the OOM error.
5294 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5295 handle _dbus_transport_set_connection failure
5297 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5298 to create watches up front and simply enable/disable them as
5300 (unix_connection_set): this can now fail on OOM
5302 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5303 of enabling/disabling a watch or timeout.
5305 * bus/loop.c (bus_loop_iterate): don't touch disabled
5308 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5310 2003-03-15 Havoc Pennington <hp@pobox.com>
5312 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5313 write useful test code, after all that futzing around ;-)
5315 Test does not yet pass because we can't handle OOM in
5316 _dbus_transport_messages_pending (basically,
5317 dbus_connection_preallocate_send() does not prealloc the write
5318 watch). To fix this, I think we need to add new stuff to
5319 set_watch_functions, namely a SetEnabled function so we can alloc
5320 the watch earlier, then enable it later.
5322 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5323 dbus-memory.c to the convenience lib
5325 * bus/test.c: rename some static functions to keep them clearly
5326 distinct from stuff in connection.c. Handle client disconnection.
5328 2003-03-14 Havoc Pennington <hp@pobox.com>
5330 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5331 transport, tests more of the real codepath. Set up clients
5332 with bus_setup_debug_client.
5334 * bus/test.c (bus_setup_debug_client): function to set up debug
5335 "clients" on the main loop
5337 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5340 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5343 * dbus/dbus-server-debug.c: support a debug server based on pipes
5345 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5346 (_dbus_close): new function
5348 * configure.in: check for socketpair
5350 2003-03-14 Havoc Pennington <hp@redhat.com>
5352 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5355 * dbus/dbus-transport-debug.c: rework this a good bit to be
5356 less complicated. hopefully still works.
5358 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5361 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5364 * dbus/dbus-message.c (dbus_message_copy): rename from
5365 dbus_message_new_from_message, fix it up to copy
5366 all the message fields, add test case
5368 * bus/dispatch.c (bus_dispatch_test): add some more test code,
5369 not quite passing yet
5371 2003-03-14 Havoc Pennington <hp@pobox.com>
5373 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5374 until no work remains" in test code. (the large diff here
5375 is just code movement, no actual changes)
5377 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5378 1, no point waiting around for test code.
5379 (_dbus_server_debug_accept_transport): unref the timeout
5380 after adding it (right?)
5382 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5384 2003-03-13 Havoc Pennington <hp@redhat.com>
5386 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5389 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5392 * dbus/dbus-connection.h: Make AddWatchFunction and
5393 AddTimeoutFunction return a bool so they can fail on out-of-memory
5395 * bus/bus.c (bus_context_new): set up timeout handlers
5397 * bus/connection.c (bus_connections_setup_connection): set up
5400 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5403 * bus/bus.c (bus_context_new): adapt to changes
5405 * bus/connection.c: adapt to changes
5407 * test/watch.c: adapt to DBusWatch changes
5409 * bus/dispatch.c (bus_dispatch_test): started adding this but
5412 2003-03-14 Anders Carlsson <andersca@codefactory.se>
5414 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5416 2003-03-13 Havoc Pennington <hp@pobox.com>
5418 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5419 set up a test framework as for the library
5421 2003-03-12 Havoc Pennington <hp@pobox.com>
5423 Throughout: purge global variables, introduce BusActivation,
5424 BusConnections, BusRegistry, etc. objects instead.
5426 * bus/bus.h, bus/bus.c: introduce BusContext as a global
5429 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5430 going to redo this a bit differently I think
5432 2003-03-12 Havoc Pennington <hp@redhat.com>
5434 Mega-patch that gets the message bus daemon initially handling
5435 out-of-memory. Work still needed. Also lots of random
5436 moving stuff to DBusError instead of ResultCode.
5438 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5440 * dbus/dbus-connection.c
5441 (dbus_connection_send_with_reply_and_block): use DBusError
5443 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5446 * dbus/dbus-connection.c (dbus_connection_send): drop the result
5447 code here, as the only failure possible is OOM.
5449 * bus/connection.c (bus_connection_disconnect):
5450 rename bus_connection_disconnected as it's a notification only
5452 * bus/driver.c (bus_driver_handle_acquire_service): don't free
5453 "name" on get_args failure, should be done by get_args;
5454 don't disconnect client for bad args, just return an error.
5455 (bus_driver_handle_service_exists): ditto
5457 * bus/services.c (bus_services_list): NULL-terminate returned array
5459 * bus/driver.c (bus_driver_send_service_lost)
5460 (bus_driver_send_service_acquired): send messages from driver to a
5461 specific client to the client's unique name, not to the broadcast
5464 * dbus/dbus-message.c (decode_header_data): reject messages that
5465 contain no name field
5466 (_dbus_message_get_client_serial): rename to
5467 dbus_message_get_serial and make public
5468 (_dbus_message_set_serial): rename from set_client_serial
5469 (_dbus_message_set_reply_serial): make public
5470 (_dbus_message_get_reply_serial): make public
5472 * bus/connection.c (bus_connection_foreach): allow stopping
5473 iteration by returning FALSE from foreach function.
5475 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5476 (dbus_connection_free_preallocated_send)
5477 (dbus_connection_preallocate_send): new API for sending a message
5478 without possibility of malloc failure.
5479 (dbus_connection_send_message): rename to just
5480 dbus_connection_send (and same for whole function family)
5482 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5484 * dbus/dbus-sysdeps.c (_dbus_exit): new function
5486 * bus/activation.c: handle/return errors
5488 * dbus/dbus-errors.h: add more DBUS_ERROR #define
5490 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5491 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5492 (_dbus_result_from_errno): move to this file
5494 2003-03-10 Anders Carlsson <andersca@codefactory.se>
5496 * dbus/dbus-marshal.c:
5497 (_dbus_marshal_set_string):
5498 Take a length argument so we can marshal the correct string
5501 (_dbus_marshal_dict), (_dbus_demarshal_dict),
5502 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5503 (_dbus_marshal_test):
5504 * dbus/dbus-marshal.h:
5505 Add support for marshalling and demarshalling dicts.
5507 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5508 Add support for TYPE DICT.
5510 * dbus/dbus-message.c: (set_string_field):
5511 Adjust header padding.
5513 (dbus_message_append_args_valist), (dbus_message_append_dict),
5514 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5515 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5516 (check_message_handling), (check_have_valid_message):
5517 * dbus/dbus-message.h:
5518 Add functions for setting and getting dicts.
5520 * dbus/dbus-protocol.h:
5526 * doc/dbus-specification.sgml:
5527 Add information about how dicts are marshalled.
5529 * test/data/invalid-messages/dict-with-nil-value.message:
5530 * test/data/invalid-messages/too-short-dict.message:
5531 * test/data/valid-messages/dict-simple.message:
5532 * test/data/valid-messages/dict.message:
5533 Add sample messages containing dicts.
5535 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5537 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5539 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5542 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5543 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5544 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5545 (dbus_dict_set_double), (dbus_dict_set_string),
5546 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5547 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5548 (dbus_dict_set_string_array), (_dbus_dict_test):
5550 Fix according to comments from Havoc.
5552 2003-03-06 Michael Meeks <michael@server.home>
5554 * configure.in: if we don't have kde-config, disable have_qt.
5556 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5561 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5562 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5563 (dbus_dict_remove), (dbus_dict_get_value_type),
5564 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5565 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5566 (dbus_dict_put_double), (dbus_dict_put_string),
5567 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5568 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5569 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5570 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5571 (dbus_dict_get_double), (dbus_dict_get_string),
5572 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5573 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5574 (dbus_dict_get_string_array), (_dbus_dict_test):
5576 Add DBusDict implementation
5578 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5582 2003-03-04 Havoc Pennington <hp@pobox.com>
5584 * test/data/auth/*: adapt to changes
5586 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5587 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5590 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5591 more stuff from being in a context name, to make the protocol
5592 simpler to deal with
5594 * dbus/dbus-errors.c (dbus_error_has_name): new function
5595 (dbus_error_is_set): new function
5597 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5598 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5600 * dbus/dbus-connection.c (dbus_connection_flush): also read
5601 messages during a flush operation
5603 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5605 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5607 * configure.in: Check for gethostbyname on Solaris.
5609 * dbus/dbus-transport.c: (_dbus_transport_open):
5610 Remove duplicate "tcp" entry.
5612 * doc/dbus-specification.sgml:
5613 Clarify some things.
5615 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5617 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5618 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5619 (_dbus_keyring_test):
5620 * dbus/dbus-md5.c: (_dbus_md5_compute):
5621 * dbus/dbus-sha.c: (_dbus_sha_compute):
5624 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5626 * README: Add some things.
5628 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5630 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5631 after case DBUS_TYPE_BOOELAN.
5633 2003-03-02 Havoc Pennington <hp@pobox.com>
5635 * test/break-loader.c (randomly_set_extreme_ints): add test that
5636 sets really huge and small integers
5638 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5639 that length of boolean array fits in the string, and that
5640 string has room for boolean value in single-bool case.
5642 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5643 optional value to "ALIGN" command which is what to fill the
5646 * test/data/valid-messages/no-padding.message: add regression
5647 test for the message padding problem
5649 2003-03-02 Havoc Pennington <hp@pobox.com>
5651 * dbus/dbus-message.c (decode_header_data): fix to always init
5652 message_padding, from Benjamin Dauvergne
5654 2003-03-02 Havoc Pennington <hp@pobox.com>
5660 2003-03-01 Joe Shaw <joe@assbarn.com>
5662 * configure.in: Check for "struct cmsgcred" and try to access its
5663 members for BSD-like unices.
5665 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5666 _dbus_read_credentials_unix_socket().
5667 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5668 read() for reading the credential byte off the unix socket. Use
5669 struct cmsgcred on systems that support it.
5671 2003-02-27 Alexander Larsson <alexl@redhat.com>
5675 Make gthreads-2.0 dependency optional. Don't build thread test if
5678 2003-02-27 Havoc Pennington <hp@pobox.com>
5680 * dbus/dbus-connection.c
5681 (dbus_connection_send_message_with_reply_and_block): fix doh!
5682 doh! doh! bug that resulted in never removing a reply from the
5683 queue, no wonder we called get_reply_serial so much ;-)
5685 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5686 and client serial instead of demarshaling them every time
5688 2003-02-27 Havoc Pennington <hp@pobox.com>
5690 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5691 more inlined, using dbus-string-private.h, speeds things up
5694 * dbus/dbus-string.c (_dbus_string_free): apply align offset
5695 when freeing the string
5696 (_dbus_string_steal_data): fix for align offset
5697 (undo_alignment): new function
5699 2003-02-26 Havoc Pennington <hp@redhat.com>
5701 All kinds of audit fixes from Owen, plus initial attempt to
5702 handle unaligned memory returned from malloc.
5704 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5705 leave room for align_offset and nul byte
5706 (fixup_alignment): function to track an align_offset and
5707 ensure real->str is aligned
5708 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5709 to allow a nul byte plus align offset
5710 (_dbus_string_lock): fix overflow issue
5711 (_dbus_string_init_const_len): add assertions on sanity of len,
5712 assign allocated to be ALLOCATION_PADDING larger than len
5713 (set_length): fixup the overflow handling
5714 (_dbus_string_get_data_len): fix overflow in assertion
5715 (open_gap): detect overflow in size of gap to be opened
5716 (_dbus_string_lengthen): add overflow check
5717 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5718 (_dbus_string_append): add overflow check
5719 (_dbus_string_append_unichar): overflow
5720 (_dbus_string_delete): fix overflow in assertion
5721 (_dbus_string_copy_len): overflow in assertion
5722 (_dbus_string_replace_len): overflows in assertions
5723 (_dbus_string_find): change to implement in terms of
5724 _dbus_string_find_to
5725 (_dbus_string_find_to): assorted fixage
5726 (_dbus_string_equal_c_str): assert c_str != NULL,
5727 fix logic so the function works
5728 (_dbus_string_ends_with_c_str): fix overflow thingy
5729 (_dbus_string_base64_encode): overflow fix
5730 (_dbus_string_validate_ascii): overflow
5731 (_dbus_string_validate_nul): overflow
5733 2003-02-26 Havoc Pennington <hp@redhat.com>
5735 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
5737 2003-02-26 Alexander Larsson <alexl@redhat.com>
5740 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
5742 * dbus/dbus-connection.c:
5743 * dbus/dbus-connection.h:
5744 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
5745 Add dbus_connection_set_wakeup_main_function and use it when queueing
5746 incoming and outgoing messages.
5749 * dbus/dbus-dataslot.c:
5750 Threadsafe usage of DBusDataSlotAllocator
5752 * dbus/dbus-message.c: (dbus_message_get_args_iter):
5755 * dbus/dbus-server-unix.c:
5758 * glib/dbus-gmain.c:
5759 Implement the new wakeup functions for glib.
5762 * glib/test-thread-client.c:
5763 * glib/test-thread-server.c:
5764 * glib/test-thread.h:
5765 Initial cut at some thread test code. Not really done yet.
5767 2003-02-26 Havoc Pennington <hp@pobox.com>
5769 * dbus/dbus-connection.c
5770 (dbus_connection_send_message_with_reply_and_block): fix crash
5771 where we ref'd the outgoing message instead of the returned reply
5773 * dbus/dbus-transport-unix.c (do_authentication): check read watch
5774 at the end of this function, so if we didn't need to read for
5775 authentication, we reinstall it for receiving messages
5777 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
5778 a NULL sender for peer-to-peer case
5780 * dbus/dbus-transport-unix.c (check_read_watch): handle
5781 !authenticated case correctly
5783 * glib/dbus-gmain.c: add support for DBusServer
5785 * dbus/dbus-server.c: add data slot support
5787 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
5788 return values and handle errors
5790 * dbus/dbus-dataslot.c: factor out the data slot stuff from
5793 * Doxyfile.in (INPUT): add glib subdir
5795 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
5796 setup_with_g_main instead of hookup_with_g_main; write docs
5798 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5800 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
5801 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5802 * dbus/dbus-message.c: (dbus_message_append_boolean),
5803 (dbus_message_append_boolean_array),
5804 (dbus_message_get_args_valist), (_dbus_message_test):
5805 * dbus/dbus-message.h:
5806 * doc/dbus-specification.sgml:
5807 Various fixes as pointed out by Havoc.
5809 * test/data/invalid-messages/bad-boolean-array.message:
5810 * test/data/invalid-messages/bad-boolean.message:
5811 Add invalid boolean value test cases.
5813 2003-02-24 Anders Carlsson <andersca@codefactory.se>
5815 * dbus/dbus-internals.c: (_dbus_type_to_string):
5816 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5817 (_dbus_marshal_validate_arg):
5818 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5819 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5820 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
5821 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
5822 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
5823 (dbus_message_iter_get_double),
5824 (dbus_message_iter_get_boolean_array), (message_iter_test):
5825 * dbus/dbus-message.h:
5826 * dbus/dbus-protocol.h:
5827 * doc/dbus-specification.sgml:
5828 * test/data/valid-messages/lots-of-arguments.message:
5829 Add support for boolean and boolean array types.
5831 2003-02-23 Havoc Pennington <hp@pobox.com>
5833 * dbus/dbus-keyring.c: finish most of this implementation and
5836 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
5837 these barf if the error isn't cleared to NULL
5839 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
5840 (_dbus_create_directory): new function
5842 * dbus/dbus-errors.c (dbus_set_error): fix warning
5844 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
5845 (_dbus_string_hex_decode): new function
5846 (test_hex_roundtrip): test code
5848 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
5850 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
5852 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
5853 the save-to-temp/rename trick to atomically write the new file
5854 (_dbus_string_parse_uint): new function
5856 2003-02-22 Havoc Pennington <hp@pobox.com>
5858 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
5860 2003-02-22 Havoc Pennington <hp@pobox.com>
5862 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
5863 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
5865 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
5867 * dbus/test/data/sha-1: add US government test suite for SHA-1
5869 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5871 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
5872 Make string arrays NULL-terminated.
5874 * dbus/dbus-memory.c: (dbus_free_string_array):
5875 * dbus/dbus-memory.h:
5876 New function for freeing NULL-terminated string arrays.
5878 * dbus/dbus-message-builder.c: (append_quoted_string),
5879 (_dbus_message_data_load):
5880 Add support for array types.
5882 * dbus/dbus-message.c: (check_message_handling):
5883 Add more types as test cases.
5885 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
5886 (_dbus_string_parse_double):
5887 Add the start offset to the end offset.
5889 * test/data/valid-messages/lots-of-arguments.message:
5890 New test message with lots of arguments.
5892 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5894 * dbus/dbus-message.c: (dbus_message_append_nil),
5895 (dbus_message_append_int32), (dbus_message_append_uint32),
5896 (dbus_message_append_double), (dbus_message_append_string),
5897 (dbus_message_append_int32_array),
5898 (dbus_message_append_uint32_array),
5899 (dbus_message_append_double_array),
5900 (dbus_message_append_byte_array),
5901 (dbus_message_append_string_array):
5902 Fix all out-of-memory handling in these functions.
5904 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5906 * dbus/dbus-message.c: (dbus_message_append_nil):
5909 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5911 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5912 (dbus_message_append_nil), (dbus_message_append_int32_array),
5913 (dbus_message_append_uint32_array),
5914 (dbus_message_append_double_array),
5915 (dbus_message_append_byte_array),
5916 (dbus_message_append_string_array), (dbus_message_get_args_valist),
5917 (dbus_message_iter_get_int32_array),
5918 (dbus_message_iter_get_uint32_array),
5919 (dbus_message_iter_get_double_array),
5920 (dbus_message_iter_get_byte_array),
5921 (dbus_message_iter_get_string_array):
5923 * dbus/dbus-message.h:
5924 Add functions for appending and getting arrays.
5926 2003-02-21 Anders Carlsson <andersca@codefactory.se>
5928 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
5929 element size at least 8 bytes, fixes mempool tests on
5932 2003-02-20 Alexander Larsson <alexl@redhat.com>
5934 * dbus/dbus-transport-unix.c (unix_do_iteration):
5935 Unlock the connection mutex during a blocking select call.
5936 Add todo about how we need a way to wake up the select.
5938 * dbus/dbus-connection-internal.h:
5939 * dbus/dbus-connection.c:
5940 Add _dbus_connection_lock and _dbus_connection_unlock.
5942 2003-02-19 Havoc Pennington <hp@pobox.com>
5944 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
5945 Doxyfile.in, not Doxyfile
5947 * dbus/dbus-keyring.c: do some hacking on this
5949 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
5951 * dbus/dbus-errors.c (dbus_set_error_const): do not call
5953 (dbus_set_error): remove dbus_error_init, check for message ==
5954 NULL *before* we sprintf into it, and add @todo about including
5955 system headers in this file
5957 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
5959 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
5961 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
5962 get various bits of user information based on either username
5964 (_dbus_homedir_from_username): new function
5966 2003-02-19 Anders Carlsson <andersca@codefactory.se>
5969 Add check for nonposix getpwnam_r
5971 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5972 Align the pool element size to a sizeof (void *) boundary.
5974 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5975 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5976 General Solaris fixes.
5978 * test/data/valid-messages/simplest-manual.message:
5979 Explicitly state that we want little-endian packing.
5981 2003-02-19 Mikael Hallendal <micke@codefactory.se>
5983 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5985 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5986 Added to create a transport connecting using a tcp/ip socket.
5988 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5989 to a tcp socket at given host and port.
5990 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5993 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5995 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5996 Added to create a server listening on a TCP/IP socket.
5998 2003-02-19 Havoc Pennington <hp@pobox.com>
6000 Throughout: mop up all the Doxygen warnings and undocumented
6003 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6004 to search any paths.
6006 * dbus/dbus-threads.c: move global mutex initializers to
6007 dbus-internals.h, multiple prototypes was confusing doxygen
6008 besides being kind of ugly
6010 * Doxyfile (PREDEFINED): have Doxygen define
6011 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6012 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6013 (do not abuse the feature! it's for stuff like the autogenerated
6014 macros in dbus-md5.c, not just for things you don't feel like
6017 2003-02-18 Havoc Pennington <hp@pobox.com>
6019 * dbus/dbus-string.c (_dbus_string_zero): new function
6021 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6022 wrap it in some dbus-friendly API
6024 * dbus/dbus-types.h: add 16-bit types
6026 2003-02-18 Joe Shaw <joe@assbarn.com>
6028 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6029 credentials from our currently running process.
6030 (get_word): Fix a buglet where we were copying the entire length
6031 instead of relative to our position.
6033 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6034 keys on the stack... it's 640k of data.
6036 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6037 read the credentials byte off the socket, even if we don't have
6039 (_dbus_poll): Implement poll() using select() for systems which
6042 * glib/test-dbus-glib.c (main): Print out an error if no
6043 parameters are given.
6045 * test/data/auth/fallback.auth-script: Added. Tests that a client
6046 can fallback to a secondary auth mechanism if the first fails.
6048 2003-02-18 Havoc Pennington <hp@pobox.com>
6052 2003-02-17 Havoc Pennington <hp@pobox.com>
6054 * doc/dbus-specification.sgml: lots of cosmetic
6055 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6056 env variable to DBUS_BUS_ADDRESS, s/client/application/,
6057 s/server/bus/ (except in authentication section). Add a section
6058 "Message Bus Message Routing"
6060 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
6066 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6068 * doc/dbus-specification.sgml:
6069 Specification updates.
6071 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6073 * bus/activation.c: (bus_activation_init), (child_setup),
6074 (bus_activation_activate_service):
6076 * bus/main.c: (main):
6077 Set DBUS_ADDRESS environment variable.
6079 * dbus/dbus-errors.c: (dbus_set_error):
6080 Don't use va_copy since that's a C99 feature.
6082 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6083 (_dbus_spawn_async):
6084 * dbus/dbus-sysdeps.h:
6085 Add child_setup_func to _dbus_spawn_async.
6087 * doc/dbus-specification.sgml:
6088 Update specification.
6090 * test/spawn-test.c: (setup_func), (main):
6093 2003-02-17 Alexander Larsson <alexl@redhat.com>
6095 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6098 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6102 * doc/dbus-test-plan.sgml:
6103 Add test plan document.
6108 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6110 * dbus/dbus-message.c: (decode_header_data),
6111 (_dbus_message_loader_return_buffer):
6112 Set the header padding amount when loading a message.
6114 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6116 * bus/dispatch.c: (send_one_message):
6117 Only send broadcast messages to registered connections.
6119 * dbus/dbus-message.c: (dbus_message_name_is):
6120 * dbus/dbus-message.h:
6121 New convenience function.
6123 * dbus/dbus-transport-debug.c: (do_reading):
6124 Only dispatch one message per run.
6127 * test/bus-test.c: (new_connection_callback), (die),
6128 (test_hello_client1_handler), (test_hello_client2_handler),
6129 (test_hello_replies), (main):
6131 * test/bus-test-loop.[ch]:
6134 2003-02-16 Havoc Pennington <hp@pobox.com>
6136 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6137 backward conditional
6139 2003-02-16 Alexander Larsson <alexl@redhat.com>
6141 * dbus/dbus-connection.c:
6142 Implement sent_message_with_reply. (with_reply_and block is still
6144 Made dispatch_message not lose message if OOM.
6146 * dbus/dbus-errors.h:
6147 Add NoReply error (for reply timeouts).
6149 2003-02-16 Alexander Larsson <alexl@redhat.com>
6151 * dbus/dbus-hash.c (_dbus_hash_table_unref):
6152 Actually free keys and values when destroying hashtable.
6154 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6156 * dbus/dbus-auth.c: (client_try_next_mechanism):
6159 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6160 Return TRUE if there's no thread implementation around.
6162 * glib/dbus-gmain.c: (free_source),
6163 (dbus_connection_hookup_with_g_main):
6164 Make sure to remove the GSource when the connection is finalized.
6166 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6168 * bus/dispatch.c: (bus_dispatch_message_handler):
6169 * dbus/dbus-errors.h:
6170 Return an error if someone tries to send a message to a service
6173 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6175 * bus/activation.c: (load_directory), (bus_activation_init),
6176 (bus_activation_activate_service):
6179 (bus_driver_handle_activate_service), (bus_driver_handle_message):
6180 More work on the activation handling.
6182 * dbus/dbus-errors.h:
6183 Add some error messages
6185 * dbus/dbus-message.c: (dbus_message_new_error_reply):
6186 * dbus/dbus-message.h:
6187 New function that creates an error message.
6189 * dbus/dbus-protocol.h:
6190 Add ACTIVATE_SERVER message.
6192 * dbus/dbus-server-unix.c: (unix_handle_watch),
6193 (_dbus_server_new_for_domain_socket):
6194 Call _dbus_fd_set_close_on_exec.
6196 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6197 (_dbus_spawn_async), (_dbus_disable_sigpipe),
6198 (_dbus_fd_set_close_on_exec):
6199 * dbus/dbus-sysdeps.h:
6200 Add _dbus_fd_set_close_on exec function. Also add function that checks
6201 that all open fds are set to close-on-exec and warns otherwise.
6203 * dbus/dbus-transport-unix.c:
6204 (_dbus_transport_new_for_domain_socket):
6205 Call _dbus_fd_set_close_on_exec.
6207 2003-02-16 Havoc Pennington <hp@pobox.com>
6209 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6210 allow people to avoid setting SIGPIPE to SIG_IGN
6211 (_dbus_connection_new_for_transport): disable SIGPIPE unless
6212 we've been asked not to
6214 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6216 * dbus/dbus-list.c: (_dbus_list_append_link),
6217 (_dbus_list_prepend_link):
6218 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6222 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6225 * bus/activation.c: (bus_activation_entry_free),
6226 (add_desktop_file_entry), (load_directory), (bus_activation_init):
6228 * bus/main.c: (main):
6229 Add simple activation support, doesn't work yet though.
6231 2003-02-15 Zack Rusin <zack@kde.org>
6233 * qt/dbus-qthread.cpp: small casting fix
6235 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6237 * dbus/dbus-errors.c: (dbus_set_error):
6238 * dbus/dbus-errors.h:
6239 Add a few errors and make dbus_set_error void.
6241 * dbus/dbus-sysdeps.c:
6242 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6243 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6244 * dbus/dbus-sysdeps.h:
6245 Add _dbus_spawn_async.
6247 * test/spawn-test.c: (main):
6248 Test for _dbus_spawn_async.
6250 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6252 * dbus/dbus-internals.h:
6253 Fix build without tests.
6255 * dbus/dbus-list.c: (alloc_link):
6256 Fix a segfault when a malloc fails.
6258 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6259 (dbus_malloc0), (dbus_realloc):
6260 Add support for malloc debugging.
6262 2003-02-15 Alexander Larsson <alexl@redhat.com>
6264 * dbus/dbus-threads.c:
6265 * dbus/dbus-threads.h:
6266 Add condvars. Remove static mutext from API.
6267 Implement static mutexes by initializing them from threads_init.
6269 * glib/dbus-gthread.c:
6270 * qt/dbus-qthread.cpp:
6271 Update with the thread api changes.
6276 Turn StaticMutex into normal mutex + init function.
6277 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6278 _dbus_list_append_link, _dbus_list_prepend_link
6281 * dbus/dbus-sysdeps.c:
6282 * dbus/dbus-sysdeps.h:
6283 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6284 _dbus_atomic_dec. Only slow fallback implementation at the moment.
6286 * dbus/dbus-protocol.h:
6287 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6289 * dbus/dbus-message.c:
6290 Make ref/unref atomic.
6293 * dbus/dbus-connection-internal.h:
6294 * dbus/dbus-connection.c:
6295 * dbus/dbus-connection.h:
6297 Change _peek to _borrow,_return & _steal_borrowed.
6298 Change disconnect callback to event.
6299 Make dbus_connection_dispatch_messages reentrant.
6301 * dbus/dbus-transport.c:
6302 Don't ref the connection on calls to the transport
6305 * dbus/dbus-message-handler.c:
6308 * glib/dbus-gmain.c:
6309 Don't use peek_message anymore
6312 * test/debug-thread.c:
6313 * test/debug-thread.h:
6314 Simple thread implementation that asserts() on deadlocks in
6315 single-threaded code.
6318 (main) Call debug_threads_init.
6321 Use disconnect message instead of disconnect callback.
6325 Don't call dbus_connection_set_disconnect_function. Instead export
6326 bus_connection_disconnect.
6329 Call bus_connection_disconnect when we get a disconnected message.
6331 2003-02-15 Havoc Pennington <hp@pobox.com>
6333 * dbus/dbus-message.c (dbus_message_new): fool around with the
6336 2003-02-14 Havoc Pennington <hp@pobox.com>
6338 * dbus/dbus-mempool.c: fail if the debug functions so indicate
6340 * dbus/dbus-memory.c: fail if the debug functions indicate we
6343 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6344 (_dbus_decrement_fail_alloc_counter): debug functions to
6345 simulate memory allocation failures
6347 2003-02-14 Havoc Pennington <hp@pobox.com>
6349 * dbus/dbus-errors.h (struct DBusError): add a word of padding
6352 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6354 * bus/driver.c: (bus_driver_handle_hello):
6356 * bus/services.c: (bus_service_lookup):
6357 Reorder message sending so we get a more sane order.
6359 * test/bus-test.c: (message_handler):
6362 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6364 * bus/driver.c: (bus_driver_send_service_deleted),
6365 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6366 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6367 (bus_driver_send_welcome_message),
6368 (bus_driver_handle_list_services),
6369 (bus_driver_handle_acquire_service),
6370 (bus_driver_handle_service_exists):
6371 * dbus/dbus-bus.c: (dbus_bus_register_client),
6372 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6373 * dbus/dbus-errors.c: (dbus_result_to_string):
6374 * dbus/dbus-errors.h:
6375 * dbus/dbus-message.c: (dbus_message_append_args),
6376 (dbus_message_append_args_valist), (dbus_message_get_args),
6377 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6378 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6379 (dbus_message_iter_get_byte_array),
6380 (dbus_message_iter_get_string_array), (message_iter_test),
6381 (check_message_handling), (_dbus_message_test):
6382 * dbus/dbus-message.h:
6383 * test/bus-test.c: (main):
6384 Change fields to arguments in messages, so that they won't be
6385 confused with header fields.
6387 * glib/test-dbus-glib.c: (main):
6388 Remove append_fields from hello message.
6390 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6392 * dbus/dbus-errors.c:
6393 * dbus/dbus-message.c:
6394 * dbus/dbus-string.c:
6395 Documentation fixes.
6397 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6399 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6401 Implement support for timeouts in dbus-glib.
6403 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6405 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6406 * dbus/dbus-message.c: (process_test_subdir):
6407 * test/break-loader.c: (find_breaks_based_on):
6408 Plug some memory leaks.
6410 2003-02-13 Richard Hult <rhult@codefactory.se>
6412 * bus/main.c: Fix build.
6414 * dbus/dbus-errors.h:
6415 * dbus/dbus-errors.c: Fix copyright for Anders.
6417 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6422 * bus/connection.c: (bus_connection_foreach):
6425 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6426 (unescape_string), (new_section), (parse_section_start),
6427 (parse_key_value), (report_error), (bus_desktop_file_load),
6428 (bus_desktop_file_get_string):
6429 * bus/desktop-file.h:
6430 Use DBusError for error reporting.
6432 * bus/dispatch.c: (send_one_message),
6433 (bus_dispatch_message_handler):
6434 * bus/driver.c: (bus_driver_send_service_deleted),
6435 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6436 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6437 (bus_driver_send_welcome_message),
6438 (bus_driver_handle_list_services),
6439 (bus_driver_handle_acquire_service),
6440 (bus_driver_handle_service_exists):
6441 * bus/loop.c: (bus_loop_run):
6443 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6445 * bus/utils.c: (bus_wait_for_memory):
6447 New files with general utility functions.
6449 * dbus/dbus-internals.h:
6450 Remove _DBUS_HANDLE_OOM.
6452 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6454 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6455 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6456 * dbus/dbus-errors.h:
6457 Add DBusError structure.
6459 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6461 * test/data/valid-messages/standard-acquire-service.message:
6462 * test/data/valid-messages/standard-hello.message:
6463 * test/data/valid-messages/standard-list-services.message:
6464 * test/data/valid-messages/standard-service-exists.message:
6465 Add some standard messages.
6467 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6469 * bus/driver.c: (bus_driver_send_welcome_message),
6470 (bus_driver_handle_list_services),
6471 (bus_driver_handle_acquire_service),
6472 (bus_driver_handle_service_exists), (bus_driver_handle_message):
6473 Update for API changes in libdbus.
6475 * dbus/dbus-message.c: (dbus_message_new_reply):
6476 * dbus/dbus-message.h:
6477 Remove the name argument. The spec states that replies shouldn't
6480 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6482 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6483 (report_error), (bus_desktop_file_load), (lookup_section),
6484 (lookup_line), (bus_desktop_file_get_raw),
6485 (bus_desktop_file_get_string):
6486 * bus/desktop-file.h:
6487 Some fixes, and new functions for getting a key value from a section.
6489 2003-02-13 Havoc Pennington <hp@pobox.com>
6491 * test/data/auth/fail-after-n-attempts.auth-script: new test
6493 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6496 2003-02-13 Havoc Pennington <hp@pobox.com>
6498 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6499 dbus_credentials_match were backward
6501 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6502 NO_CREDENTIALS and ROOT_CREDENTIALS
6504 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6505 into here. Never process more commands after we've reached an
6506 end state; store further data as unused bytes.
6508 * test/data/auth/*: add more auth tests
6510 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6511 command to match exact string and EXPECT_UNUSED to match unused
6514 * test/Makefile.am (dist-hook): fix to dist all the test stuff
6516 2003-02-12 Havoc Pennington <hp@pobox.com>
6518 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6519 \r off of popped lines
6521 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6524 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6527 2003-02-12 Havoc Pennington <hp@pobox.com>
6529 * dbus/Makefile.am: remove break-loader from the build, since it
6532 * configure.in: add --enable-gcov to turn on coverage profiling
6533 flags and disable optimization
6535 2003-02-10 Havoc Pennington <hp@pobox.com>
6537 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6538 initial cut at test framework for DBusAuth from laptop.
6539 Doesn't quite work yet but it compiles and I need to get
6540 it off the 266mhz laptop. ;-)
6542 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6543 fix a memleak in error case
6545 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6548 * bus/desktop-file.c:
6549 * bus/desktop-file.h:
6550 Add a desktop file parser.
6552 2003-02-11 Zack Rusin <zack@kde.org>
6554 * qt/message.[h|cpp]: sample implementation
6555 of the KDE wrapper for DBusMessage
6557 2003-02-09 Zack Rusin <zack@kde.org>
6559 * test/bus-test.c: make_it_compile
6560 * doc/dbus-specification.sgml: minimal semantic fix
6562 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6568 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6571 * dbus/dbus-break-loader.c:
6573 * test/break-loader.c:
6574 Move dbus-break-loader to test/ and rename it to break-loader.
6576 2003-02-02 Havoc Pennington <hp@pobox.com>
6578 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6579 for code to manage cookies in your home directory
6581 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6583 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6584 to authenticate, then disconnect the client.
6586 2003-02-03 Alexander Larsson <alexl@redhat.com>
6588 * dbus/dbus-message.c (dbus_message_append_fields):
6591 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6593 * doc/dbus-specification.sgml:
6594 Update address format section.
6596 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6599 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6600 (message_handler), (new_connection_callback), (loop_quit),
6604 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6606 * bus/driver.c: (bus_driver_handle_service_exists):
6607 Simplify the code a bit.
6609 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6612 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6615 Add libdbus-daemon.la and link to it.
6617 2003-02-01 James Willcox <jwillcox@gnome.org>
6619 * bus/driver.c: (bus_driver_handle_own_service):
6620 Actually include the service reply code in the message.
6622 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6624 * bus/driver.c: (bus_driver_handle_service_exists):
6625 Don't unref the incoming message.
6627 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6629 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6631 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6633 * dbus/dbus-server.c: (dbus_server_listen):
6634 * dbus/dbus-transport.c: (_dbus_transport_open):
6635 ifdef out the calls to the debug transport and server.
6637 2003-02-02 Alexander Larsson <alexl@redhat.com>
6639 * dbus/dbus-watch.c (dbus_watch_get_flags):
6640 Add note in the docs that ERROR or HANGUP won't be returned
6641 and are assumed always on.
6643 * glib/dbus-gmain.c (add_watch):
6644 Always add IO_ERR | IO_HUP
6646 * dbus/dbus-message.h:
6647 Add semicolon after dbus_message_iter_get_string_array().
6648 Makes qt code build again
6650 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6652 * bus/driver.c: (create_unique_client_name),
6653 (bus_driver_handle_hello):
6654 Don't take a name, just use a numeric id to identify
6658 * dbus/dbus-bus.c: (dbus_bus_register_client),
6659 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6661 Add new convenience functions for communicating with the bus.
6663 * dbus/dbus-message.h:
6665 * dbus/dbus-protocol.h:
6668 2003-02-01 Alexander Larsson <alexl@redhat.com>
6670 * dbus/dbus-message.c (dbus_message_append_fields):
6671 Add some more doc comments.
6673 2003-02-01 Havoc Pennington <hp@pobox.com>
6675 * dbus/dbus-break-loader.c (randomly_modify_length): change
6676 a 4-byte value in the message as if it were a length
6678 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6679 execute bit on saved files
6681 2003-02-01 Havoc Pennington <hp@pobox.com>
6683 * dbus/dbus-break-loader.c (main): new program to find messages
6684 that break the loader.
6686 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6687 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6689 * dbus/dbus-string.c (_dbus_string_set_byte): new
6691 2003-01-31 Havoc Pennington <hp@pobox.com>
6693 * dbus/dbus-message.c: refactor the test code to be more general,
6694 in preparation for writing a "randomly permute test cases to
6695 try to break the loader" program.
6697 2003-01-31 Havoc Pennington <hp@pobox.com>
6699 * doc/dbus-specification.sgml: work on the specification
6701 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6702 the protocol version of the message.
6704 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6705 no longer specifies that.
6706 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6709 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6710 "break" for DBUS_TYPE_NIL, remove @todo
6712 2003-01-31 Havoc Pennington <hp@pobox.com>
6714 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6715 just set_is_error/get_is_error as this is a commonly-used
6716 function, and write docs.
6718 2003-01-31 Anders Carlsson <andersca@codefactory.se>
6720 * dbus/dbus-address.c: (dbus_address_entry_free):
6721 Free key and value lists.
6723 * dbus/dbus-internals.c: (_dbus_type_to_string):
6724 Add the types we didn't have.
6726 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6727 (_dbus_marshal_validate_arg):
6730 * dbus/dbus-message.c: (dbus_message_set_sender):
6731 Remove todo about being able to set sender to NULL.
6733 (dbus_message_set_is_error_reply),
6734 (dbus_message_get_is_error_reply):
6735 * dbus/dbus-message.h:
6738 * dbus/dbus-protocol.h:
6739 Add error reply flag.
6741 * test/data/valid-messages/opposite-endian.message:
6742 Add NIL type to test.
6744 2003-01-31 Havoc Pennington <hp@pobox.com>
6746 * doc/dbus-specification.sgml: fully specify the header. Add
6747 flags and major protocol version, and change header/body len to
6750 * dbus/dbus-message-builder.c (append_saved_length): append length
6753 * dbus/dbus-message.c (dbus_message_create_header): change header
6754 length and body length to unsigned. Add the new fields from the
6756 (_dbus_message_loader_return_buffer): unsigned header/body len
6758 2003-01-30 Havoc Pennington <hp@pobox.com>
6760 * dbus/dbus-auth.c: rework to use only REJECTED, no
6763 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
6764 use REJECTED, suggested by Mark McLoughlin
6766 2003-01-30 Havoc Pennington <hp@pobox.com>
6768 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
6769 a better way to report errors here. e.g. "unix address lacks
6770 path" or something. also "no such file" when the path doesn't
6773 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
6775 (dbus_parse_address): add @todo about documenting address format,
6776 and allowing , and ; to be escaped
6778 2003-01-30 Anders Carlsson <andersca@codefactory.se>
6781 Add dbus-address.[ch]
6783 * dbus/dbus-address.c: (dbus_address_entry_free),
6784 (dbus_address_entries_free), (create_entry),
6785 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
6786 (dbus_parse_address), (_dbus_address_test):
6787 * dbus/dbus-address.h:
6788 New files for dealing with address parsing.
6790 * dbus/dbus-connection.c:
6791 Document timeout functions.
6793 * dbus/dbus-message.c:
6794 Document dbus_message_new_from_message.
6796 * dbus/dbus-server-debug.c:
6799 * dbus/dbus-server.c: (dbus_server_listen):
6800 Parse address and use correct server implementation.
6802 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
6803 * dbus/dbus-string.h:
6804 New function with test.
6806 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
6810 * dbus/dbus-transport-debug.c:
6813 * dbus/dbus-transport.c: (_dbus_transport_open):
6814 Parse address and use correct transport implementation.
6816 2003-01-30 Havoc Pennington <hp@pobox.com>
6818 * dbus/dbus-message.c: use message->byte_order instead of
6819 DBUS_COMPILER_BYTE_ORDER throughout.
6820 (dbus_message_create_header): pad header to align the
6821 start of the body of the message to 8-byte boundary
6823 * dbus/dbus-marshal.h: make all the demarshalers take const
6824 DBusString arguments.
6826 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
6827 validate message args here, so we don't have to do slow validation
6828 later, and so we catch bad messages as they are incoming. Also add
6829 better checks on header_len and body_len. Also fill in
6832 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
6833 implemented properly)
6834 (_dbus_string_validate_nul): new function to check all-nul
6836 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
6837 get_arg_end_pos and remove all validation
6838 (_dbus_marshal_validate_arg): actually do validation here.
6840 2003-01-29 Havoc Pennington <hp@pobox.com>
6842 * dbus/dbus-message.c (check_message_handling): fix assertion
6843 failure on set_client_serial
6845 2003-01-28 Havoc Pennington <hp@pobox.com>
6847 * dbus/dbus-server-debug.c: Add doc section comments
6849 * dbus/dbus-transport-debug.c: add doc section comments
6851 2003-01-28 Havoc Pennington <hp@redhat.com>
6853 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
6854 the reverse order from how I had it
6855 (_dbus_string_base64_encode): reverse encoding order. I was
6856 basically byteswapping everything during encoding.
6858 2003-01-28 Anders Carlsson <andersca@codefactory.se>
6860 * dbus/dbus-connection-internal.h:
6861 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
6862 (_dbus_connection_remove_timeout):
6863 Add functions for adding and removing timeouts.
6865 * dbus/dbus-message.c: (dbus_message_new_from_message):
6866 Add new function that takes a message and creates an exact
6867 copy of it, but with the refcount set to 1.
6868 (check_message_handling):
6871 * dbus/dbus-server-protected.h:
6872 * dbus/dbus-server.c: (_dbus_server_init_base),
6873 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
6874 (dbus_server_set_timeout_functions):
6875 (_dbus_server_remove_timeout):
6876 New functions so that a server can add and remove timeouts.
6878 (dbus_server_listen):
6879 Add commented out call to dbus_server_debug_new.
6881 * dbus/dbus-timeout.c: (_dbus_timeout_new):
6882 Actually set the handler, doh.
6884 * dbus/dbus-transport.c: (_dbus_transport_open):
6885 Add commented out call to dbus_transport_debug_client_new.
6888 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
6890 2003-01-28 Havoc Pennington <hp@pobox.com>
6892 * dbus/dbus-message.c (check_message_handling): function to check
6893 on the loaded message, iterates over it etc.
6895 2003-01-28 Havoc Pennington <hp@pobox.com>
6897 * test/Makefile.am (dist-hook): fix make distdir
6899 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
6901 2003-01-27 Havoc Pennington <hp@pobox.com>
6903 * dbus/dbus-mempool.c (time_for_size): replace printf with
6906 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
6907 empty lines; fix the SAVE_LENGTH stuff to be
6908 START_LENGTH/END_LENGTH so it actually works; couple other
6911 * test/Makefile.am (dist-hook): add dist-hook for .message files
6913 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
6914 can be constant or locked.
6915 (_dbus_string_free): allow freeing a const string as
6918 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
6920 * dbus/dbus-test-main.c (main): take an argument which is the
6921 directory containing test data
6923 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
6924 argument to this and load all the messages in test/data/
6925 checking that they can be loaded or not loaded as appropriate.
6927 2003-01-27 Anders Carlsson <andersca@codefactory.se>
6929 * bus/dispatch.c: (bus_dispatch_message_handler):
6930 Dispatch messages sent to services.
6932 * bus/driver.c: (bus_driver_send_service_deleted),
6933 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6934 (bus_driver_send_service_acquired):
6935 Add helper functions for sending service related messages.
6937 (bus_driver_send_welcome_message):
6938 Send HELLO_REPLY instead of WELCOME.
6940 (bus_driver_handle_list_services):
6941 Send LIST_SERVICES_REPLY instead of SERVICES.
6943 (bus_driver_handle_own_service),
6944 (bus_driver_handle_service_exists):
6945 New message handlers.
6947 (bus_driver_handle_message):
6948 Invoke new message handlers.
6950 (bus_driver_remove_connection):
6951 Don't remove any services here since that's done automatically
6952 by bus_service_remove_owner now.
6955 New function signatures.
6957 * bus/services.c: (bus_service_add_owner):
6958 Send ServiceAcquired message if we're the only primary owner.
6960 (bus_service_remove_owner):
6961 Send ServiceAcquired/ServiceLost messages.
6963 (bus_service_set_prohibit_replacement),
6964 (bus_service_get_prohibit_replacement):
6965 Functions for setting prohibit replacement.
6967 (bus_service_has_owner):
6968 New function that checks if a connection is in the owner queue of
6972 Add new function signatures.
6974 * dbus/dbus-list.c: (_dbus_list_test):
6975 Add tests for _dbus_list_remove_last and traversing the list backwards.
6978 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6979 go any further, so return NULL then.
6981 * dbus/dbus-protocol.h:
6982 Add new messages, service flags and service replies.
6984 2003-01-26 Havoc Pennington <hp@pobox.com>
6986 * dbus/dbus-message-builder.c: implement, completely untested.
6988 * test/data/*: add data to be used in testing.
6989 ".message" files are our simple loadable text format.
6990 ".message-raw" will be binary dumps of messages.
6992 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6994 2003-01-26 Havoc Pennington <hp@pobox.com>
6996 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
6998 * dbus/dbus-errors.c (dbus_result_to_string): add
7001 * dbus/dbus-message-builder.c: new file, will contain code to load
7002 up messages from files. Not implemented yet.
7004 2003-01-26 Havoc Pennington <hp@pobox.com>
7006 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7007 the sender by setting to NULL
7009 2003-01-26 Havoc Pennington <hp@pobox.com>
7011 The unit tests pass, but otherwise untested. If it breaks, the
7012 tests should have been better. ;-)
7014 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7017 * dbus/dbus-message.c: redo everything so we maintain
7018 message->header as the only copy of the various fields.
7019 This avoids the possibility of out-of-memory in some cases,
7020 for example dbus_message_lock() can't run out of memory anymore,
7021 and avoids extra copying. Figured I may as well go ahead and do
7022 this since it was busted for dbus_message_lock to not return
7023 failure on OOM, and dbus_message_write_header was totally
7024 unchecked for OOM. Also fixed some random other bugs.
7026 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7027 that strings are nul-terminated. Also, end_pos can be equal
7028 to string length just not greater than, I think.
7029 (_dbus_marshal_set_int32): new function
7030 (_dbus_marshal_set_uint32): new function
7031 (_dbus_marshal_set_string): new function
7033 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7034 a warning, init timeout_list to NULL
7035 (dbus_connection_send_message): don't use uninitialized variable
7038 * dbus/dbus-string.c (_dbus_string_replace_len): new function
7040 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7042 * bus/driver.c: (bus_driver_handle_hello),
7043 (bus_driver_send_welcome_message):
7046 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7048 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7049 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7050 (dbus_connection_unref):
7051 * dbus/dbus-marshal.c: (_dbus_marshal_test):
7052 * dbus/dbus-message.c: (dbus_message_unref),
7055 (dbus_message_get_fields):
7056 Remove debugging printout.
7058 (_dbus_message_loader_return_buffer):
7059 Don't store the header string.
7061 (_dbus_message_test):
7064 2003-01-26 Richard Hult <rhult@codefactory.se>
7066 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7067 the file descriptor list, since it can change under us.
7069 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7071 * glib/dbus-gmain.c: (dbus_connection_prepare),
7072 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7073 (remove_watch), (dbus_connection_hookup_with_g_main):
7074 Rewrite the glib handling to use its own GSource instead of a
7075 GIOChannel so we can catch messages put in the queue while waiting
7078 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7081 * bus/connection.c: (connection_disconnect_handler),
7082 (connection_watch_callback), (bus_connection_setup):
7083 * bus/dispatch.c: (send_one_message),
7084 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7085 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7087 * bus/driver.c: (bus_driver_send_service_deleted),
7088 (bus_driver_send_service_created), (bus_driver_handle_hello),
7089 (bus_driver_send_welcome_message),
7090 (bus_driver_handle_list_services), (bus_driver_remove_connection),
7091 (bus_driver_handle_message):
7093 Refactor code, put the message dispatching in its own file. Use
7094 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7097 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7099 * dbus/dbus-internals.h:
7100 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7102 * dbus/dbus-message.c: (dbus_message_get_sender):
7103 * dbus/dbus-message.h:
7104 Implement dbus_message_get_sender.
7106 * dbus/dbus-protocol.h:
7107 Add message and service defines.
7109 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7111 * dbus/dbus-connection.c: (dbus_connection_send_message):
7112 * dbus/dbus-message-internal.h:
7113 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7114 (dbus_message_write_header):
7115 Remove _dbus_messag_unlock and don't set the client serial on a
7116 message if one already exists.
7118 2003-01-24 Havoc Pennington <hp@pobox.com>
7120 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7123 * bus/driver.c (bus_driver_handle_list_services): fix a leak
7126 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7128 * dbus/dbus-list.c: (alloc_link), (free_link):
7129 Use a memory pool for the links.
7131 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7133 * bus/connection.c: (bus_connection_foreach):
7135 Add new bus_connection_foreach function.
7137 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7138 Add function that broadcasts a message to all clients.
7140 (bus_driver_send_service_created), (bus_driver_handle_hello),
7141 (bus_driver_send_welcome_message),
7142 (bus_driver_handle_list_services), (bus_driver_message_handler):
7143 Implement functions that take care of listing services, and notifying
7144 clients when new services are created.
7146 * bus/services.c: (bus_services_list):
7148 Add new function that returns an array of strings with the currently
7149 registered services.
7152 * glib/dbus-gmain.c:
7153 Update copyright year.
7155 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7157 * dbus/dbus-connection.c: (dbus_connection_send_message):
7158 Unlock the message in case it was sent earlier.
7160 (dbus_connection_send_message_with_reply_and_block):
7161 Remove the reply message from the list.
7163 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7164 Set array_len and new_pos correctly.
7166 (_dbus_marshal_test):
7167 Remove debug output.
7169 * dbus/dbus-message-internal.h:
7170 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7171 New function that returns the reply serial.
7173 (_dbus_message_unlock):
7174 New function that unlocks a message and resets its header.
7176 (dbus_message_append_string_array),
7177 (dbus_message_get_fields_valist),
7178 (dbus_message_iter_get_field_type),
7179 (dbus_message_iter_get_string_array),
7180 (dbus_message_get_fields),
7181 (dbus_message_append_fields_valist):
7182 Handle string arrays.
7184 (dbus_message_set_sender):
7185 Make this function public since the bus daemon needs it.
7187 (decode_header_data):
7188 Set the reply serial to -1 initially.
7190 * dbus/dbus-message.h:
7191 Add dbus_message_set_sender.
7193 2003-01-24 Havoc Pennington <hp@pobox.com>
7195 * doc/dbus-specification.sgml: add some stuff
7197 2003-01-22 Havoc Pennington <hp@pobox.com>
7199 * doc/dbus-specification.sgml: Start to document the protocol.
7201 2003-01-22 Havoc Pennington <hp@pobox.com>
7203 * dbus/dbus-connection.c
7204 (dbus_connection_send_message_with_reply_and_block): add some @todo
7206 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7208 2003-01-21 Havoc Pennington <hp@pobox.com>
7210 (patch untested because can't compile)
7212 * bus/driver.c (create_unique_client_name): make this function
7213 never recycle client names. Also, caller should initialize
7216 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7218 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7220 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7221 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7222 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7223 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7224 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7225 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7226 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7227 * dbus/dbus-marshal.h:
7228 * dbus/dbus-protocol.h:
7229 Add support for marshalling and demarshalling integer, double
7232 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7237 * bus/connection.c: (connection_disconnect_handler):
7238 Remove the connection from the bus driver's list.
7240 (connection_watch_callback): Dispatch messages.
7242 (free_connection_data): Free connection name.
7244 (bus_connection_setup): Add connection to the bus driver's list.
7245 (bus_connection_remove_owned_service):
7246 (bus_connection_set_name), (bus_connection_get_name):
7247 Add functions for setting and getting the connection's name.
7250 Add function headers.
7252 * bus/driver.c: (create_unique_client_name),
7253 (bus_driver_handle_hello_message),
7254 (bus_driver_send_welcome_message), (bus_driver_message_handler),
7255 (bus_driver_add_connection), (bus_driver_remove_connection):
7258 * bus/services.c: (bus_service_free):
7260 New file that handles communication and registreation with the bus
7263 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7265 * dbus/dbus-connection.c: (dbus_connection_send_message):
7266 Add a new client_serial parameter.
7268 (dbus_connection_send_message_with_reply):
7269 Remove a @todo since we've implemented the blocking function.
7271 (dbus_connection_send_message_with_reply_and_block):
7272 New function that sends a message and waits for a reply and
7273 then returns the reply.
7275 * dbus/dbus-connection.h:
7278 * dbus/dbus-errors.c: (dbus_result_to_string):
7279 * dbus/dbus-errors.h:
7280 Add new DBUS_RESULT.
7282 * dbus/dbus-message-internal.h:
7283 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7284 (_dbus_message_set_sender), (dbus_message_write_header),
7285 (dbus_message_new_reply), (decode_header_data),
7286 (_dbus_message_loader_return_buffer), (_dbus_message_test):
7287 * dbus/dbus-message.h:
7288 Add new functions that set the reply serial and sender.
7289 Also marshal and demarshal them correctly and add test.
7291 * dbus/dbus-protocol.h:
7292 Add new DBUS_MESSAGE_TYPE_SENDER.
7295 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7296 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7297 (dbus_connection_hookup_with_g_main):
7298 * glib/test-dbus-glib.c: (main):
7299 Rewrite to use GIOChannel and remove the GSource crack.
7301 * test/echo-client.c: (main):
7302 * test/watch.c: (check_messages):
7303 Update for changed APIs
7305 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7307 * dbus/Makefile.am: Add dbus-timeout.[cħ]
7309 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7310 Create a DBusTimeoutList.
7311 (dbus_connection_set_timeout_functions): Add new function to
7312 set timeout callbacks
7314 * dbus/dbus-connection.h: Add public DBusTimeout API.
7316 * dbus/dbus-message.c: (dbus_message_get_service):
7317 * dbus/dbus-message.h: New function.
7319 * dbus/dbus-server.c: Fix small doc typo.
7321 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7323 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7325 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7326 of the string, just as long as specified.
7328 2003-01-19 Havoc Pennington <hp@pobox.com>
7330 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7333 * dbus/dbus-server.c (dbus_server_set_max_connections)
7334 (dbus_server_get_max_connections, dbus_server_get_n_connections):
7335 keep track of current number of connections, and add API for
7336 setting a max (but haven't implemented enforcing the max yet)
7338 2003-01-18 Havoc Pennington <hp@pobox.com>
7340 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7341 reading/writing if read_watch != NULL or write_watch != NULL.
7343 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7344 the message loader code to actually load message->header and
7345 message->body into the newly-created message.
7347 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7350 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7351 (dbus_connection_get_max_message_size)
7352 (dbus_connection_set_max_live_messages_size)
7353 (dbus_connection_get_max_live_messages_size): implement some
7354 resource limitation functions
7356 * dbus/dbus-resources.c: new file implementing some of the
7357 resource limits stuff
7359 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7360 missing docs, add @todo to handle OOM etc.
7362 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7365 2003-01-18 Havoc Pennington <hp@pobox.com>
7367 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7368 connection if it hasn't been already.
7370 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7371 replace with DisconnectFunction.
7373 2003-01-18 Havoc Pennington <hp@pobox.com>
7375 Building --disable-verbose-mode --disable-asserts --disable-tests
7376 cuts the library from 112K to 45K or so
7378 * configure.in: check for varargs macro support,
7379 add --enable-verbose-mode, --enable-asserts.
7381 * dbus/dbus-internals.h (_dbus_assert): support
7383 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7385 2003-01-18 Havoc Pennington <hp@pobox.com>
7387 * dbus/dbus-test.c: include config.h so that tests actually run
7389 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7390 so the failure mode when that assumption fails will be plenty
7393 2003-01-18 Havoc Pennington <hp@pobox.com>
7395 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7397 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7400 * test/Makefile.am: don't use special variable "TESTS" for echo-*
7401 since we don't want to use those in make check
7403 2003-01-15 Havoc Pennington <hp@redhat.com>
7409 2003-01-15 Havoc Pennington <hp@redhat.com>
7411 * test/Makefile.am: fix so that test source code ends up in the
7412 distribution on make distcheck
7414 2003-01-15 Havoc Pennington <hp@redhat.com>
7420 2003-01-15 Havoc Pennington <hp@redhat.com>
7422 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7423 fix build when --disable-tests
7425 * Makefile.am (EXTRA_DIST): put HACKING in here
7427 * HACKING: document procedure for making a tarball release.
7429 2003-01-14 Anders Carlsson <andersca@codefactory.se>
7431 * bus/connection.c: (connection_error_handler),
7432 (bus_connection_setup):
7433 * bus/main.c: (main):
7434 Make sure that the DBusConnectionData struct is NULLed
7435 out to prevent a segfault.
7437 * dbus/dbus-errors.c: (dbus_result_to_string):
7438 * dbus/dbus-errors.h:
7439 * dbus/dbus-message.c: (dbus_message_get_fields),
7440 (dbus_message_get_fields_valist), (_dbus_message_test):
7441 * dbus/dbus-message.h:
7442 Make dbus_message_get_fields return a result code so we can
7443 track invalid fields as well as oom.
7445 2003-01-11 Havoc Pennington <hp@pobox.com>
7447 * configure.in: change --enable-test/--enable-ansi action-if-given
7448 to enable_foo=$enableval instead of enable_foo=yes
7450 2003-01-08 Havoc Pennington <hp@pobox.com>
7452 * dbus/dbus-string.c (_dbus_string_align_length): new function
7454 * dbus/dbus-test-main.c: move main() for test app here
7456 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7457 symbol to run tests, because dbus-test isn't in the main
7460 Code review nitpicks.
7462 * dbus/dbus-message.c (dbus_message_write_header): add newlines
7463 for people with narrow emacs ;-). Assert client_serial was filled
7464 in. Assert message->name != NULL.
7465 (dbus_message_append_fields): have "first_field_type" arg separate
7466 from va list, needed for C++ binding that also uses varargs IIRC
7467 and helps with type safety
7468 (dbus_message_new): add @todo about using DBusString to store
7469 service/name internally
7470 (dbus_message_new): don't leak ->service and ->name on OOM later
7472 (dbus_message_unref): free the service name
7473 (dbus_message_get_fields): same change to varargs
7474 i.e. first_field_type
7475 (_dbus_message_loader_return_buffer): assert that the message data
7476 is aligned (if not it's a bug in our code). Put in verbose griping
7477 about why we set corrupted = TRUE.
7478 (decode_header_data): add FIXME that char* is evil. Was going to
7479 add FIXME about evil locale-specific string.h strncmp, but just
7480 switched to wacky string-as-uint32 optimization. Move check for
7481 "no room for field name" above get_const_data_len() to avoid
7482 assertion failure in get_const_data_len if we have trailing 2
7483 bytes or the like. Check for service and name fields being
7484 provided twice. Don't leak service/name on error. Require field
7485 names to be aligned to 4 bytes.
7487 * dbus/dbus-marshal.c: move byte swap stuff to header
7488 (_dbus_pack_int32): uscore-prefix
7489 (_dbus_unpack_int32): uscore-prefix
7490 (_dbus_unpack_uint32): export
7491 (_dbus_demarshal_string): add @todo complaining about use of
7493 (_dbus_marshal_get_field_end_pos): add @todo about bad error
7494 handling allowing corrupt data to go unchecked
7496 2003-01-08 Havoc Pennington <hp@redhat.com>
7498 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7499 to the select() as needed for authentication. (should be using
7500 _dbus_poll() not select, but for another day)
7502 * dbus/dbus.h: include dbus/dbus-protocol.h
7504 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7506 * dbus/Makefile.am (dbusinclude_HEADERS): Install
7509 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7511 * dbus/dbus-internals.c: (_dbus_type_to_string):
7512 New function that returns a string describing a type.
7514 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7515 * dbus/dbus-marshal.h:
7516 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7517 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7518 (dbus_message_iter_get_byte_array):
7519 * dbus/dbus-message.h:
7520 Add new convenience functions for appending and getting message fields.
7521 Also add demarshalling routines for byte arrays.
7523 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7525 * dbus/dbus-connection-internal.h:
7526 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7527 (_dbus_connection_get_next_client_serial),
7528 (dbus_connection_send_message):
7529 * dbus/dbus-internals.h:
7530 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7531 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7532 (_dbus_marshal_uint32), (_dbus_demarshal_double),
7533 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7534 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7535 (_dbus_verbose_bytes), (_dbus_marshal_test):
7536 * dbus/dbus-marshal.h:
7537 * dbus/dbus-message-internal.h:
7538 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7539 (dbus_message_write_header), (_dbus_message_lock),
7540 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7541 (dbus_message_get_name), (dbus_message_append_int32),
7542 (dbus_message_append_uint32), (dbus_message_append_double),
7543 (dbus_message_append_string), (dbus_message_append_byte_array),
7544 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7545 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7546 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7547 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7548 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7549 (decode_header_data), (_dbus_message_loader_return_buffer),
7550 (message_iter_test), (_dbus_message_test):
7551 * dbus/dbus-message.h:
7552 * dbus/dbus-protocol.h:
7553 * dbus/dbus-test.c: (main):
7555 * glib/test-dbus-glib.c: (message_handler), (main):
7556 * test/echo-client.c: (main):
7557 * test/watch.c: (check_messages):
7558 Make messages sendable and receivable for real.
7560 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7562 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7563 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7564 * dbus/dbus-message.c: (dbus_message_append_int32),
7565 (dbus_message_append_uint32), (dbus_message_append_double),
7566 (dbus_message_append_string), (dbus_message_append_byte_array):
7567 Handle OOM restoration.
7569 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7571 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7572 (_dbus_demarshal_string), (_dbus_marshal_test):
7573 * dbus/dbus-marshal.h:
7574 * dbus/dbus-message.c: (dbus_message_get_name),
7575 Document these functions.
7577 (dbus_message_append_int32), (dbus_message_append_uint32),
7578 (dbus_message_append_double), (dbus_message_append_string),
7579 (dbus_message_append_byte_array):
7580 * dbus/dbus-message.h:
7581 Add functions for adding message fields of different types.
7583 * dbus/dbus-protocol.h:
7584 Add the different types.
7586 2003-01-05 Havoc Pennington <hp@pobox.com>
7588 * bus/connection.c: implement routines for handling connections,
7589 first thing is keeping a list of owned services on each connection
7590 and setting up watches etc.
7592 * bus/services.c: implement a mapping from service names to lists
7595 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7597 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7598 to use static mutexes for global data
7600 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7601 collection of functions to set/get application-specific data
7602 on the DBusConnection.
7604 2003-01-04 Havoc Pennington <hp@pobox.com>
7606 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7607 (_dbus_poll): new function
7609 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7612 * bus/loop.c: initial code for the daemon main loop
7614 2003-01-04 Havoc Pennington <hp@pobox.com>
7616 * test/watch.c (error_handler): make it safe if the error handler
7617 is called multiple times (if we s/error handler/disconnect
7618 handler/ we should just guarantee it's called only once)
7620 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7621 error handler on disconnect (it's quite possible we should
7622 just change the error handler to a "disconnect handler," I'm
7623 not sure we have any other meaningful errors)
7625 * configure.in: check for getpwnam_r
7627 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7628 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7629 mechanism as in SASL spec, using socket credentials
7631 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7632 (_dbus_send_credentials_unix_socket): new function
7634 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7636 (_dbus_write): only check errno if <0 returned
7637 (_dbus_write_two): ditto
7639 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7641 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7642 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7643 (_dbus_marshal_test):
7644 * dbus/dbus-marshal.h:
7645 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7646 to _dbus_marshal_utf8_string. Also fix some tests.
7648 2002-12-28 Harri Porten <porten@kde.org>
7650 * configure.in: added check for C++ compiler and a very cheesy
7651 check for the Qt integration
7653 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7655 * qt/Makefile.am: added
7657 * qt/.cvsignore: added
7659 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7660 latter, added #ifdef QT_THREAD_SUPPORT guard.
7662 * dbus/Makefile.am: added missing headers for make dist
7664 2002-12-28 Kristian Rietveld <kris@gtk.org>
7666 * dbus/Makefile.am: fixup export-symbols-regex.
7668 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7670 * acinclude.m4: Add this file and put the
7671 PKG_CHECK_MODULE macro in it.
7673 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7675 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7676 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7677 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7678 (_dbus_marshal_test):
7679 Make the demarshalling routines align the pos argument.
7680 Add string marshalling tests and fix the obvious bugs
7683 2002-12-26 Havoc Pennington <hp@pobox.com>
7685 * dbus/dbus-auth.c: fixes fixes fixes
7687 * dbus/dbus-transport-unix.c: wire up support for
7688 encoding/decoding data on the wire
7690 * dbus/dbus-auth.c (_dbus_auth_encode_data)
7691 (_dbus_auth_decode_data): append to target string
7692 instead of nuking it.
7694 2002-12-26 Havoc Pennington <hp@pobox.com>
7696 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7697 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7700 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7701 avoid swap_bytes() overhead (ignoring possible assembly stuff for
7702 now). Main point is because I wanted unpack_uint32 to implement
7704 (_dbus_verbose_bytes): new function
7706 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7708 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7709 mechanism to handle a corrupt message stream
7710 (_dbus_message_loader_new): fix preallocation to only prealloc,
7713 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7714 (_dbus_string_test): enhance tests for copy/move and fix the
7717 * dbus/dbus-transport-unix.c: Hold references in more places to
7718 avoid reentrancy problems
7720 * dbus/dbus-transport.c: ditto
7722 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7723 leak reference count in no-message case
7725 * test/watch.c (do_mainloop): handle adding/removing watches
7726 during iteration over the watches. Also, ref the connection/server
7727 stored on a watch, so we don't try to mangle a destroyed one.
7729 * dbus/dbus-transport-unix.c (do_authentication): perform
7732 * dbus/dbus-auth.c (get_state): add a state
7733 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7734 (_dbus_auth_get_unused_bytes): append the unused bytes
7735 to the passed in string, rather than prepend
7737 * dbus/dbus-transport.c (_dbus_transport_init_base): create
7738 the auth conversation DBusAuth
7740 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
7741 (_dbus_transport_new_for_domain_socket): when creating a
7742 transport, pass in whether it's a client-side or server-side
7743 transport so we know which DBusAuth to create
7745 2002-12-03 Havoc Pennington <hp@pobox.com>
7747 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
7748 _after_ finalizing the derived members
7749 (unix_connection_set): unref watch if we fail to add it
7751 * dbus/dbus-connection.c (dbus_connection_unref): delete the
7752 transport first, so that the connection owned by the
7753 transport will be valid as the transport finalizes.
7755 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
7756 if necessary, and remove watches from the connection.
7758 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
7760 2002-12-26 Anders Carlsson <andersca@codefactory.se>
7762 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7763 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7764 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7765 (_dbus_marshal_test):
7766 * dbus/dbus-marshal.h:
7767 Add string marshal functions and have the demarshal functions
7768 return the new position.
7770 2002-12-25 Havoc Pennington <hp@pobox.com>
7772 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
7773 it is a simple protocol that just maps directly to SASL.
7775 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
7776 initial implementation, not actually used yet.
7778 * dbus/dbus-string.c (_dbus_string_find): new function
7779 (_dbus_string_equal): new function
7780 (_dbus_string_base64_encode): new function
7781 (_dbus_string_base64_decode): new function
7783 2002-12-25 Anders Carlsson <andersca@codefactory.se>
7786 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
7787 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7788 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7789 (_dbus_demarshal_uint32), (_dbus_marshal_test):
7790 * dbus/dbus-marshal.h:
7791 * dbus/dbus-protocol.h:
7792 * dbus/dbus-test.c: (main):
7794 Add un-optimized marshalling/demarshalling routines.
7796 2002-12-25 Harri Porten <porten@kde.org>
7798 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
7800 2002-12-24 Zack Rusin <zack@kde.org>
7802 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
7803 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
7806 2002-12-24 Havoc Pennington <hp@pobox.com>
7808 * glib/dbus-gthread.c: fix include
7810 * glib/dbus-glib.h: rename DBusMessageHandler for now.
7811 I think glib API needs to change, though, as you don't
7812 want to use DBusMessageFunction, you want to use the
7813 DBusMessageHandler object. Probably
7814 dbus_connection_open_with_g_main_loop()
7815 and dbus_connection_setup_g_main_loop() or something like that
7816 (but think of better names...) that just create a connection
7817 that has watch/timeout functions etc. already set up.
7819 * dbus/dbus-connection.c
7820 (dbus_connection_send_message_with_reply): new function just to
7821 show how the message handler helps us deal with replies.
7823 * dbus/dbus-list.c (_dbus_list_remove_last): new function
7825 * dbus/dbus-string.c (_dbus_string_test): free a string that
7828 * dbus/dbus-hash.c: use memory pools for the hash entries
7829 (rebuild_table): be more paranoid about overflow, and
7830 shrink table when we can
7831 (_dbus_hash_test): reduce number of sprintfs and write
7832 valid C89. Add tests for case where we grow and then
7833 shrink the hash table.
7835 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
7837 * dbus/dbus-connection.c (dbus_connection_register_handler)
7838 (dbus_connection_unregister_handler): new functions
7840 * dbus/dbus-message.c (dbus_message_get_name): new
7842 * dbus/dbus-list.c: fix docs typo
7844 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
7845 an object representing a handler for messages.
7847 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7850 * glib/dbus-gthread.c: (dbus_gthread_init):
7851 Don't use the gdbus prefix for public functions.
7853 2002-12-16 Anders Carlsson <andersca@codefactory.se>
7857 Add GLib checks and fixup .pc files
7861 * glib/dbus-gmain.c: (gdbus_connection_prepare),
7862 (gdbus_connection_check), (gdbus_connection_dispatch),
7863 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
7864 (dbus_connection_gsource_new):
7865 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
7866 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
7867 * glib/test-dbus-glib.c: (message_handler), (main):
7870 2002-12-15 Harri Porten <porten@kde.org>
7872 * autogen.sh: check for libtoolize before attempting to use it
7874 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
7877 * .cvsignore: ignore more stamp files
7879 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
7881 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
7882 without make install.
7884 2002-12-15 Havoc Pennington <hp@pobox.com>
7886 * dbus/dbus-threads.c: add thread stubs that a higher library
7887 layer can fill in. e.g. the GLib wrapper might fill them in with
7888 GThread stuff. We still need to use this thread API to
7889 thread-safe-ize the library.
7891 2002-12-12 Havoc Pennington <hp@pobox.com>
7893 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
7894 below new interfaces and include fewer system headers.
7896 * dbus/dbus-sysdeps.c (_dbus_read): new function
7897 (_dbus_write): new function
7898 (_dbus_write_two): new function
7899 (_dbus_connect_unix_socket): new function
7900 (_dbus_listen_unix_socket): new function
7902 * dbus/dbus-message-internal.h: change interfaces to use
7905 2002-12-11 Havoc Pennington <hp@pobox.com>
7907 * dbus/dbus-types.h: add dbus_unichar
7909 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
7911 * dbus/dbus-connection.c (dbus_connection_send_message): return
7914 * dbus/dbus-transport.c: include dbus-watch.h
7916 * dbus/dbus-connection.c: include dbus-message-internal.h
7918 * HACKING: add file with coding guidelines stuff.
7920 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
7921 handling here, for security purposes (as in vsftpd). Not actually
7922 using this class yet.
7924 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
7925 system/libc usage here, as in vsftpd, for ease of auditing (and
7926 should also simplify portability). Haven't actually moved all the
7927 system/libc usage into here yet.
7929 2002-11-25 Havoc Pennington <hp@pobox.com>
7931 * dbus/dbus-internals.c (_dbus_verbose): fix to not
7932 always print the first verbose message.
7934 2002-11-24 Havoc Pennington <hp@pobox.com>
7936 * test/echo-client.c, test/echo-server.c: cheesy test
7939 * configure.in (AC_CHECK_FUNCS): check for writev
7941 * dbus/dbus-message.c (_dbus_message_get_network_data): new
7944 * dbus/dbus-list.c (_dbus_list_foreach): new function
7946 * dbus/dbus-internals.c (_dbus_verbose): new function
7948 * dbus/dbus-server.c, dbus/dbus-server.h: public object
7949 representing a server that listens for connections.
7951 * dbus/.cvsignore: create
7953 * dbus/dbus-errors.h, dbus/dbus-errors.c:
7954 public API for reporting errors
7956 * dbus/dbus-connection.h, dbus/dbus-connection.c:
7957 public object representing a connection that
7958 sends/receives messages. (Same object used for
7959 both client and server.)
7961 * dbus/dbus-transport.h, dbus/dbus-transport.c:
7962 Basic abstraction for different kinds of stream
7963 that we might read/write messages from.
7965 2002-11-23 Havoc Pennington <hp@pobox.com>
7967 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7970 * dbus/dbus-test.c (main): add list test, and include
7971 dbus-test.h as intended
7973 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7974 (_dbus_hash_table_remove_int): return value indicates
7975 whether the entry existed to remove
7977 * dbus/dbus-list.c: add linked list utility class,
7980 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7983 2002-11-23 Havoc Pennington <hp@pobox.com>
7985 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7986 DBUS_END_DECLS to nothing, that should fix this once and for all
7988 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7990 * dbus/dbus-message.c, dbus/dbus-hash.c:
7991 add some missing @brief
7993 2002-11-23 Havoc Pennington <hp@pobox.com>
7995 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
7996 to avoid confusing Doxygen
7998 * dbus/dbus-hash.c: @} not }@
8000 * dbus/dbus-message.c (struct DBusMessage): split out
8003 2002-11-23 Havoc Pennington <hp@pobox.com>
8005 * configure.in: pile on more warning flags if using gcc
8007 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8008 to document static functions
8010 * configure.in: add summary to end of configure so it
8011 looks nice and attractive
8013 * dbus/dbus-hash.c: finish implementation and write unit
8016 * configure.in: add --enable-tests to enable unit tests
8018 * dbus/dbus-test.c: test program to run unit tests
8019 for all files in dbus/*, initially runs a test for
8022 * dbus/dbus-internals.h: file to hold some internal utility stuff
8024 2002-11-22 Havoc Pennington <hp@redhat.com>
8026 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8027 "ported" away from Tcl
8029 * dbus/dbus-types.h: header for types such as dbus_bool_t
8031 2002-11-22 Havoc Pennington <hp@redhat.com>
8033 * dbus/dbus.h: fixups for doc warnings
8035 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8037 (QUIET): make it quiet so we can see warnings
8039 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8041 2002-11-22 Havoc Pennington <hp@redhat.com>
8043 * Makefile.am: include "Doxyfile" target in all-local
8045 * configure.in: generate the Doxyfile
8047 * Doxyfile.in: move Doxyfile here, so we can use
8048 configure to generate a Doxyfile with the right
8051 2002-11-22 Havoc Pennington <hp@redhat.com>
8053 * dbus/dbus-message.c: move inline docs into .c file
8055 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8056 so all docs are under doc/
8057 (MAN_EXTENSION): generate man pages. Use extension
8058 ".3dbus" which matches ".3qt" on my system,
8059 I guess this is OK, I don't know really.
8060 (FILE_PATTERNS): look for .c files not .h, makes sense
8063 2002-11-22 Havoc Pennington <hp@pobox.com>
8065 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8066 because any app can be a server, and any app can be a client,
8067 the bus is a special kind of server.
8069 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
8071 * Doxyfile : adding. Still needs Makefile rules to be generated
8072 automatically (just run "doxygen" in the toplevel dir for now to
8075 * dbus/dbus-message.h : Adding sample docs (javadoc since
8076 resembles gtk-doc a little more)
8078 * dbus/dbus.h : Adding sample docs
8080 2002-11-21 Havoc Pennington <hp@redhat.com>
8082 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8083 so we can allow ourselves to include files directly,
8084 instead of having to use dbus.h
8086 * dbus/dbus.h: fill in
8088 * dbus/dbus-message.h: sketch out a sample header file.
8089 Include griping if you include it directly instead of
8092 * dbus/dbus-macros.h: new file with macros for extern "C",
8093 TRUE/FALSE, NULL, etc.
8095 * doc/file-boilerplate.c: put include guards in here
8097 2002-11-21 Havoc Pennington <hp@redhat.com>
8099 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8101 * COPYING: include the GPL as well, and license code
8102 under both AFL and GPL.
8104 2002-11-21 Havoc Pennington <hp@redhat.com>
8106 * acconfig.h: get rid of this
8108 * autogen.sh (run_configure): add --no-configure option
8110 * configure.in: remove AC_ARG_PROGRAM to make
8111 autoconf complain less. add AC_PREREQ.
8112 add AC_DEFINE third arg.
8114 2002-11-21 Anders Carlsson <andersca@codefactory.se>
8117 Fix references so we can distcheck.
8119 2002-11-21 Havoc Pennington <hp@redhat.com>
8121 * Initial module creation