Commit graph

1974 commits

Author SHA1 Message Date
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
63a1458aaf Seperating integration with D-BUS from Connection to the internal Integrator
class. I simply hated the interfaces in the public Connection when it
had to contain a bunch of friends and protected members that were never
really meant to be seen.
2003-11-24 05:21:12 +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
Zack Rusin
6ce25713db Coding on dbus is like christmas. Just without christmas tree, presents, santa
clause, shopping, food, cookies, carrols, eggs, bunnies, trick or treating,
smoking crack... I don't quite remember where I was going with this
but we're getting closer.
2003-11-23 20:41:23 +00:00
Zack Rusin
c8881d8a35 1) switching d-pointer names to just Private
2) starting workin on the connection binding
3) trying to find clean socks,
committing the first two, the third one is hopeless
2003-11-23 08:35:48 +00:00
Zack Rusin
ff619e44a3 Happy birthday to me, happy birthday to me... Well, it's not really
my birthday, but it will be in like 8 months and for such a huge celebration
I want to start preparing rather early.
The marshelling in Message is crap (not the good kind of crap either). I'm
not yet sure how we'll handle the transition from dcop but for now lets
at least make it sane api wise.
2003-11-23 08:20:47 +00:00
Zack Rusin
3b70a35657 Match kde schematics 2003-11-23 08:07:04 +00:00
Zack Rusin
cc4d55177e thanksgiving break, lets start working on those bindings. 2003-11-23 08:02:38 +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
10faede1ee add missing file 2003-10-21 14:05:19 +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
9f2d0d86bb Fix makefile.am 2003-10-15 11:56:12 +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
b704a068a9 - the pending reply tracking isn't quite right. It currently simply
blocks any reply if one wasn't pending. Instead, it needs to
   allow any reply if one was pending, and block otherwise.
   Suggest changing the check_reply() call to just get a boolean
   was_pending_reply value, pass that in to the policy
   engine, and allow <allow>/<deny> elements to match based on
   whether it was a pending reply.
2003-10-14 05:22:22 +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
4803523d26 my cvs add fu is really bad lately... 2003-10-12 15:35:23 +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
c9c84cd9a1 cvs add... 2003-10-11 16:02:38 +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
Havoc Pennington
79d03f94fe 2003-10-02 Havoc Pennington <hp@pobox.com>
* glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
	dbus_gproxy_oneway_call

	* glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
	(dbus_server_setup_with_g_main): fix to allow calling them more
	than once on the same args
	(dbus_bus_get_with_g_main): new function
2003-10-03 03:55:35 +00:00
Havoc Pennington
dbffb38790 tweak 2003-10-02 22:55:06 +00:00
Havoc Pennington
f44c036718 tutorial hacking 2003-10-02 22:49:11 +00:00
Havoc Pennington
05e7b44f44 2003-10-02 Havoc Pennington <hp@redhat.com>
* doc/dbus-tutorial.xml: write some stuff
2003-10-02 22:34:17 +00:00
Havoc Pennington
78b69c683e 2003-09-29 Havoc Pennington <hp@pobox.com>
* configure.in: split checks for Doxygen from XML docs, check for
	xmlto

	* doc/Makefile.am: XML-ify all the docs, and add a blank
	dbus-tutorial.xml
2003-09-30 03:34:00 +00:00