1. 15 Jan, 2005 1 commit
    • Havoc Pennington's avatar
      2005-01-15 Havoc Pennington <hp@redhat.com> · 9c3d566e
      Havoc Pennington authored
      	* Land the new message args API and type system.
      
      	This patch is huge, but the public API change is not
      	really large. The set of D-BUS types has changed somewhat,
      	and the arg "getters" are more geared toward language bindings;
      	they don't make a copy, etc.
      
      	There are also some known issues. See these emails for details
      	on this huge patch:
      	http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
              http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
      
      	* dbus/dbus-marshal-*: all the new stuff
      
      	* dbus/dbus-message.c: basically rewritten
      
      	* dbus/dbus-memory.c (check_guards): with "guards" enabled, init
      	freed blocks to be all non-nul bytes so using freed memory is less
      	likely to work right
      
      	* dbus/dbus-internals.c (_dbus_test_oom_handling): add
      	DBUS_FAIL_MALLOC=N environment variable, so you can do
      	DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
      	DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
      	thorough.
      
      	* qt/message.cpp: port to the new message args API
      	(operator<<): use str.utf8() rather than str.unicode()
      	(pretty sure this is right from the Qt docs?)
      
      	* glib/dbus-gvalue.c: port to the new message args API
      
      	* bus/dispatch.c, bus/driver.c: port to the new message args API
      
      	* dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
      	"locked" flag to TRUE and align_offset to 0; I guess we never
      	looked at these anyhow, but seems cleaner.
      
      	* dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
      	move allocation padding macro to this header; use it to implement
      	(_DBUS_STRING_STATIC): ability to declare a static string.
      
      	* dbus/dbus-message.c (_dbus_message_has_type_interface_member):
      	change to return TRUE if the interface is not set.
      
      	* dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
      	to dbus-marshal-validate.[hc]
      
      	* dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
      	dbus-internals.c
      
      	* dbus/Makefile.am: cut over from dbus-marshal.[hc]
      	to dbus-marshal-*.[hc]
      
      	* dbus/dbus-object-tree.c (_dbus_decompose_path): move this
      	function here from dbus-marshal.c
      9c3d566e
  2. 10 Aug, 2004 1 commit
  3. 17 May, 2004 2 commits
    • Kristian Høgsberg's avatar
      * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to · c614e5b4
      Kristian Høgsberg authored
      	filter against auth->allowed_mechs; we only add allowed mechs in
      	record_mechanisms().
      
       	* dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
      	ALLOWED_MECHS to auth-script format so we can set the list of
      	allowed mechanisms.
      
       	* data/auth/client-out-of-mechanisms.auth-script: New test to
      	check client disconnects when it is out of mechanisms to try.
      
       	* dbus/dbus-auth.c (process_command): Remove check for lines
      	longer that 1 MB; we only buffer up maximum 16 kB.
      
       	* dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
      	dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
      	Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
      	assume there might be unused bytes.
      
       	* dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
      	client-out-of-mechs, it is handled in process_reject(). Move check
      	for max failures to send_rejected(), as it's a server-only thing.
      c614e5b4
    • Kristian Høgsberg's avatar
      2004-05-17 Kristian Høgsberg <krh@redhat.com> · d86fc407
      Kristian Høgsberg authored
      	Remove base64 encoding, replace with hex encoding. Original patch
      	from trow@ximian.com, added error handling.
      
      	* dbus/dbus-string.c (_dbus_string_base64_encode)
      	(_dbus_string_base64_decode): Remove.
      	(_dbus_string_hex_decode): Add end_return argument so we can
      	distinguish between OOM and invalid hex encoding.
      	(_dbus_string_test): Remove base64 tests and add test case for
      	invalid hex.
      
      	* dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
      	Replace base64 with hex.
      
      	* test/data/auth/invalid-hex-encoding.auth-script: New test case
      	for invalid hex encoded data in auth protocol.
      d86fc407
  4. 02 Dec, 2003 1 commit
  5. 05 May, 2003 1 commit
    • Havoc Pennington's avatar
      2003-05-04 Havoc Pennington <hp@pobox.com> · d1c7eefb
      Havoc Pennington authored
      	* dbus/dbus-message-handler.c (_dbus_message_handler_test): add
      	unit test
      
      	* dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
      	function, which assumed length was in # of strings, not bytes
      
      	* dbus/dbus-message.c (_dbus_message_test): add tests for some
      	missing coverage
      
      	* dbus/dbus-connection.c
      	(_dbus_connection_queue_received_message): disable function for
      	now, we are only using it in test mode
      
      	* dbus/dbus-message.c (_dbus_message_loader_queue_messages):
      	remove a mistaken FIXME
      d1c7eefb
  6. 17 Apr, 2003 1 commit
  7. 31 Mar, 2003 1 commit
    • Havoc Pennington's avatar
      2003-03-31 Havoc Pennington <hp@redhat.com> · fa05de92
      Havoc Pennington authored
              Fix some annoying DBusString API and fix all affected code.
      
      	* dbus/dbus-string.c (_dbus_string_init): get rid of annoying
      	max_length argument
      	(_dbus_string_get_data): change to return string instead of using
      	an out param
      	(_dbus_string_get_const_data): ditto
      	(_dbus_string_get_data_len): ditto
      	(_dbus_string_get_const_data_len): ditto
      fa05de92
  8. 17 Mar, 2003 2 commits
    • Havoc Pennington's avatar
      2003-03-17 Havoc Pennington <hp@pobox.com> · f7c24715
      Havoc Pennington authored
      	All tests pass, no memleaks, no valgrind complaints.
      
      	* bus/test.c: refcount handler_slot
      
      	* bus/connection.c (bus_connections_new): refcount
      	connection_data_slot
      
      	* dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
      	bytes so that auth scripts pass.
      
      	* bus/dispatch.c: init message_handler_slot so it gets allocated
      	properly
      
      	* bus/dispatch.c (message_handler_slot_ref): fix memleak
      
      	* dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
      	dealloc server_pipe_hash when no longer used for benefit of
      	leak checking
      
      	* dbus/dbus-auth.c (process_command): memleak fix
      
      	* bus/dispatch.c (check_hello_message): memleak fix
      f7c24715
    • 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
  9. 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
  10. 05 Mar, 2003 1 commit
    • Havoc Pennington's avatar
      2003-03-04 Havoc Pennington <hp@pobox.com> · 7e050c88
      Havoc Pennington authored
      	* test/data/auth/*: adapt to changes
      
      	* dbus/dbus-auth-script.c (_dbus_auth_script_run): add
      	USERID_BASE64 and change USERNAME_BASE64 to put in username not
      	userid
      
      	* dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
      	more stuff from being in a context name, to make the protocol
      	simpler to deal with
      
      	* dbus/dbus-errors.c (dbus_error_has_name): new function
      	(dbus_error_is_set): new function
      
      	* dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
      	with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
      
      	* dbus/dbus-connection.c (dbus_connection_flush): also read
      	messages during a flush operation
      
      	* dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
      7e050c88
  11. 19 Feb, 2003 1 commit
    • Havoc Pennington's avatar
      2003-02-19 Havoc Pennington <hp@pobox.com> · c21511c0
      Havoc Pennington authored
      	Throughout: mop up all the Doxygen warnings and undocumented
      	stuff.
      
      	* dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
      	to search any paths.
      
      	* dbus/dbus-threads.c: move global mutex initializers to
      	dbus-internals.h, multiple prototypes was confusing doxygen
      	besides being kind of ugly
      
      	* Doxyfile (PREDEFINED): have Doxygen define
      	DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
      	docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
      	(do not abuse the feature! it's for stuff like the autogenerated
      	macros in dbus-md5.c, not just for things you don't feel like
      	documenting...)
      c21511c0
  12. 13 Feb, 2003 3 commits
    • Havoc Pennington's avatar
      2003-02-13 Havoc Pennington <hp@pobox.com> · 5970d04a
      Havoc Pennington authored
      	* dbus/dbus-auth.c (handle_server_data_external_mech): args to
      	dbus_credentials_match were backward
      
      	* dbus/dbus-auth-script.c (_dbus_auth_script_run): support
      	NO_CREDENTIALS and ROOT_CREDENTIALS
      
      	* dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
      	into here. Never process more commands after we've reached an
      	end state; store further data as unused bytes.
      
      	* test/data/auth/*: add more auth tests
      
      	* dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
      	command to match exact string and EXPECT_UNUSED to match unused
      	bytes
      
      	* test/Makefile.am (dist-hook): fix to dist all the test stuff
      5970d04a
    • Havoc Pennington's avatar
      2003-02-12 Havoc Pennington <hp@pobox.com> · c9ea8fac
      Havoc Pennington authored
      	* dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
      	\r off of popped lines
      
      	* dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
      	scripts
      
      	* dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
      	SEND, append \r\n
      c9ea8fac
    • Havoc Pennington's avatar
      2003-02-10 Havoc Pennington <hp@pobox.com> · 3791dcca
      Havoc Pennington authored
              * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
      	initial cut at test framework for DBusAuth from laptop.
      	Doesn't quite work yet but it compiles and I need to get
      	it off the 266mhz laptop. ;-)
      
      	* dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
      	fix a memleak in error case
      3791dcca