1. 21 Mar, 2003 1 commit
  2. 17 Mar, 2003 1 commit
    • Havoc Pennington's avatar
      2003-03-16 Havoc Pennington <hp@pobox.com> · b4a1100f
      Havoc Pennington authored
      	* dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
      	the watch
      
      	* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
      	add some missing dbus_set_result
      
      	* bus/dispatch.c (bus_dispatch_add_connection): handle failure to
      	alloc the DBusMessageHandler
      
      	* dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
      	the transport here, since we call this from the finalizer; it
      	resulted in a double-finalize.
      
      	* dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
      	where we tried to use transport->connection that was NULL,
      	happened when transport was disconnected early on due to OOM
      
      	* bus/*.c: adapt to handle OOM for watches/timeouts
      
      	* dbus/dbus-transport-unix.c: port to handle OOM during
      	watch handling
      
      	* dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
      	reference to unused bytes instead of a copy
      
      	* dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
      	out of memory
      
      	* dbus/dbus-connection.c (dbus_connection_handle_watch): return
      	FALSE on OOM
      
      	* dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
      	of memory
      b4a1100f
  3. 16 Mar, 2003 1 commit
    • Havoc Pennington's avatar
      2003-03-16 Havoc Pennington <hp@pobox.com> · ebb57e71
      Havoc Pennington authored
      	* dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
      	this. always run the test suite before commit...
      
      	* bus/*: adapt to DBusConnection API changes
      
      	* glib/dbus-gmain.c: adapt to DBusConnection API changes,
      	requires renaming stuff to avoid dbus_connection_dispatch name
      	conflict.
      
      	* dbus/dbus-transport.c (_dbus_transport_queue_messages): new
      	function
      
      	* dbus/dbus-message.c (_dbus_message_loader_queue_messages):
      	separate from _dbus_message_loader_return_buffer()
      
      	* dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
      	this, because it's now always broken to use; the number of
      	messages in queue vs. the number still buffered by the message
      	loader is undefined/meaningless. Should use
      	dbus_connection_get_dispatch_state().
      	(dbus_connection_dispatch): rename from
      	dbus_connection_dispatch_message
      ebb57e71
  4. 15 Mar, 2003 1 commit
    • Havoc Pennington's avatar
      2003-03-15 Havoc Pennington <hp@pobox.com> · f587ce78
      Havoc Pennington authored
      	Make it pass the Hello handling test including all OOM codepaths.
      	Now to do other messages...
      
      	* bus/services.c (bus_service_remove_owner): fix crash when
      	removing owner from an empty list of owners
      	(bus_registry_ensure): don't leave service in the list of
      	a connection's owned services if we fail to put the service
      	in the hash table.
      
      	* bus/connection.c (bus_connection_preallocate_oom_error): set
      	error flag on the OOM error.
      
      	* dbus/dbus-connection.c (_dbus_connection_new_for_transport):
      	handle _dbus_transport_set_connection failure
      
      	* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
      	to create watches up front and simply enable/disable them as
      	needed.
      	(unix_connection_set): this can now fail on OOM
      
      	* dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
      	of enabling/disabling a watch or timeout.
      
      	* bus/loop.c (bus_loop_iterate): don't touch disabled
      	watches/timeouts
      
      	* glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
      f587ce78
  5. 14 Mar, 2003 1 commit
    • Havoc Pennington's avatar
      2003-03-13 Havoc Pennington <hp@redhat.com> · 3bea9353
      Havoc Pennington authored
      	* dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
      	out of memory
      
      	* dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
      	of memory
      
      	* dbus/dbus-connection.h: Make AddWatchFunction and
      	AddTimeoutFunction return a bool so they can fail on out-of-memory
      
      	* bus/bus.c (bus_context_new): set up timeout handlers
      
      	* bus/connection.c (bus_connections_setup_connection): set up
      	timeout handlers
      
      	* glib/dbus-gmain.c: adapt to the fact that set_functions stuff
      	can fail
      
      	* bus/bus.c (bus_context_new): adapt to changes
      
      	* bus/connection.c: adapt to changes
      
      	* test/watch.c: adapt to DBusWatch changes
      
      	* bus/dispatch.c (bus_dispatch_test): started adding this but
      	didn't finish
      3bea9353
  6. 13 Mar, 2003 1 commit
    • Havoc Pennington's avatar
      2003-03-12 Havoc Pennington <hp@redhat.com> · 29560adc
      Havoc Pennington authored
              Mega-patch that gets the message bus daemon initially handling
      	out-of-memory. Work still needed. Also lots of random
      	moving stuff to DBusError instead of ResultCode.
      
      	* dbus/dbus-list.c (_dbus_list_length_is_one): new function
      
      	* dbus/dbus-connection.c
      	(dbus_connection_send_with_reply_and_block): use DBusError
      
      	* dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
      	DBusResultCode
      
      	* dbus/dbus-connection.c (dbus_connection_send): drop the result
      	code here, as the only failure possible is OOM.
      
      	* bus/connection.c (bus_connection_disconnect):
      	rename bus_connection_disconnected as it's a notification only
      
      	* bus/driver.c (bus_driver_handle_acquire_service): don't free
      	"name" on get_args failure, should be done by get_args;
      	don't disconnect client for bad args, just return an error.
      	(bus_driver_handle_service_exists): ditto
      
      	* bus/services.c (bus_services_list): NULL-terminate returned array
      
      	* bus/driver.c (bus_driver_send_service_lost)
      	(bus_driver_send_service_acquired): send messages from driver to a
      	specific client to the client's unique name, not to the broadcast
      	service.
      
      	* dbus/dbus-message.c (decode_header_data): reject messages that
      	contain no name field
      	(_dbus_message_get_client_serial): rename to
      	dbus_message_get_serial and make public
      	(_dbus_message_set_serial): rename from set_client_serial
      	(_dbus_message_set_reply_serial): make public
      	(_dbus_message_get_reply_serial): make public
      
      	* bus/connection.c (bus_connection_foreach): allow stopping
      	iteration by returning FALSE from foreach function.
      
      	* dbus/dbus-connection.c (dbus_connection_send_preallocated)
      	(dbus_connection_free_preallocated_send)
      	(dbus_connection_preallocate_send): new API for sending a message
      	without possibility of malloc failure.
      	(dbus_connection_send_message): rename to just
      	dbus_connection_send (and same for whole function family)
      
      	* dbus/dbus-errors.c (dbus_error_free): make this reinit the error
      
      	* dbus/dbus-sysdeps.c (_dbus_exit): new function
      
      	* bus/activation.c: handle/return errors
      
      	* dbus/dbus-errors.h: add more DBUS_ERROR #define
      
      	* dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
      	(_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
      	(_dbus_result_from_errno): move to this file
      29560adc
  7. 26 Feb, 2003 1 commit
    • Alexander Larsson's avatar
      2003-02-26 Alexander Larsson <alexl@redhat.com> · 89e6dfd2
      Alexander Larsson authored
      	* configure.in:
      	Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
      
      	* dbus/dbus-connection.c:
      	* dbus/dbus-connection.h:
      	Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
      	Add dbus_connection_set_wakeup_main_function and use it when queueing
      	incoming and outgoing messages.
      
      
      	* dbus/dbus-dataslot.c:
      	Threadsafe usage of DBusDataSlotAllocator
      
      	* dbus/dbus-message.c: (dbus_message_get_args_iter):
      	dbus_new can fail.
      
      	* dbus/dbus-server-unix.c:
      	Add todo comment
      
      	* glib/dbus-gmain.c:
      	Implement the new wakeup functions for glib.
      
      	* glib/Makefile.am:
      	* glib/test-thread-client.c:
      	* glib/test-thread-server.c:
      	* glib/test-thread.h:
      	Initial cut at some thread test code. Not really done yet.
      89e6dfd2
  8. 16 Feb, 2003 1 commit
    • Havoc Pennington's avatar
      2003-02-16 Havoc Pennington <hp@pobox.com> · 4a8a03ae
      Havoc Pennington authored
      	* dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
      	allow people to avoid setting SIGPIPE to SIG_IGN
      	(_dbus_connection_new_for_transport): disable SIGPIPE unless
      	we've been asked not to
      4a8a03ae
  9. 15 Feb, 2003 1 commit
    • Alexander Larsson's avatar
      2003-02-15 Alexander Larsson <alexl@redhat.com> · fe401894
      Alexander Larsson authored
      	* dbus/dbus-threads.c:
      	* dbus/dbus-threads.h:
      	Add condvars. Remove static mutext from API.
      	Implement static mutexes by initializing them from threads_init.
      
      	* glib/dbus-gthread.c:
      	* qt/dbus-qthread.cpp:
      	Update with the thread api changes.
      
      
      	* dbus/dbus-list.c:
      	* dbus/dbus-list.h:
      	Turn StaticMutex into normal mutex + init function.
      	Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
      	_dbus_list_append_link, _dbus_list_prepend_link
      
      
      	* dbus/dbus-sysdeps.c:
      	* dbus/dbus-sysdeps.h:
      	New type dbus_atomic_t, and new functions _dbus_atomic_inc,
      	_dbus_atomic_dec. Only slow fallback implementation at the moment.
      
      	* dbus/dbus-protocol.h:
      	Add DBUS_MESSAGE_LOCAL_DISCONNECT define
      
      	* dbus/dbus-message.c:
      	Make ref/unref atomic.
      	Fix some docs.
      
      	* dbus/dbus-connection-internal.h:
      	* dbus/dbus-connection.c:
      	* dbus/dbus-connection.h:
      	Make threadsafe.
      	Change _peek to _borrow,_return & _steal_borrowed.
      	Change disconnect callback to event.
      	Make dbus_connection_dispatch_messages reentrant.
      
      	* dbus/dbus-transport.c:
      	Don't ref the connection on calls to the transport
      	implementation.
      
      	* dbus/dbus-message-handler.c:
      	Make threadsafe.
      
      	* glib/dbus-gmain.c:
      	Don't use peek_message anymore
      
      	* test/Makefile.am:
      	* test/debug-thread.c:
      	* test/debug-thread.h:
      	Simple thread implementation that asserts() on deadlocks in
      	single-threaded code.
      
      	* test/bus-test.c:
      	(main) Call debug_threads_init.
      
      	* test/watch.c:
      	Use disconnect message instead of disconnect callback.
      
      	* bus/connection.c:
      	* bus/connection.h:
      	Don't call dbus_connection_set_disconnect_function. Instead export
      	bus_connection_disconnect.
      
      	* bus/dispatch.c:
      	Call bus_connection_disconnect when we get a disconnected message.
      fe401894
  10. 21 Jan, 2003 1 commit
    • Anders Carlsson's avatar
      2003-01-21 Anders Carlsson <andersca@codefactory.se> · 4a85d321
      Anders Carlsson authored
      	* dbus/dbus-connection.c: (dbus_connection_send_message):
      	Add a new client_serial parameter.
      
      	(dbus_connection_send_message_with_reply):
      	Remove a @todo since we've implemented the blocking function.
      
      	(dbus_connection_send_message_with_reply_and_block):
      	New function that sends a message and waits for a reply and
      	then returns the reply.
      
      	* dbus/dbus-connection.h:
      	Add new functions.
      
      	* dbus/dbus-errors.c: (dbus_result_to_string):
      	* dbus/dbus-errors.h:
      	Add new DBUS_RESULT.
      
      	* dbus/dbus-message-internal.h:
      	* dbus/dbus-message.c: (_dbus_message_get_reply_serial),
      	(_dbus_message_set_sender), (dbus_message_write_header),
      	(dbus_message_new_reply), (decode_header_data),
      	(_dbus_message_loader_return_buffer), (_dbus_message_test):
      	* dbus/dbus-message.h:
      	Add new functions that set the reply serial and sender.
      	Also marshal and demarshal them correctly and add test.
      
      	* dbus/dbus-protocol.h:
      	Add new DBUS_MESSAGE_TYPE_SENDER.
      
      	* glib/dbus-glib.h:
      	* glib/dbus-gmain.c: (watch_callback), (free_callback_data),
      	(add_watch), (remove_watch), (add_timeout), (remove_timeout),
      	(dbus_connection_hookup_with_g_main):
      	* glib/test-dbus-glib.c: (main):
      	Rewrite to use GIOChannel and remove the GSource crack.
      
      	* test/echo-client.c: (main):
      	* test/watch.c: (check_messages):
      	Update for changed APIs
      4a85d321
  11. 19 Jan, 2003 3 commits
    • Anders Carlsson's avatar
      2003-01-19 Anders Carlsson <andersca@codefactory.se> · f0dbc1bd
      Anders Carlsson authored
      	* dbus/Makefile.am: Add dbus-timeout.[cħ]
      
      	* dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
      	Create a DBusTimeoutList.
      	(dbus_connection_set_timeout_functions): Add new function to
      	set timeout callbacks
      
      	* dbus/dbus-connection.h: Add public DBusTimeout API.
      
      	* dbus/dbus-message.c: (dbus_message_get_service):
      	* dbus/dbus-message.h:	New function.
      
      	* dbus/dbus-server.c: Fix small doc typo.
      
      	* dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
      f0dbc1bd
    • Havoc Pennington's avatar
      2003-01-19 Havoc Pennington <hp@pobox.com> · 14cc2707
      Havoc Pennington authored
      	* dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
      	new function
      
      	* dbus/dbus-server.c (dbus_server_set_max_connections)
      	(dbus_server_get_max_connections, dbus_server_get_n_connections):
      	keep track of current number of connections, and add API for
      	setting a max (but haven't implemented enforcing the max yet)
      14cc2707
    • Havoc Pennington's avatar
      2003-01-18 Havoc Pennington <hp@pobox.com> · 502fbda2
      Havoc Pennington authored
      	* dbus/dbus-transport-unix.c (unix_do_iteration): only do the
      	reading/writing if read_watch != NULL or write_watch != NULL.
      
      	* dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
      	the message loader code to actually load message->header and
      	message->body into the newly-created message.
      
      	* dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
      	in OOM case
      
      	* dbus/dbus-connection.c (dbus_connection_set_max_message_size)
      	(dbus_connection_get_max_message_size)
      	(dbus_connection_set_max_live_messages_size)
      	(dbus_connection_get_max_live_messages_size): implement some
      	resource limitation functions
      
      	* dbus/dbus-resources.c: new file implementing some of the
      	resource limits stuff
      
      	* dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
      	missing docs, add @todo to handle OOM etc.
      
      	* dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
      	docs
      502fbda2
  12. 18 Jan, 2003 1 commit
    • Havoc Pennington's avatar
      2003-01-18 Havoc Pennington <hp@pobox.com> · 0363701c
      Havoc Pennington authored
      	* dbus/dbus-connection.c (dbus_connection_unref): disconnect the
      	connection if it hasn't been already.
      
      	* dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
      	replace with DisconnectFunction.
      0363701c
  13. 06 Jan, 2003 1 commit
    • Havoc Pennington's avatar
      2003-01-05 Havoc Pennington <hp@pobox.com> · 96a9f803
      Havoc Pennington authored
      	* bus/connection.c: implement routines for handling connections,
      	first thing is keeping a list of owned services on each connection
      	and setting up watches etc.
      
      	* bus/services.c: implement a mapping from service names to lists
      	of connections
      
      	* dbus/dbus-hash.c: add DBUS_HASH_POINTER
      
      	* dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
      	to use static mutexes for global data
      
      	* dbus/dbus-connection.c (dbus_connection_set_data): add new
      	collection of functions to set/get application-specific data
      	on the DBusConnection.
      96a9f803
  14. 24 Dec, 2002 1 commit
    • Havoc Pennington's avatar
      2002-12-24 Havoc Pennington <hp@pobox.com> · 17fbe2b7
      Havoc Pennington authored
      	* glib/dbus-gthread.c: fix include
      
      	* glib/dbus-glib.h: rename DBusMessageHandler for now.
      	I think glib API needs to change, though, as you don't
      	want to use DBusMessageFunction, you want to use the
      	DBusMessageHandler object. Probably
      	dbus_connection_open_with_g_main_loop()
      	and dbus_connection_setup_g_main_loop() or something like that
      	(but think of better names...) that just create a connection
      	that has watch/timeout functions etc. already set up.
      
      	* dbus/dbus-connection.c
      	(dbus_connection_send_message_with_reply): new function just to
      	show how the message handler helps us deal with replies.
      
      	* dbus/dbus-list.c (_dbus_list_remove_last): new function
      
      	* dbus/dbus-string.c (_dbus_string_test): free a string that
      	wasn't
      
      	* dbus/dbus-hash.c: use memory pools for the hash entries
      	(rebuild_table): be more paranoid about overflow, and
      	shrink table when we can
      	(_dbus_hash_test): reduce number of sprintfs and write
      	valid C89. Add tests for case where we grow and then
      	shrink the hash table.
      
      	* dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
      
      	* dbus/dbus-connection.c (dbus_connection_register_handler)
      	(dbus_connection_unregister_handler): new functions
      
      	* dbus/dbus-message.c (dbus_message_get_name): new
      
      	* dbus/dbus-list.c: fix docs typo
      
      	* dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
      	an object representing a handler for messages.
      17fbe2b7
  15. 25 Nov, 2002 1 commit
    • Havoc Pennington's avatar
      2002-11-24 Havoc Pennington <hp@pobox.com> · 041b0767
      Havoc Pennington authored
              * test/echo-client.c, test/echo-server.c: cheesy test
      	clients.
      
      	* configure.in (AC_CHECK_FUNCS): check for writev
      
      	* dbus/dbus-message.c (_dbus_message_get_network_data): new
      	function
      
      	* dbus/dbus-list.c (_dbus_list_foreach): new function
      
      	* dbus/dbus-internals.c (_dbus_verbose): new function
      
      	* dbus/dbus-server.c, dbus/dbus-server.h: public object
      	representing a server that listens for connections.
      
      	* dbus/.cvsignore: create
      
      	* dbus/dbus-errors.h, dbus/dbus-errors.c:
      	public API for reporting errors
      
      	* dbus/dbus-connection.h, dbus/dbus-connection.c:
      	public object representing a connection that
      	sends/receives messages. (Same object used for
      	both client and server.)
      
      	* dbus/dbus-transport.h, dbus/dbus-transport.c:
      	Basic abstraction for different kinds of stream
      	that we might read/write messages from.
      041b0767