Commit graph

516 commits

Author SHA1 Message Date
Havoc Pennington
a221eefadf 2004-03-27 Havoc Pennington <hp@redhat.com>
Patch from Timo Teräs:

	* tools/dbus-send.c (main): if --print-reply, assume type is
	method call; support boolean type args

	* dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
	bunch of memleak and logic bugs
2004-03-27 05:29:31 +00:00
Owen Fraser-Green
632d54e0db Added InterfaceProxy to Mono bindings to avoid having to generate a proxy for every registered object. Also added object_path functions to dbus-message. 2004-03-23 18:07:48 +00:00
Owen Fraser-Green
c916037773 First checkin of the Mono bindings. 2004-03-23 12:10:32 +00:00
Havoc Pennington
2195cf0dbd 2004-03-21 Havoc Pennington <hp@redhat.com>
* test/test-service.c (main): remove debug spew
2004-03-21 16:26:56 +00:00
Olivier Andrieu
eacb2afdc2 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
arrays

* dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
(dbus_message_iter_init_array_iterator)
(dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
indicate whether the iterator is empty

* dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
warnings
2004-03-21 13:42:23 +00:00
Havoc Pennington
4fd4d52dd6 2004-03-19 Havoc Pennington <hp@redhat.com>
* NEWS: 0.21 updates

	* configure.in: 0.21

	* doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED

	* python/Makefile.am: change to avoid dist of dbus_bindings.c so
	you don't need pyrex to make dist

	* qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
	sources; run moc
2004-03-19 22:36:31 +00:00
Richard Hult
69bf27e556 2004-03-18 Richard Hult <richard@imendio.com>
* dbus/dbus-message.c (dbus_message_get_auto_activation)
	(dbus_message_set_auto_activation): Add doxygen docs.
2004-03-18 11:10:59 +00:00
Richard Hult
93f433a17a 2004-03-16 Richard Hult <richard@imendio.com>
* bus/activation.c: (bus_activation_service_created),
	(bus_activation_send_pending_auto_activation_messages),
	(bus_activation_activate_service):
	* bus/activation.h:
	* bus/dispatch.c: (bus_dispatch),
	(check_nonexistent_service_auto_activation),
	(check_service_auto_activated),
	(check_segfault_service_auto_activation),
	(check_existent_service_auto_activation), (bus_dispatch_test):
	* bus/driver.c: (bus_driver_handle_activate_service):
	* bus/services.c: (bus_registry_acquire_service):
	* dbus/dbus-message.c: (dbus_message_set_auto_activation),
	(dbus_message_get_auto_activation):
	* dbus/dbus-message.h:
	* dbus/dbus-protocol.h: Implement auto-activation.
2004-03-16 18:00:35 +00:00
Olivier Andrieu
24ffe79c80 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
* dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
	fix a bug with CUSTOM types.

	* dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
	a unit test for this bug (used to fail).
2004-03-12 14:18:35 +00:00
Mikael Hallendal
520bdf704d 2004-03-12 Mikael Hallendal <micke@imendio.com>
* bus/activation.c:
	(babysitter_watch_callback): notify all pending activations waiting for
	  the same exec that the activation failed.
	(bus_activation_activate_service): shortcut the activation if we
	  already waiting for the same executable to start up.
2004-03-12 14:15:14 +00:00
Mikael Hallendal
dd79fc73f0 2004-03-12 Mikael Hallendal <micke@imendio.com>
* bus/activation.c:
	- Added service file reloading.
	  Each service files directory is kept in an hash table in
	  BusActivation and each BusActivationEntry knows what .service-file it
	  was read from. So when you try to activate a service the bus will
	  check if it's been updated, removed or if new .service-files has
	  been installed.
	- Test code at the bottom for the service file reloading.
	* bus/test-main.c: (main):
	* bus/test.h:
	- added service reloading test.
	* dbus/dbus-sysdeps.c:
	* dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
2004-03-12 14:07:16 +00:00
Michael Meeks
387510da64 2004-03-08 Michael Meeks <michael@ximian.com>
* dbus/dbus-connection.c (_dbus_connection_block_for_reply):
	bail immediately if disconnected, to avoid busy loop.
2004-03-08 10:59:20 +00:00
Michael Meeks
9d633977d1 2004-03-08 Michael Meeks <michael@ximian.com>
* dbus/dbus-message.c (dbus_message_iter_get_args_valist):
	cleanup cut/paste/inefficiency.
2004-03-08 10:29:16 +00:00
David Zeuthen
868dd4b4b0 2004-03-01 David Zeuthen <david@fubar.dk>
* dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
	bug where args were used twice. This bug resulted in a segfault
	on a Debian/PPC system when starting the messagebus daemon. Include
	dbus-sysdeps.h for DBUS_VA_COPY

	* dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib

	* configure.in: Check for va_copy; define DBUS_VA_COPY to the
	appropriate va_copy implementation. From GLib
2004-03-05 14:05:33 +00:00
Joe Shaw
47d8e53bfe 2004-02-24 Joe Shaw <joe@ximian.com>
* bus/services.c (bus_registry_acquire_service): We need to pass
	in the service name to dbus_set_error() to prevent a crash.
2004-02-24 19:50:25 +00:00
Anders Carlsson
f02a9001f2 2003-12-26 Anders Carlsson <andersca@gnome.org>
* AUTHORS: Reveal my True identity.
2003-12-26 21:41:22 +00:00
Mikael Hallendal
a9a28b7a6a 2003-12-17 Mikael Hallendal <micke@imendio.com>
* dbus/dbus-message.c: (dbus_message_append_args_valist):
	- Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
2003-12-17 12:24:33 +00:00
Mikael Hallendal
db400fed47 2003-12-13 Mikael Hallendal <micke@imendio.com>
* doc/TODO: Added not about better error check of configuration files.
2003-12-13 14:30:37 +00:00
Richard Hult
a1df3040f2 2003-12-02 Richard Hult <richard@imendio.com>
* Update AFL version to 2.0 throughout the source files to reflect
	the update that was done a while ago.
2003-12-02 10:44:22 +00:00
Richard Hult
8e1fc1d779 2003-12-02 Richard Hult <richard@imendio.com>
* dbus/dbus-message.c (dbus_message_iter_append_dict): Set
	wrote_dict_key to FALSE on the iter that the dict is appended to,
	just like when appending other types. Fixes a bug where a dict
	couldn't be put inside a dict.
	(dbus_message_iter_append_dict_key): Fix typo in warning message.
	(message_iter_test, _dbus_message_test): Add test case for dict
	inside dict.
2003-12-02 10:33:35 +00:00
David Zeuthen
3e77824dff 2003-12-01 David Zeuthen <david@fubar.dk>
* python/dbus.py: Add the actual message when calling the reciever
	of a signal such that parameters can be inspected. Add the method
	remove_signal_receiver
2003-12-01 20:49:53 +00:00
Mikael Hallendal
9f1a60dbba 2003-11-26 Mikael Hallendal <micke@imendio.com>
* bus/*.[ch]:
	* dbus/*.[ch]:
	* glib/*.[ch]: Made ref functions return the pointer
2003-11-27 01:25:50 +00:00
Zack Rusin
6d9f72b9e6 Adding DBusServer wrapper. Switching some thingies, looking pretty and
being cool... Anyway, we're done at a very basic level. I have to go back
to something else now, but i'll try to commit an example sometime soon.
2003-11-25 15:30:03 +00:00
Zack Rusin
27f6dca9ce As changelog says. Integration is pretty much there, so dbus should at least
use Qt for timeouts and watches comfortably now.
2003-11-24 19:11:55 +00:00
Zack Rusin
89d43511ec Updating changelog.
What sucks is the lack of automatic moc file creation in the configuration
system. Someone needs to copy over some of ours admin dir (and knowing life
that's probably going to be me).
2003-11-24 05:58:01 +00:00
Zack Rusin
fb1df4eaff "Zack, you're not updating ChangeLog"... Only because I chose not to and not
because i forgot.
It was a political statemant rising awerness of the fact that our ozone
layer is getting thiner. Glad you're with me on that one.
2003-11-23 20:58:16 +00:00
Havoc Pennington
221c07a435 2003-11-19 Havoc Pennington <hp@redhat.com>
* NEWS: update

        * configure.in: bump version to 0.20

	* configure.in (have_qt): add yet another place to look for qt
	(someone hand trolltech a .pc file...)
2003-11-19 21:51:09 +00:00
Havoc Pennington
d8beff11cd 2003-11-01 Havoc Pennington <hp@redhat.com>
* doc/dbus-specification.xml: add state machine docs on the auth
	protocol; just a first draft, I'm sure it's wrong.
2003-11-01 18:24:32 +00:00
Havoc Pennington
86351a1e3a 2003-10-28 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message.c (get_next_field): delete unused function
2003-10-29 00:29:52 +00:00
David Zeuthen
ddc560a9aa 2003-10-28 David Zeuthen <david@fubar.dk>
* python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
        return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
2003-10-29 00:06:07 +00:00
Havoc Pennington
bebc830fc4 2003-10-28 Havoc Pennington <hp@redhat.com>
* bus/expirelist.c (do_expiration_with_current_time): detect
	failure of the expire_func due to OOM

	* bus/connection.c (bus_pending_reply_expired): return FALSE on OOM

	* bus/dispatch.c (check_send_exit_to_service): fix to handle the
	NoReply error that's now created by the bus when the service exits
2003-10-28 23:51:24 +00:00
Havoc Pennington
e11ae72466 2003-10-28 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message.c (_dbus_message_test): enable and fix the
	tests for set_path, set_interface, set_member, etc.

	* dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes

	* dbus/dbus-message.c (set_string_field): always just delete and
	re-append the field; accept NULL for deletion
	(re_align_fields_recurse): reimplement
2003-10-28 22:53:36 +00:00
Havoc Pennington
a63411cb3d 2003-10-26 Havoc Pennington <hp@redhat.com>
* dbus/dbus-connection.c: fix docs to properly describe the
	disconnected message
	(_dbus_connection_notify_disconnected): remove this function;
	we can't synchronously add the disconnected message, we have to
	do it after we've queued any remaining real messages
	(_dbus_connection_get_dispatch_status_unlocked): queue the
	disconnect message only if the transport has finished queueing all
	its real messages and is disconnected.
	(dbus_connection_disconnect): update the dispatch status here
2003-10-26 15:36:15 +00:00
Havoc Pennington
eb9aa9da95 2003-10-22 Havoc Pennington <hp@redhat.com>
* bus/bus.c (bus_context_check_security_policy): fix up assertion

	* bus/connection.c (bus_transaction_send_from_driver): set the
	destination to the connection's base service
2003-10-22 16:01:08 +00:00
Havoc Pennington
7574224200 2003-10-20 Havoc Pennington <hp@redhat.com>
hmm, make check is currently not passing.

	* doc/dbus-specification.xml: add requirement that custom type
	names follow the same rules as interface names.

	* dbus/dbus-protocol.h: change some of the byte codes, to avoid
	duplication and allow 'c' to be 'custom'; dict is now 'm' for
	'map'

	* doc/dbus-specification.xml: update type codes to match
	dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
	CUSTOM. Add type OBJECT_PATH to the spec.

2003-10-17  Havoc Pennington  <hp@redhat.com>

	* bus/driver.c (create_unique_client_name): use "." as separator
	in base service names instead of '-'

	* dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
	byte at the end of the string

	* dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
	optimization macros since string validation seems to be a slow
	point.

	* doc/dbus-specification.xml: restrict valid
	service/interface/member/error names. Add test suite code for the
	name validation.

	* dbus/dbus-string.c: limit service/interface/member/error names
	to [0-9][A-Z][a-z]_

	* dbus/dbus-connection.c (dbus_connection_dispatch): add missing
	format arg to verbose spew

	* glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
	memory, return instead of g_error

	* test/test-service.c (path_message_func): support emitting a
	signal on request

	* dbus/dbus-bus.c (init_connections_unlocked): only fill in
	activation bus type if DBUS_BUS_ACTIVATION was set; default to
	assuming the activation bus was the session bus so that services
	started manually will still register.
	(init_connections_unlocked): fix so that in OOM situation we get
	the same semantics when retrying the function

	* test/test-service.c (main): change to use path registration, to
	test those codepaths; register with DBUS_BUS_ACTIVATION rather
	than DBUS_BUS_SESSION
2003-10-21 05:46:52 +00:00
Havoc Pennington
8a4d94fe70 2003-10-16 Havoc Pennington <hp@redhat.com>
* glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS

	* Makefile.am (GCOV_DIRS): remove "test", we don't care about test
	coverage of the tests
	(coverage-report.txt): don't move the .da and .bbg files around
2003-10-17 16:23:19 +00:00
Havoc Pennington
c20c4181f2 2003-10-16 Havoc Pennington <hp@redhat.com>
* bus/bus.c (struct BusContext): remove struct field I didn't mean
	to put there
2003-10-16 06:43:32 +00:00
Havoc Pennington
d6e1b2adb3 2003-10-16 Havoc Pennington <hp@redhat.com>
* bus/connection.c (bus_pending_reply_expired): either cancel or
	execute, not both
	(bus_connections_check_reply): use unlink, not remove_link, as we
	don't want to free the link; fixes double free mess

	* dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
	where no reply was received

	* dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
	fix a refcount leak

	* bus/signals.c (match_rule_matches): add special cases for the
	bus driver, so you can match on sender/destination for it.

	* dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
	DBUS_PRINT_BACKTRACE is set

	* dbus/dbus-internals.c: add pid to assertion failure messages

	* dbus/dbus-connection.c: add message type code to the debug spew

	* glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
	sender=foo not service=foo

	* dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
	session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
	DBUS_ACTIVATION_ADDRESS instead

	* bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
	DBUS_SYSTEM_BUS_ADDRESS if appropriate

	* bus/bus.c (bus_context_new): handle OOM copying bus type into
	context struct

	* dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
	(dbus_message_iter_get_object_path_array): new function (half
	finished, disabled for the moment)

	* glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
	DBUS_MESSAGE_TYPE_ERROR

	* tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
	avoid redirecting stderr to /dev/null
	(babysit): close stdin if not doing the "exit_with_session" thing

	* dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
	debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
	stdout/stdin, so things don't get confused

	* bus/system.conf.in: fix to allow replies, I modified .conf
	instead of .conf.in again.
2003-10-16 06:34:51 +00:00
David Zeuthen
9b9dd4b80e 2003-10-14 David Zeuthen <david@fubar.dk>
* python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
        argtype to arg_type when raising unknown arg type exception.
        Changed type list to reflect the changes in dbus-protocol.h so
        the bindings actually work.
2003-10-15 21:25:13 +00:00
Havoc Pennington
cd077dc8f2 2003-10-14 Havoc Pennington <hp@redhat.com>
* test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
	to have a bug keeping it from outputting the .da files sometimes
	(string_get_string): don't append garbage nul bytes to the string.
2003-10-15 21:09:40 +00:00
Seth Nickell
0612f348fd 2003-10-15 Seth Nickell <seth@gnome.org>
* python/Makefile.am:

	Include dbus_h_wrapper.h in the dist tarball.
2003-10-15 11:55:38 +00:00
Havoc Pennington
3251264ac4 2003-10-14 Havoc Pennington <hp@redhat.com>
* bus/bus.c (bus_context_check_security_policy): revamp this to
	work more sanely with new policy-based requested reply setup

	* bus/connection.c (bus_transaction_send_from_driver): set bus
	driver messages as no reply

	* bus/policy.c (bus_client_policy_check_can_receive): handle a
	requested_reply attribute on allow/deny rules

	* bus/system.conf: add <allow requested_reply="true"/>

	* bus/driver.c (bus_driver_handle_message): fix check for replies
	sent to the bus driver, which was backward. How did this ever work
	at all though? I think I'm missing something.

	* dbus/dbus-message.c (decode_header_data): require error and
	method return messages to have a reply serial field to be valid
	(_dbus_message_loader_queue_messages): break up this function;
	validate that reply serial and plain serial are nonzero;
	clean up the OOM/error handling.
	(get_uint_field): don't return -1 from this
	(dbus_message_create_header): fix signed/unsigned bug

	* bus/connection.c (bus_connections_expect_reply): save serial of
	the incoming message, not reply serial
2003-10-14 22:16:03 +00:00
Havoc Pennington
64f5ae1a79 2003-10-14 Havoc Pennington <hp@redhat.com>
* bus/connection.c: implement pending reply tracking using
	BusExpireList

	* bus/bus.c (bus_context_check_security_policy): verify that a
	reply is pending in order to allow a reply to be sent. Deny
	messages of unknown type.

	* bus/dbus-daemon-1.1.in: update to mention new resource limits

	* bus/bus.c (bus_context_get_max_replies_per_connection): new
	(bus_context_get_reply_timeout): new
2003-10-14 05:16:56 +00:00
Seth Nickell
bfb5de511c 2003-10-13 Seth Nickell <seth@gnome.org>
* python/Makefile.am:

	Pass "make distcheck": remove a couple files from DIST_FILES
	that weren't included in the final version.
2003-10-13 23:07:34 +00:00
Havoc Pennington
4097e94af3 2003-10-12 Havoc Pennington <hp@pobox.com>
Added test code that 1) starts an actual bus daemon and 2) uses
	DBusGProxy; fixed bugs that were revealed by the test. Lots
	more testing possible, but this is the basic framework.

	* glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
	empty proxy lists from the proxy list hash

	* dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
	couple of return_if_fail checks

	* dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
	to allocate, so everything is cleared to NULL as it should be.

	* glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
	source as data to dbus_connection_set_timeout_functions() as the
	timeout functions expected

	* test/glib/run-test.sh: add a little script to start up a message
	bus and run tests using it

	* tools/dbus-launch.1: updates

	* tools/dbus-launch.c (main): add --config-file option

	* tools/dbus-launch.c (main): remove confusing else if (runprog)
	that could never be reached.

	* dbus/dbus-message.c (dbus_message_new_method_return)
	(dbus_message_new_error, dbus_message_new_signal): set the
	no-reply-expected flag on all these. Redundant, but may
	as well be consistent.
2003-10-12 05:59:39 +00:00
Havoc Pennington
56cc4ae1a2 2003-10-11 Havoc Pennington <hp@pobox.com>
* test/decode-gcov.c (function_solve_graph): make broken block
	graph a nonfatal error since it seems to be broken. Need to debug
	this.

	* dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
	can't just check type > INVALID < LAST anymore

	* dbus/dbus-message.c (dbus_message_get_signature): new function
	(dbus_message_has_signature): new function
	(struct DBusMessage): add signature field (right now it isn't sent
	over the wire, just generated on the fly)
	(dbus_message_copy): copy the signature, and init strings to
	proper length to avoid some reallocs
	(dbus_message_iter_init_array_iterator): return void, since it
	can't fail
	(dbus_message_iter_init_dict_iterator): return void since it can't fail
	(_dbus_message_loader_queue_messages): add silly temporary hack to
	fill in message->signature on load

	* dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
	characters, so they are relatively human-readable.
2003-10-12 00:55:11 +00:00
Havoc Pennington
a4d928b7a0 fix changelog 2003-10-11 16:29:49 +00:00
Havoc Pennington
40751c847b 2003-10-11 Havoc Pennington <hp@pobox.com>
* dbus/dbus-message.c (_dbus_message_test): add more test
	coverage, but #if 0 for now since they uncover a bug
	not fixed yet; I think in re_align_field_recurse()
	(re_align_field_recurse): add FIXME about broken assertion

	* dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage

	* bus/connection.c: share a couple code bits with expirelist.c

	* bus/expirelist.h, bus/expirelist.c: implement a generic
	expire-items-after-N-seconds facility, was going to share between
	expiring connections and replies, decided not to use for expiring
	connections for now.

	* bus/connection.c: add tracking of expected replies

	* COPYING: include AFL 2.0 (still need to change all the file headers)
2003-10-11 06:20:28 +00:00
Havoc Pennington
c1f0e18903 2003-10-09 Havoc Pennington <hp@redhat.com>
* configure.in: define DBUS_HAVE_GCC33_GCOV if we have
	gcc 3.3. Not that we do anything about it yet.

	* bus/signals.c (bus_match_rule_parse): impose max length on the
	match rule text

	* dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2003-10-10 03:56:30 +00:00
Havoc Pennington
6a65f4802e 2003-10-09 Havoc Pennington <hp@redhat.com>
Make matching rules theoretically work (add parser).

	* bus/bus.c (bus_context_check_security_policy): fix up to handle
	the case where destination is explicitly specified as bus driver
	and someone else is eavesdropping.

	* bus/policy.c (bus_client_policy_check_can_receive): fix up
	definition of eavesdropping and assertion

	* tools/dbus-send.c (main): use dbus_message_type_from_string

	* bus/signals.c (bus_match_rule_parse): implement

	* dbus/dbus-message.c (dbus_message_type_from_string): new

	* dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2003-10-10 02:42:21 +00:00