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 2 commits
    • 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
    • Havoc Pennington's avatar
      2003-03-14 Havoc Pennington <hp@pobox.com> · 169238e9
      Havoc Pennington authored
      	* bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
      	transport, tests more of the real codepath. Set up clients
      	with bus_setup_debug_client.
      
      	* bus/test.c (bus_setup_debug_client): function to set up debug
      	"clients" on the main loop
      
      	* dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
      	support
      
      	* dbus/dbus-server.c (dbus_server_listen): add debug-pipe
      	server type
      
      	* dbus/dbus-server-debug.c: support a debug server based on pipes
      
      	* dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
      	(_dbus_close): new function
      
      	* configure.in: check for socketpair
      169238e9
  5. 04 Mar, 2003 1 commit
  6. 26 Feb, 2003 1 commit
    • Havoc Pennington's avatar
      2003-02-26 Havoc Pennington <hp@pobox.com> · 72654234
      Havoc Pennington authored
      	* dbus/dbus-connection.c
      	(dbus_connection_send_message_with_reply_and_block): fix crash
      	where we ref'd the outgoing message instead of the returned reply
      
      	* dbus/dbus-transport-unix.c (do_authentication): check read watch
      	at the end of this function, so if we didn't need to read for
      	authentication, we reinstall it for receiving messages
      
      	* dbus/dbus-message.c (dbus_message_new_reply): allow replies to
      	a NULL sender for peer-to-peer case
      
      	* dbus/dbus-transport-unix.c (check_read_watch): handle
      	!authenticated case correctly
      
      	* glib/dbus-gmain.c: add support for DBusServer
      
      	* dbus/dbus-server.c: add data slot support
      
      	* glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
      	return values and handle errors
      
      	* dbus/dbus-dataslot.c: factor out the data slot stuff from
      	DBusConnection
      
      	* Doxyfile.in (INPUT): add glib subdir
      
      	* glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
      	setup_with_g_main instead of hookup_with_g_main; write docs
      72654234
  7. 19 Feb, 2003 1 commit
    • Mikael Hallendal's avatar
      2003-02-19 Mikael Hallendal <micke@codefactory.se> · 6180d695
      Mikael Hallendal authored
      	* dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
      
      	* dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
      	Added to create a transport connecting using a tcp/ip socket.
      
      	* dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
      	to a tcp socket at given host and port.
      	(_dbus_listen_tcp_socket): added to listen on tcp socket for given
      	hostname and port.
      
      	* dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
      
      	* dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
      	Added to create a server listening on a TCP/IP socket.
      6180d695
  8. 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
  9. 01 Feb, 2003 1 commit
  10. 31 Jan, 2003 1 commit
    • Havoc Pennington's avatar
      2003-01-30 Havoc Pennington <hp@pobox.com> · 6fc53eb1
      Havoc Pennington authored
      	* dbus/dbus-server.c (dbus_server_listen): @todo about how we need
      	a better way to report errors here. e.g.  "unix address lacks
      	path" or something. also "no such file" when the path doesn't
      	exist, etc.
      
      	* dbus/dbus-address.c (dbus_address_entries_free): add @todo about
      	leaking list nodes
      	(dbus_parse_address): add @todo about documenting address format,
      	and allowing , and ; to be escaped
      6fc53eb1
  11. 30 Jan, 2003 1 commit
    • Anders Carlsson's avatar
      2003-01-30 Anders Carlsson <andersca@codefactory.se> · 5ebb5748
      Anders Carlsson authored
      	* dbus/Makefile.am:
      	Add dbus-address.[ch]
      
      	* dbus/dbus-address.c: (dbus_address_entry_free),
      	(dbus_address_entries_free), (create_entry),
      	(dbus_address_entry_get_method), (dbus_address_entry_get_value),
      	(dbus_parse_address), (_dbus_address_test):
      	* dbus/dbus-address.h:
      	New files for dealing with address parsing.
      
      	* dbus/dbus-connection.c:
      	Document timeout functions.
      
      	* dbus/dbus-message.c:
      	Document dbus_message_new_from_message.
      
      	* dbus/dbus-server-debug.c:
      	Document.
      
      	* dbus/dbus-server.c: (dbus_server_listen):
      	Parse address and use correct server implementation.
      
      	* dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
      	* dbus/dbus-string.h:
      	New function with test.
      
      	* dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
      	* dbus/dbus-test.h:
      	Add address tests.
      
      	* dbus/dbus-transport-debug.c:
      	Document.
      
      	* dbus/dbus-transport.c: (_dbus_transport_open):
      	Parse address and use correct transport implementation.
      5ebb5748
  12. 28 Jan, 2003 1 commit
    • Anders Carlsson's avatar
      2003-01-28 Anders Carlsson <set EMAIL_ADDRESS environment variable> · dec1fa3b
      Anders Carlsson authored
      	* dbus/dbus-connection-internal.h:
      	* dbus/dbus-connection.c: (_dbus_connection_add_timeout),
      	(_dbus_connection_remove_timeout):
      	Add functions for adding and removing timeouts.
      
      	* dbus/dbus-message.c: (dbus_message_new_from_message):
      	Add new function that takes a message and creates an exact
      	copy of it, but with the refcount set to 1.
      	(check_message_handling):
      	Fix build error.
      
      	* dbus/dbus-server-protected.h:
      	* dbus/dbus-server.c: (_dbus_server_init_base),
      	(_dbus_server_finalize_base), (_dbus_server_add_timeout),
      	(dbus_server_set_timeout_functions):
      	(_dbus_server_remove_timeout):
      	New functions so that a server can add and remove timeouts.
      
      	(dbus_server_listen):
      	Add commented out call to dbus_server_debug_new.
      
      	* dbus/dbus-timeout.c: (_dbus_timeout_new):
      	Actually set the handler, doh.
      
      	* dbus/dbus-transport.c: (_dbus_transport_open):
      	Add commented out call to dbus_transport_debug_client_new.
      
      	* dbus/Makefile.am:
      	Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
      dec1fa3b
  13. 19 Jan, 2003 1 commit
    • 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
  14. 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
  15. 04 Jan, 2003 1 commit
    • Havoc Pennington's avatar
      2003-01-04 Havoc Pennington <hp@pobox.com> · 01af5ff4
      Havoc Pennington authored
      	* test/watch.c (error_handler): make it safe if the error handler
      	is called multiple times (if we s/error handler/disconnect
      	handler/ we should just guarantee it's called only once)
      
      	* dbus/dbus-transport.c (_dbus_transport_disconnect): call the
      	error handler on disconnect (it's quite possible we should
      	just change the error handler to a "disconnect handler," I'm
      	not sure we have any other meaningful errors)
      
      	* configure.in: check for getpwnam_r
      
      	* dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
      	dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
      	mechanism as in SASL spec, using socket credentials
      
      	* dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
      	(_dbus_send_credentials_unix_socket): new function
      
      	* dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
      	dbus_accept()
      	(_dbus_write): only check errno if <0 returned
      	(_dbus_write_two): ditto
      01af5ff4
  16. 27 Dec, 2002 1 commit
    • Havoc Pennington's avatar
      2002-12-26 Havoc Pennington <hp@pobox.com> · ff5283ab
      Havoc Pennington authored
      	* dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
      	WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
      	doh
      
      	* dbus/dbus-marshal.c: Add macros to do int swapping in-place and
      	avoid swap_bytes() overhead (ignoring possible assembly stuff for
      	now). Main point is because I wanted unpack_uint32 to implement
      	_dbus_verbose_bytes
      	(_dbus_verbose_bytes): new function
      
      	* dbus/dbus-string.c (_dbus_string_validate_ascii): new function
      
      	* dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
      	mechanism to handle a corrupt message stream
      	(_dbus_message_loader_new): fix preallocation to only prealloc,
      	not prelengthen
      
      	* dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
      	(_dbus_string_test): enhance tests for copy/move and fix the
      	functions
      
      	* dbus/dbus-transport-unix.c: Hold references in more places to
      	avoid reentrancy problems
      
      	* dbus/dbus-transport.c: ditto
      
      	* dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
      	leak reference count in no-message case
      
      	* test/watch.c (do_mainloop): handle adding/removing watches
      	during iteration over the watches. Also, ref the connection/server
      	stored on a watch, so we don't try to mangle a destroyed one.
      
      	* dbus/dbus-transport-unix.c (do_authentication): perform
      	authentication
      
      	* dbus/dbus-auth.c (get_state): add a state
      	AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
      	(_dbus_auth_get_unused_bytes): append the unused bytes
      	to the passed in string, rather than prepend
      
      	* dbus/dbus-transport.c (_dbus_transport_init_base): create
      	the auth conversation DBusAuth
      
      	* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
      	(_dbus_transport_new_for_domain_socket): when creating a
      	transport, pass in whether it's a client-side or server-side
      	transport so we know which DBusAuth to create
      ff5283ab
  17. 12 Dec, 2002 1 commit
    • Havoc Pennington's avatar
      2002-12-11 Havoc Pennington <hp@pobox.com> · d4b870e7
      Havoc Pennington authored
      	* dbus/dbus-types.h: add dbus_unichar
      
      	* dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
      
      	* dbus/dbus-connection.c (dbus_connection_send_message): return
      	TRUE on success
      
      	* dbus/dbus-transport.c: include dbus-watch.h
      
      	* dbus/dbus-connection.c: include dbus-message-internal.h
      
      	* HACKING: add file with coding guidelines stuff.
      
      	* dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
      	handling here, for security purposes (as in vsftpd). Not actually
      	using this class yet.
      
      	* dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
      	system/libc usage here, as in vsftpd, for ease of auditing (and
      	should also simplify portability). Haven't actually moved all the
      	system/libc usage into here yet.
      d4b870e7
  18. 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