ChangeLog 325 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
2005-04-13  David Zeuthen  <davidz@redhat.com>

	* bus/selinux.c: Add c-file-style to top of file
	(log_audit_callback): Don't free the data here anymore
	(bus_selinux_check): Don't take spid and tpid since appending
	that to auxdata may OOM.
	(bus_selinux_allows_acquire_service): Handle OOM and signal back
	to the caller if we are OOM by taking an error object.
	(bus_selinux_allows_send): -do-

	* bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
	and bus_selinux_allows_send

	* bus/bus.c (bus_context_check_security_policy): Pass error and
	pass on OOM thrown by bus_selinux_allows_send()

	* bus/services.c (bus_registry_acquire_service): Pass error and
	pass on OOM thrown by bus_selinux_allows_acquire_service()

20 21 22 23 24 25
2005-04-13  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
	message at a time to avoid monopolizing the main loop, bug 
	#2953 from Benjamin Otte

26 27
2005-04-09  Havoc Pennington  <hp@redhat.com>

28 29 30 31 32 33 34 35
	* dbus/dbus-string.c (copy): change a memcpy to memmove due to
	possible overlap, fix from Daniel Reed
	(fixup_alignment): fix signedness warnings
	(_dbus_string_append_unichar): ditto

2005-04-09  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
36 37 38 39 40 41 42 43 44

	* glib/dbus-glib-tool.c (main): fix warning

	* glib/dbus-binding-tool-glib.c (generate_glue): fix warning

	* dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
	add a new function that can be used in simple applications that
	don't have a main loop and are willing to block

45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
2005-04-05  David Zeuthen  <davidz@redhat.com>

	Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889

	* glib/dbus-gmain.c:
	(io_handler_destroy_source): Remove from list of IO handlers
	of the ConnectionSetup object
	(timeout_handler_destroy_source): -do- for timeout handlers
	(io_handler_source_finalized): Don't remove from list since
	we now do that in io_handler_destroy_source(). Renamed from
	io_handler_source_destroyed
	(timeout_handler_source_destroyed): -do- for timeout handlers
	(connection_setup_free): It is now safe to iterate over all
	IO and timeout handlers as the _destroy_source removes them
	from the list synchronously

61 62 63 64 65 66 67 68
2005-03-30  Havoc Pennington  <hp@redhat.com>

	* configure.in: change check to gtk 2.4

	* tools/dbus-viewer.c (name_combo_changed_callback): remove
	gtk_combo_box_get_active_text() usage to decrement GTK requirement
	to 2.4

John Palmieri's avatar
John Palmieri committed
69 70 71 72 73 74 75
2005-03-29  John (J5) Palmieri  <johnp@redhat.com>

	* News: Update 0.32

	* HACKING: Fixed realease instructions.  configure.in should be updated to
	  the next release by the person who made the last release.

76 77 78 79 80 81 82
2005-03-29  John (J5) Palmieri  <johnp@redhat.com>

	* python/lvalue_cast_post_process.py - removed.  Patch has been
	  submitted to Pyrex maintainers that fixes gcc4.0 errors

	* python/Makefile.am: removed refrences to lvalue_cast_post_process.py

83 84 85 86 87
2005-03-24  Daniel Reed  <n@ml.org>

	* tools/Makefile.am: Make print-introspect and
	dbus-bus-introspect.xml building conditional on HAVE_GLIB.

88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
2005-03-22  John (J5) Palmieri  <johnp@redhat.com>

	* tools/Makefile.am: Patch by Colin Walters that fixes distcheck

	* dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
	  had in Red Hat packages for a while but for some reason never 
	  got merged upstream
	  (_dbus_is_a_number): New checks if a string
	  can be converted to a number and does the conversion if it can
	  (_dbus_user_database_lookup): Add check to see if the given username
	  is a udi.  This allows udi's to be used instead of usernames in the
	  config file.
	  (_dbus_user_database_lookup_group): Add check to see if the given groupname
	  is a gdi.  This allows gdi's to be used instead of groupnames in the
	  config file.

104 105 106 107 108 109 110 111 112
2005-03-21  John (J5) Palmieri  <johnp@redhat.com>

	* python/lvalue_cast_post_process.py - added post processor to fix Pyrex
	  code so that it compiles with gcc4.0

	* python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
	  run dbus_bindings.c through lvalue_cast_post_process.py and copy the
	  results back to dbus_binding.c

113 114 115 116 117 118
2005-03-20  Colin Walters  <walters@verbum.org>

	Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.

	* configure.in: Require GTK+ 2.6.
	
119 120 121 122
2005-03-20  Colin Walters  <walters@verbum.org>

	* Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.

123 124 125
2005-03-17  Tom Parker  <palfrey@tevp.net>

	* dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
126 127
	print DBUS_UID_UNSET; instead print passed username.  Also
	be sure to actually use gid looked up in cache.
128 129 130 131
	
	* dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
	for DBUS_GID_UNSET and groupname.

132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
2005-03-17  Colin Walters  <walters@verbum.org>

	* bus/print-introspect.c: Move to tools/.
	* bus/run-with-tmp-session-bus.sh: Ditto.
	
	* glib/Makefile.am (dbus-glib-bindings.h): Move
	generation to tools/Makefile.am.

	* test/glib/run-test.sh: Update to handle move
	of run-with-tmp-session-bus.sh.

	* test/glib/test-service-glib.c: Update to handle
	move of dbus-glib-bindings.h.

	* tools/print-introspect.c: Moved here
	from bus/, and ported to GLib bindings.

	* tools/run-with-tmp-session-bus.sh: Moved here
	from bus/.

	* tools/Makefile.am: Generate dbus-glib-bindings.h
	and dbus-bus-introspect.xml here.

	* tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
	Update.

Colin Walters's avatar
Colin Walters committed
158
2005-03-17  Colin Walters  <walters@verbum.org>
159 160 161 162 163 164 165 166 167 168

	* bus/driver.c (write_args_for_direction): Use
	_dbus_string_get_const_data to retrieve string;
	_dbus_string_get_const_data_len doesn't actually return
	a NULL-terminated substring.

	* test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
	(main): Change to use org_freedesktop_DBus_request_name
	instead of using g_proxy_begin_call/end_call.

169 170 171 172 173
2005-03-15  Joe Shaw  <joeshaw@novell.com>

	* mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
	generating the finalizer.  Fixes from Ben Maurer.

174 175
2005-03-12  Joe Shaw  <joeshaw@novell.com>

176 177 178
	* mono/BusDriver.cs: Update method names: ListServices
	becomes ListNames; GetOwner becomes GetNameOwner.

179 180 181
	* mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
	onto the eval stack when removing the delegate.

182
2005-03-12  Joe Shaw  <joeshaw@novell.com>
183 184 185

	* mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
	LT_CURRENT.  Set it to the autoconf variable.
186 187 188 189 190 191 192
                                                                                
	* mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
	classes that disconnects the signal handler delegate from the
	service object.  Fixes a big leak of proxy objects on the
	client side of things.  Patch from Ben Maurer
	<bmaurer@ximian.com>

193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
2005-03-12  Colin Walters  <walters@verbum.org>

	* bus/driver.c (write_args_for_direction): New function,
	parses a type signature into arguments and outputs to
	XML.
	(bus_driver_handle_introspect): Use it instead of
	hardcoding XML for certain signatures.
	
	* bus/Makefile.am (dbus-bus-introspect.xml): Add
	dependency on dbus-daemon.

	* glib/dbus-glib-tool.c (main): Parse ignore_unsupported
	argument, pass it to dbus_binding_tool_output_glib_client.

	* glib/dbus-binding-tool-glib.c
	(generate_client_glue): Protect against multiple inclusion.
	(dbus_binding_tool_output_glib_client): Add
	G_BEGIN_DECLS/G_END_DECLS.

	* glib/dbus-binding-tool-glib.c (compute_client_method_name):
	Change to just take iface prefix directly.
	(write_formal_parameters): Clarify error message.
	(check_supported_parameters): New function; checks to see type
	signatures of method parameters are supported.
	(generate_client_glue): Handle ignore_unsupported flag.
	(dbus_binding_tool_output_glib_client): Handle ignore_unsupported
	parameter.

	* glib/Makefile.am (dbus-glib-bindings.h): Pass
	--ignore-unsupported by default until glib bindings
	support arrays.

225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245
2005-03-11  Colin Walters  <walters@verbum.org>

	* glib/Makefile.am: Generate dbus-glib-bindings.h and
	install it.

	* bus/print-introspect.c: New file; prints introspection
	data for a given name and object path.

	* bus/run-with-tmp-session-bus.sh: New file, refactored
	from test/glib/run-test.sh.  Creates a temporary session
	bus and runs another program.

	* test/glib/run-test.sh: Refactor to invoke
	run-with-tmp-session-bus.sh.

	* bus/driver.c (bus_driver_handle_introspect): Fix to print new
	introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
	macros instead of hardcoding.

	* glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.

246 247 248 249 250 251 252
2005-03-11  Joe Shaw  <joeshaw@novell.com>

	* dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
	this unref; it doesn't match up evenly in some codepaths.
	(_dbus_connection_block_pending_call): Unref at every exitpoint;
	this evenly matches with the ref near the top of this function.

253 254 255 256 257 258 259
2005-03-09  Joe Shaw  <joeshaw@novell.com>

	* dbus/dbus-object-tree.c
	(_dbus_object_tree_unregister_and_unlock): If checks are enabled
	and we try to unregister a path that's not registered, still go
	through the process of unlocking and don't just return.

260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314
2005-03-09  Colin Walters  <walters@verbum.org>

	* glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
	to this are generated for client-side wrappers.  Invokes a
	D-BUS method and returns reply values.  

	* glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
	function; writes signature string for argument direction.
	(write_args_for_direction): Change to pass input values directly
	instead of via address, and fix indentation.
	(generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
	make generated wrappers inlineable.

	* dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
	note about using dbus_type_is_fixed.

	* dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
	dbus/dbus-signature.c as dbus_type_is_fixed.

	All callers updated.

	* dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
	from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.

	* dbus/dbus-signature.h: Prototype.

	* glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
	error printf code.

	* test/glib/test-dbus-glib.c (main): Be sure to clear error as
	appropriate instead of just freeing it.
	(main): Free returned strings using g_free.

	* test/glib/Makefile.am (test-service-glib-glue.h)
	(test-service-glib-bindings.h): Add dependency on dbus-binding-tool.

	* glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
	simply maps a simple D-BUS type to GType.
	(dbus_dbus_type_to_gtype): Function which maps D-BUS type to
	GType.
	(dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
	initialize the value with it.
	(dbus_gvalue_binding_type_from_type): Unused, delete.
	(dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
	various types instead of unmarshalling to value data directly.
	Remove can_convert boolean.
	(dbus_gvalue_marshal): Remove duplicate initialization; switch to
	returning directly instead of using can_convert boolean.
	(dbus_gvalue_store): New function; not related to D-BUS per-se.
	Stores a GValue in a pointer to a value of its corresponding C
	type.

	* glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
	add dbus_gvalue_store.

315
2005-03-08  Joe Shaw  <joeshaw@novell.com>
316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369

	Fix a bunch of lifecycle and memory management problems
	in the mono bindings.

	* mono/Arguments.cs (Arguments): Implement IDisposable

	* mono/Bus.cs (Bus): Don't allow public instantiation.  This is
	strictly a static class.

	* mono/Connection.cs: Move the DBusObjectPathVTable and associated
	delegates into this file.
	(Connection): Implement IDisposable.
	(Dispose): Disconnect the connection and set the raw connection
	pointer to IntPtr.Zero.
	(~Connection): Call Dispose().
	(RegisterObjectPath): Added.  Manages the registration of object
	paths so we can cleanly disconnect them at dispose/finalize time.
	(UnregisterObjectPath): Ditto.
	(set_RawConnection): Unregister all of the object paths when
	changing the underlying DBusConnection.  Add them back onto the
	new connection, if any.

	* mono/Handler.cs: Don't implement IDisposable; it doesn't use any
	more unmanaged resources anymore, so it's not necessary.  Move all
	the DBusObjectPathVTable stuff out of here.
	(Handler): Save references to our delegates so that they don't get
	finalized.  Call Connection.RegisterObjectPath() instead of
	dbus_connection_register_object_path() directly.
	(Message_Called): Dispose the message after we're finished with
	it.

	* mono/Message.cs (Message): Implement IDisposable.
	(Dispose): Dispose the Arguments, and set the RawMessage to
	IntPtr.Zero.
	(SendWithReplyAndBlock): We own the ref to the reply that comes
	back from dbus_connection_send_with_reply_and_block() so add a
	comment about that and unref it after we've constructed a managed
	MethodReturn class around it.  Fixes a big, big leak.

	* mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
	method.
	(BuildSignalHandler): After we've sent the Signal message, dispose
	of it.
	(BuildMethod): Dispose of the method call and reply messages after
	we've sent the message and extracted the data we want from the
	reply.

	* mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
	anymore.
	(Service_FilterCalled): Dispose of the message after we're
	finished with it.

2005-03-08  Joe Shaw  <joeshaw@novell.com>

370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387
        * dbus/dbus-connection.c (dbus_connection_send_with_reply):
        After we attach our pending call to the connection, unref
        it.  Fixes a leak.
 
        * mono/Connection.cs (set_RawConnection): Disconnect our
        filter and match callbacks from the old connection and
        reconnect them to the new connection, if any.

	* mono/DBusType/Array.cs: "Code" is a static member, so
	don't use "this" to refer to it.  Fix for stricter checking
	in Mono 1.1.4.
 
        * mono/DBusType/ObjectPath.cs (Append): Don't leak the
	object path that we pass into unmanaged code.
 
        * mono/DBusType/String.cs (Append): Don't leak the string
	that we pass into unmanged code.

John Palmieri's avatar
John Palmieri committed
388 389 390 391 392 393 394 395 396 397 398 399
2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
	* NEWS: Update for 0.31

	* configure.in: Release 0.31
	add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping

	* qt/Makefile.am: fixed build

	* dbus/Makefile.am: soname bump for libdbus

	* glib/Makefile.am: soname bump for libdbus-glib

400 401 402 403 404 405 406 407 408 409
2005-03-05  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-sysdeps.c:
	(pseudorandom_generate_random_bytes_buffer): fix to have no return
	value
	(_dbus_generate_random_bytes_buffer): fix return value

	* dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
	checks actually work, from Tom Parker <fdo@tevp.net>

410 411
2005-03-01  Colin Walters  <walters@verbum.org>

412 413 414 415 416 417 418
	* test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
	functions copied from dbus-glib-tool.c.
	(main): Convert lots of error code to use them.
	Also add some testing for introspection bits.

2005-03-01  Colin Walters  <walters@verbum.org>
	
419 420
	* doc/TODO: Remove introspection signature TODO.

421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477
2005-02-27  Colin Walters  <walters@verbum.org>

	* glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
	Change return value to const char * instead of int so we can do
	full signatures.
	(struct PropertyInfo, struct ArgInfo): Store char *.
	(property_info_new, arg_info_new): Update parameters, strdup.
	(property_info_unref, arg_info_unref): Free.

	* glib/dbus-gidl.h: Update prototypes.

	* glib/dbus-gparser.c (basic_type_from_string): Delete.
	(validate_signature): New function, just validates signature and
	sets GError.
	(parse_property, parse_arg): Invoke validate_signature.  Store
	signature instead of just type code.

	* glib/dbus-gvalue.c (base_type_from_signature): New utility
	function to return a primary type for a signature, dropping
	information about types in container types.
	(dbus_gvalue_genmarshal_name_from_type)
	(dbus_gvalue_binding_type_from_type)
	(dbus_gvalue_ctype_from_type): Update to take full signature
	 instead of type code.
	(dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.

	* glib/dbus-gvalue.h: Update prototypes for above.

	* glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
	glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
	(introspect_properties, introspect_signals, write_interface):
	Update to handle signatures, and remove usage of
	_dbus_gutils_type_to_string.
	(handle_introspect): Print out type codes instead of e.g. "string"
	in hardcoded introspection XML; also use x_AS_STRING constants
	instead of hardcoding in string.

	* glib/dbus-glib-tool.c (pretty_print): Handle signature change
	to string.  Remove usage of _dbus_gutils_type_to_string.

	* glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.

	* glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
	deletion.
	
	* glib/dbus-binding-tool-glib.c (compute_marshaller)
	(compute_marshaller_name, generate_glue): Handle signature change
	to string.
	(write_formal_parameters, write_args_for_direction): Ditto, and
	remove FIXME.

	* tools/dbus-tree-view.c (type_to_string): Delete.
	(info_set_func_text): Update to print full signatures.

	* test/glib/test-service-glib.xml: Change types to new
	introspection format.

478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505
2005-02-26  Havoc Pennington  <hp@redhat.com>

	* doc/TODO: remove the "guid" item

	* test/glib/test-profile.c (no_bus_thread_func): use open_private
	(with_bus_thread_func): use open_private

	* dbus/dbus-connection.c (dbus_connection_open_private): new
	function that works like the old dbus_connection_open()
	(dbus_connection_open): now returns an existing connection if
	possible

	* dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
	through the GUID to the transport

	* dbus/dbus-server.c (_dbus_server_init_base): keep around the
	GUID in hex-encoded form.

	* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
	pass GUID argument in to the transport

	* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
	guid argument

	* dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument

	* dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument

506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529
2005-02-25  Havoc Pennington  <hp@redhat.com>

	* doc/dbus-specification.xml: document the GUID thing

	* dbus/dbus-server.c (_dbus_server_init_base): initialize a
	globally unique ID for the server, and put a "guid=hexencoded"
	field in the address

	* dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h

	* dbus/dbus-message.c: ditto

	* dbus/dbus-dataslot.c: ditto

	* dbus/dbus-list.c: ditto

	* dbus/dbus-internals.h: wait, just include
	dbus-threads-internal.h here
	
	* dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
	use in main library

	* dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function

530 531 532 533
2005-02-24  Colin Walters  <walters@verbum.org>

	* test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml

534 535 536 537 538
2005-02-24  John (J5) Palmieir  <johnp@redhat.com>

	* glib/Makefile.am: added dbus-gobject.h to sources list
	so distcheck doesn't fail
	
539 540 541 542 543 544 545 546 547 548 549 550 551 552
2005-02-24  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
	you must disconnect before unref, since locking and other things
	are screwed up otherwise. Fix assorted other locking stuff.

	* dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
	fix compilation

	* dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
	into a private header and don't export from the library

	* throughout - call _dbus_thread_stuff vs. dbus_thread_stuff

553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600
2005-02-24  Colin Walters  <walters@verbum.org>
	
	* dbus/dbus-signature.c: New file; implements various functions
	related to type signatures.  Includes an interator for parsing,
	validation functions.
	(dbus_type_is_basic): Moved here from
	dbus-marshal-basic.c:_dbus_type_is_basic.
	(dbus_type_is_container): Moved here from
	dbus-marshal-basic.c:_dbus_type_is_container.

	All callers of _dbus_type_is_container and _dbus_type_is_basic
	updated, and include dbus-signature.h.

	* dbus/dbus-signature.h: New file; prototypes for the above.

	* dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
	dbus-signature.h.

	* dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
	function factored out of _dbus_first_type_in_signature.
	(_dbus_first_type_in_signature_c_str): New function; returns first
	type code for a type signature character.

	* dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
	handle function moves.

	* dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.

	* dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
	function; skips to next complete type in type signature.
	Implemented using previous skip_one_complete_type.  Now
	skip_one_complete_type just delegates to
	_dbus_type_signature_next.

	* dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
	to dbus-signature.c
	(_dbus_type_is_container): Ditto.

	* doc/dbus-specification.xml: Update introspection sample to
	use real type signatures.

	* dbus/dbus-test.h: Prototype signature test.

	* dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
	signature tests.

	* dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.

601 602 603 604 605
2005-02-23  John (J5) Palmieri  <johnp@redhat.com>

	* python/dbus_bindings.pyx.in (PendingCall::get_reply):
	s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply

606 607 608 609 610 611 612 613 614 615 616 617 618 619 620
2005-02-21  Colin Walters  <walters@verbum.org>

	* dbus/dbus-test-main.c (main): Take optional specific test
	argument.

	* dbus/dbus-test.c (run_test): New function, runs a test function
	with no data directory.
	(run_data_test): Like above, but takes data directory.
	(dbus_internal_do_not_use_run_tests): Take
	specific test argument.  Replace lots of cut n' paste code
	with run_test and run_data_test.

	* dbus/dbus-test.h: Update prototype for
	dbus_internal_do_not_use_run_tests.

621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639
2005-02-20  Havoc Pennington  <hp@redhat.com>

        Fix bugs reported by Daniel P. Berrange
	
	* dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
	(protected_change_watch): new function
	(_dbus_server_toggle_watch, _dbus_server_remove_watch)
	(_dbus_server_add_watch): change to work like the
	dbus-connection.c equivalents; like those, probably kind of
	busted, but should at least mostly work for now
	(dbus_server_disconnect): drop the lock if we were already
	disconnected, patch from Daniel P. Berrange

	* dbus/dbus-server.c (_dbus_server_toggle_timeout) 
	(_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
	same stuff

	* doc/TODO: todo about unscrewing this mess

640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656
2005-02-19  Colin Walters  <walters@verbum.org>

	* glib/dbus-binding-tool-glib.c
	(dbus_binding_tool_output_glib_server): Fix iochannel refcounting.

	* glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
	as errno.h and sys/stat.h.
	(lose): New function, prints error with
	newline and exits.
	(lose_gerror): Similar, but takes GError for message.
	(main): Add --output argument to specify output file to write to,
	instead of always printing to stdout.  In this mode, determine
	timestamps on source files to see whether any are newer than the
	target file.  If not, exit.  Also convert a number of error
	messages to use lose (since it's shorter), and switch to using
	g_io_channel_shutdown.

657 658 659 660 661 662 663 664 665 666
2005-02-19  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gobject.c
	(_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs

	* glib/dbus-glib.c: fix doxygen warnings

	* glib/dbus-gparser.c (parse_annotation): error if an annotation
	is found on an <arg>

667 668 669 670 671 672 673 674 675 676 677
2005-02-17  Colin Walters  <walters@verbum.org>

	* glib/dbus-gobject.h: Don't export
	_dbus_glib_marshal_dbus_message_to_gvalue_array.
	
	* glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
	(invoke_object_method): Handle it.

	* glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
	Handle rename.
	
678 679
2005-02-17  Colin Walters  <walters@verbum.org>

680 681 682 683 684 685
	* bus/.cvsignore, doc/.cvsignore
	* test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
	Update.

2005-02-17  Colin Walters  <walters@verbum.org>
	
686 687 688 689
	* dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
	Rename to DBUS_SERVICE_DBUS.
	(DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
	(DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
Colin Walters's avatar
Colin Walters committed
690 691
	Change the value from "org.freedesktop.Local"
	to "org.freedesktop.DBus.Local".
692 693 694
	(DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
	(DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
	DBUS_INTERFACE_INTROSPECTABLE.
Colin Walters's avatar
Colin Walters committed
695 696
	Change the value from "org.freedesktop.Introspectable"
	to "org.freedesktop.DBus.Introspectable".
697 698
	(DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
	DBUS_INTERFACE_PROPERTIES.
Colin Walters's avatar
Colin Walters committed
699 700
	Change the value from "org.freedesktop.Properties"
	to "org.freedesktop.DBus.Properties".
701 702
	(DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
	DBUS_INTERFACE_PEER.
Colin Walters's avatar
Colin Walters committed
703 704
	Change the value from "org.freedesktop.Peer"
	to "org.freedesktop.DBus.Peer".
705 706
	(DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
	DBUS_INTERFACE_LOCAL.
Colin Walters's avatar
Colin Walters committed
707 708
	Change the value from "org.freedesktop.Local"
	to "org.freedesktop.DBus.Local".
709 710 711 712 713 714 715 716 717

	All other users of those constants have been changed.

	* bus/driver.c (bus_driver_handle_introspect): Use constants.

	* glib/dbus-gobject.c (handle_introspect): Use constants.

	* doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.

718
2005-02-17  Colin Walters  <walters@verbum.org>
719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753

	* glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
	(parse_node, parse_interface, parse_method, parse_signal)
	(parse_property, parse_annotation): Lose if we're currently in an
	annotation.
	(parse_annotation): New function.
	(parser_start_element, parser_end_element): Handle annotation.
	(parse_method, parse_interface): Remove support for c_name attribute,
	switch to annotations.

	* glib/dbus-gidl.h (interface_info_get_binding_names)
	(method_info_get_binding_names)
	(interface_info_get_binding_name, method_info_get_binding_name)
	(interface_info_set_binding_name, method_info_set_binding_name):
	Remove.
	(interface_info_get_annotations, method_info_get_annotations)
	(interface_info_get_annotation, method_info_get_annotation)
	(interface_info_add_annotation, method_info_add_annotation):
	Prototype.

	* glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
	for "bindings".
	(struct MethodInfo): Ditto.
	Straightfoward conversion of binding methods into annotation methods
	as prototyped.

	* glib/dbus-glib-tool.c (pretty_print): Print annotations.

	* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.

	* glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
	Use new annotation API.

	* doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
	annotation element.
754
	
755 756 757 758 759 760 761
	* doc/dbus-specification.xml: Discuss introspection annotations,
	include list of well-known annotations.

	* test/glib/test-service-glib.xml: Make validate against new DTD.

2005-02-17  Colin Walters  <walters@verbum.org>

762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888
	This patch is based on initial work from
	Paul Kuliniewicz <kuliniew@purdue.edu>.

	* glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
	initialization of GValue from dbus type to here.
	(dbus_gvalue_genmarshal_name_from_type): New function; generates a string
	for the "glib-genmarshal" program from a DBus type.
	(dbus_gvalue_binding_type_from_type): New function; turns a DBus type
	into the C name for it we use in the glib bindings.
	(dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
	glib C type (not GValue).
	(dbus_gvalue_demarshal): invoke dbus_gvalue_init.

	* glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
	from dbus-gobject.c.

	* glib/dbus-gutils.h: Prototype it.

	* glib/dbus-gproxy.c: Include new dbus-gobject.h.
	(marshal_dbus_message_to_g_marshaller): Use new shared function
	dbus_glib_marshal_dbus_message_to_gvalue_array.

	* glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
	Will be changed once we have annotations.

	* glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
	GStaticRWLock.  Callers updated.
	(wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
	(string_table_next): New function for iterating over zero-terminated
	string value array.
	(string_table_lookup): New function; retrieves specific entry in
	array.
	(get_method_data): New function; look up method data in object data chunk.
	(object_error_domain_prefix_from_object_info)
	(object_error_code_from_object_info): New functions, but not implemented yet.
	(method_interface_from_object_info): New function; retrieve interface name.
	(method_name_from_object_info): New function; retrieve method name.
	(method_arg_info_from_object_info): New function; retrieve argument data.
	(arg_iterate): New function; iterates over serialized argument data.
	(method_dir_signature_from_object_info): New function; returns a
	GString holding type signature for arguments for just one
	direction (input or output).
	(method_input_signature_from_object_info)
	(method_output_signature_from_object_info): New functions.
	(dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
	converts dbus message arguments into a GValue array.  Used for both
	signal handling and method invocation.
	(struct DBusGlibWriteIterfaceData): New utility structure.
	(write_interface): New function; generate introspection XML for
	an interface.
	(introspect_interfaces): New function; gathers all interface->methods,
	generates introspection XML for them.
	(handle_introspect): Invoke introspect_interfaces.
	(get_object_property): Be sure to zero-initalize stack-allocated GValue.
	(lookup_object_and_method): New function; examines an incoming message
	and attempts to match it up (via interface, method name, and argument
	signature) with a known object and method.
	(gerror_domaincode_to_dbus_error_name): New function; converts a
	GError domain and code into a DBus error name.  Needs GError data
	added to object introspection to work well.
	(gerror_to_dbus_error_message): Creates a DBusMessage error return from
	GError.
	(invoke_object_method): New function to invoke an object method
	looked up via lookup_object_and_method.  Parses the incoming
	message, turns it into a GValue array, then invokes the marshaller
	specified in the DBusGMethodInfo.  Creates a new message with
	either return values or error message as appropriate.
	(gobject_message_function): Invoke lookup_object_and_method and
	invoke_object_method.

	* glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
	(enum DBusBindingOutputMode): New enum for binding output modes.
	(pretty_print): Print binding names.
	(dbus_binding_tool_error_quark): GError bits.
	(version): Fix typo.
	(main): Create GIOChannel for output.  Parse new --mode argument,
	possible values are "pretty-print", "glib-server", "glib-client".
	Use mode to invoke appropriate function.
	
	* glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.

	* glib/dbus-glib-tool.h: New header, just includes GError bits
	for now.

	* glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
	maps binding style to name.
	(struct MethodInfo): Ditto.
	(get_hash_keys, get_hash_key): Utility function, returns keys for
	a GHashTable.
	(interface_info_new, method_info_new): Initialize bindings.
	(interface_info_unref, method_info_unref): Destroy bindings.
	(method_info_get_binding_names, method_info_get_binding_name)
	(interface_info_get_binding_names, interface_info_get_binding_name):
	Functions for retrieving binding names.
	(method_info_set_binding_name, interface_info_set_binding_name):
	Functions for setting binding names.

	* glib/dbus-binding-tool-glib.h: New file, has prototypes
	for glib binding generation.

	* glib/dbus-binding-tool-glib.c: New file, implements server-side
	and client-side glib glue generation.

	* glib/Makefile.am (dbus_binding_tool_SOURCES): Add
	dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
	dbus-glib-tool.h.

	* dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
	of using GClosureMarshal directly.
	(struct DBusGObjectInfo): Add n_infos member.

	* test/glib/test-service-glib.xml: New file; contains introspection data
	for MyTestObject used in test-service-glib.c.

	* test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
	(my_object_do_nothing, my_object_increment, my_object_throw_error)
	(my_object_uppercase, my_object_many_args): New test methods.
	(main): Use dbus_g_object_class_install_info to include generated object
	info.

	* test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
	as well as client-side bindings.

	* test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
	(main): Activate TestSuiteGLibService; test invoke a bunch of its methods
	using both the dbus_gproxy stuff directly as well as the generated bindings.

889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907
2005-02-15  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-connection.c (dbus_connection_dispatch): always
	complete a pending call, don't run filters first.

	* glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
	dbus_pending_call_steal_reply

	* dbus/dbus-pending-call.c (dbus_pending_call_block): just call
	_dbus_connection_block_pending_call
	(dbus_pending_call_get_reply): change to steal_reply and return a
	ref

	* dbus/dbus-connection.c
	(dbus_connection_send_with_reply_and_block): port to work in terms
	of DBusPendingCall
	(_dbus_connection_block_pending_call): replace block_for_reply
	with this

908 909 910 911 912 913
2005-02-14  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
	properly handle looking up group information by name; fix 
	from j@bootlab.org

914 915 916 917 918 919 920 921 922 923
2005-02-13  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-connection.c (dbus_connection_return_message) 
	(dbus_connection_borrow_message): hold dispatch lock while message
	is outstanding
	(_dbus_connection_block_for_reply): hold dispatch lock while we
	block for the reply, so nobody steals our reply
	(dbus_connection_pop_message): hold the dispatch lock while we
	pluck the message

924 925 926 927 928 929 930 931 932 933
2005-02-13  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
	(_dbus_connection_release_dispatch)
	(_dbus_connection_acquire_io_path)
	(_dbus_connection_release_io_path): make the mutex and condvar
	control access to the "acquired" flag. Drop the connection lock
	while waiting on the condvar. Hopefully these are baby steps in
	roughly the right direction.

934 935 936 937 938 939
2005-02-13  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-connection.c: use separate mutexes for the condition
	variables; this is some kind of baseline for sanity, but the
	condition variables still aren't used correctly afaict

940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972
2005-02-13  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
	fix a double-unlock

	* dbus/dbus-connection.c
	(_dbus_connection_detach_pending_call_unlocked): add this

        Initial semi-correct pass through to fix thread locking; there are
	still some issues with the condition variable paths I'm pretty
	sure
	
	* dbus/dbus-server.c: add a mutex on DBusServer and appropriate
	lock/unlock calls

	* dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
	rename to add _unlocked
	(struct DBusConnection): move "dispatch_acquired" and
	"io_path_acquired" to use only one bit each.
	(CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
	(dbus_connection_set_watch_functions): hacky fix to reentrancy
	(_dbus_connection_add_watch, _dbus_connection_remove_watch) 
	(_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
	(_dbus_connection_remove_timeout) 
	(_dbus_connection_toggle_timeout): drop lock when calling out to
	user functions; done in a hacky/bad way.
	(_dbus_connection_send_and_unlock): add a missing unlock
	(_dbus_connection_block_for_reply): add a missing unlock

	* dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
	drop lock in a hacky probably unsafe way to call out to user
	function

973 974 975 976 977 978 979 980 981 982 983 984 985
2005-02-12  Havoc Pennington  <hp@redhat.com>

	* tools/dbus-tree-view.c (info_set_func_text): display more
	details on args

	* bus/driver.c (bus_driver_handle_list_services): list the bus
	driver

	* glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied

	* glib/dbus-gidl.c (signal_info_get_n_args): new function
	(method_info_get_n_args): new function

986 987 988 989 990
2005-02-12  Havoc Pennington  <hp@redhat.com>

	* bus/driver.c (bus_driver_handle_introspect): add introspection
	for bus driver

991 992 993 994 995 996
2005-02-12  Havoc Pennington  <hp@redhat.com>

	* bus/driver.c: put the signature of each bus driver method in the
	table of handlers and check it on incoming calls; this isn't
	really useful, but going to add introspect support in a minute.

997 998 999 1000 1001 1002 1003 1004 1005 1006
2005-02-11  Joe Shaw  <joeshaw@novell.com>

	* mono/Connection.cs: The unpredictability of finalizers in mono
	prevents us from deterministically disconnecting the filters from
	the Service class's finalizer, so move tracking of filters and
	matches here.  Add API for that.

	* mono/Service.cs: Remove the code, add code which calls the
	methods now on the Connection class.

1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043
2005-02-11  John (J5) Palmieri  <johnp@redhat.com>

	* python/dbus.py (class Sender): added to support dbus signals better
	(Bus::add_signal_receiver): added expand_args parameter which defaults
	to True.  When expand args is True the signal handler will pass the 
	message arguments as parameters to the signal handler.  If False
	revert to previous behavior where the signal handler must get the
	argument list from the message.  This is to help port applications
	like HAL that have a tendancy to send variable length argument lists.
	self._match_rule_to_receivers is now a dict of dicts.
	(Bus::remove_signal_receiver): pop handler off the dict intead of 
	removing it from a list
	(Bus::_signal_func): change signal handlers so that interface,
	signal_name, service, path and message are packed into a Sender
	object and that is passed to the handler.  If expand_args is True
	extract the args list from the message and append it to the parameter
	list
	
	* python/dbus_bindings.pyx.in (class Signature): added to support 
	signiature types
	(MessageIter::__init__): changed iteration limit to match D-BUS
	(MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
	STRUCT and VARIENT type support
	(MessageIter::python_value_to_dbus_sig): made recursive to support
	recursive types
	(MessageIter::append*): added Signature, dict, tuple 
	support

	* python/examples/example-client.py: added examples of getting tuples
	and dicts

	* python/examples/example-service.py: added examples of sending tuples
	and dicts

	* python/examples/example-signal-recipient.py: Fixed to handle new
	signal callback format

1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061
2005-02-10  Havoc Pennington  <hp@redhat.com>

	* test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
	(call dbus_g_proxy_add_signal)

	* dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
	escape the hostname
	(_dbus_server_new_for_domain_socket): escape the path

	* dbus/dbus-address.c (dbus_address_escape_value): new
	(dbus_address_unescape_value): new
	(dbus_parse_address): unescape values

	* dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function

	* doc/dbus-specification.xml: explain how to escape values in
	addresses

1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075
2005-02-10  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-message-factory.c (generate_special): modify test to
	avoid using a non-basic dict key

	* dbus/dbus-marshal-validate-util.c: add test for the below

	* doc/dbus-specification.xml: require that dict keys are a basic
	type

	* dbus/dbus-marshal-validate.c
	(_dbus_validate_signature_with_reason): require that dict key is a
	basic type

1076 1077 1078 1079 1080 1081 1082 1083 1084
2005-02-10  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
	change to be _and_unlock instead of _unlocked

	* dbus/dbus-connection.c
	(_dbus_connection_send_preallocated_unlocked_no_update): rename to
	have no_update so we can find this bug quickly in future

1085 1086 1087 1088 1089 1090 1091 1092
2005-02-10  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-message-util.c (verify_test_message): tests for string
	array

	* dbus/dbus-message.c (dbus_message_append_args_valist): add
	support for arrays of string/signature/path

1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116
2005-02-10  Joe Shaw  <joeshaw@novell.com>

	* dbus/dbus-connection.c
	(_dbus_connection_queue_received_message_link,
	_dbus_connection_message_sent): Add the path to
	the verbose output.
	(_dbus_connection_send_preallocated_and_unlock): Added.  Calls
	_dbus_connection_send_preallocated_unlocked(), updated the
	dispatch status, and unlocks.  Fixes a bug where certain
	situations (like a broken pipe) could cause a Disconnect message
	to not be sent, tricking the bus into thinking a service was still
	there when the process had quit.
	(_dbus_connection_send_preallocated): Call
	_dbus_connection_send_preallocated_and_unlock().
	(_dbus_connection_send_and_unlock): Added.  Calls
	_dbus_connection_send_preallocated_and_unlock().
	(dbus_connection_send): Call _dbus_connection_send_and_unlock().
	(dbus_connection_send_with_reply): Update the dispatch status and
	unlock.

	* mono/Service.cs (~Service): Added.  Removes the filter so that
	we don't get unmanaged code calling back into a GCed delegate.
	(RemoveFilter); Added.

1117 1118 1119 1120 1121 1122 1123
2005-02-09  John (J5) Palmieri  <johnp@redhat.com>

	* dbus/dbus-message.c (dbus_message_iter_open_container):
	- Removed check for iterator type being an array because
	get_arg_type does not work with writer iterators
	- Pass NULL to _dbus_type_writer_recurse if signiture is NULL

1124 1125 1126 1127 1128 1129 1130
2005-02-07  Havoc Pennington  <hp@redhat.com>

	* doc/dbus-specification.xml: some more language cleanups; add
	stuff about how to deal with invalid protocol and extension
	points; add _ to allowed chars in auth commands; add EXTENSION_
	auth command prefix

1131 1132 1133 1134
2005-02-06  Havoc Pennington  <hp@redhat.com>

	* s/expected/required/ in a couple places for clarity

1135 1136 1137 1138 1139
2005-02-07  Colin Walters  <walters@verbum.org>

	* bus/selinux.c (bus_selinux_allows_send): Handle NULL for
	sender or proposed_recipient.

1140 1141 1142 1143 1144 1145 1146
2005-02-06  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-message-factory.c (generate_special): more tests

	* dbus/dbus-marshal-validate.c (validate_body_helper): detect
	array length that exceeds the maximum

1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163
2005-02-05  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-message-factory.c (generate_special): more test cases,
	increasing coverage

	* dbus/dbus-marshal-validate.c (validate_body_helper): return the
	reason why a signature was invalid

	* dbus/dbus-marshal-header.c (load_and_validate_field): fix to
	skip the length of the string before we look at it in validation

	* dbus/dbus-string-util.c (_dbus_string_test): add tests for
	equal_substring

	* dbus/dbus-message.c (_dbus_message_loader_new): default
	max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH

1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
2005-02-05  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
	if the signature of a variant was empty
	(_dbus_validate_signature_with_reason): catch "(a)" (array inside
	struct with no element type)

	* dbus/dbus-message-factory.c (generate_uint32_changed): add more
	mangled messages to break things

1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189
2005-02-04  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
	g_quark_try_string() so it actually can return 0
	(dbus_g_proxy_connect_signal): ditto

2005-02-04  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
	bogus warning
	(tristring_from_message): assert cleanly on null path/interface
	(should not be possible though I decided later)
	(dbus_g_proxy_dispose): move proxy manager unregistration here
	(DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
	g_return_if_fail() checks

1190 1191 1192 1193 1194 1195 1196 1197 1198 1199
2005-02-04  Havoc Pennington  <hp@redhat.com>

	* doc/Makefile.am (EXTRA_DIST): add DTDs to makefile

	* doc/introspect.dtd: add introspect.dtd from David A. Wheeler
	(with some minor changes)

	* doc/dbus-specification.xml: add deprecated attribute to
	introspection format

1200 1201 1202 1203 1204
2005-01-31  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gproxy.c: rewrite how signals work again, this time I
	think it's sort of right

1205 1206 1207 1208
2005-01-30  Havoc Pennington  <hp@redhat.com>

	* tools/dbus-viewer.c: kind of half-ass hook up the option menu.

1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220
2005-01-30  Havoc Pennington  <hp@redhat.com>

	* tools/dbus-names-model.c: dynamically watch NameOwnerChanged

	* autogen.sh: change to autotools 1.9

	* glib/dbus-gproxy.c: completely change how signals work
	(dbus_g_proxy_add_signal): new function to specify signature of a
	signal
	(dbus_g_proxy_emit_received): marshal the dbus message to GValues,
	and g_warning if the incoming message has the wrong signature.

1221 1222 1223 1224 1225 1226 1227
2005-01-30  Havoc Pennington  <hp@redhat.com>

	* tools/dbus-names-model.c (have_names_notify): fix this

	* dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
	up the string array handling a bit 

1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242
2005-01-30  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
	(dbus_g_pending_call_cancel): new function

	* dbus/dbus-glib.h: move GType decls for connection/message here;
	* dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
	here, just kind of rationalizing how we handle all that

	* tools/dbus-names-model.c: new file for a tree model listing the
	services on a bus

	* tools/dbus-tree-view.c (model_new): use proper typing on the
	model rows

1243 1244 1245 1246 1247 1248 1249 1250 1251 1252
2005-01-30  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gmain.c: add a custom GSource back that just checks
	whether the message queue has anything in it; otherwise, there are 
	cases where we won't see messages in the queue since there was no 
	IO visible to the glib main loop

	* dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
	increase default message timeout to 25 seconds

1253 1254
2005-01-30  Havoc Pennington  <hp@redhat.com>

1255 1256 1257
	* test/glib/test-profile.c (no_bus_stop_server): remove the
	warning about the g_warning that I just fixed

1258 1259 1260 1261
	* glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
	custom source, seems to be a lot easier to understand and work
	better.

1262 1263 1264 1265 1266 1267 1268 1269 1270 1271
2005-01-30  Havoc Pennington  <hp@redhat.com>

        I think this main loop thing is conceptually broken, but here are 
	some band aids. I'll maybe rewrite it in a minute.
	
	* glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
	custom GSource, so don't pass it in; confusing
	(gsource_server_finalize, gsource_connection_finalize): add
	finalize handlers that remove all the watches.	

1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291
2005-01-30  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gobject.c (introspect_properties): fix the XML
	generated

	* dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
	which effectively detects the use of freed messages

	* glib/dbus-gobject.c (handle_introspect): modify and return the
	reply message instead of the incoming message

	* dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
	gee, maybe it should SEND THE XML instead of just making a string
	and freeing it again ;-)

	* tools/dbus-print-message.c (print_message): improve printing of
	messages

	* configure.in: add debug-glib.service to the output

1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337
2005-01-30  Havoc Pennington  <hp@redhat.com>

        dbus-viewer introspected and displayed the bus driver
	
	* dbus/dbus-object-tree.c 
	(object_tree_test_iteration): add tests for a handler registered on "/"

	* dbus/dbus-object-tree.c
	(_dbus_decompose_path): fix to handle path "/" properly
	(run_decompose_tests): add tests for path decomposition
	
	* glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
	properly

	* glib/dbus-gobject.c (handle_introspect): fix quotes

	* test/glib/run-test.sh: support launching the bus, then running
	dbus-viewer

	* test/glib/test-service-glib.c (main): put in a trivial gobject
	subclass and register it on the connection

	* bus/driver.c (bus_driver_handle_introspect): implement
	introspection of the bus driver service

	* dbus/dbus-protocol.h: add #defines for the XML namespace,
	identifiers, doctype decl

	* bus/driver.c (bus_driver_handle_get_service_owner): handle
	attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
	returning the service unchanged.
	(bus_driver_handle_message): remove old check for reply_serial in
	method calls, now the message type deals with that
	(bus_driver_handle_message): handle NULL interface

	* glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function

	* glib/dbus-gloader-expat.c (description_load_from_string): allow
	-1 for len

	* tools/dbus-viewer.c: add support for introspecting a service on
	a bus

	* glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
	(dbus_g_pending_call_unref): add

1338 1339 1340 1341 1342 1343 1344 1345
2005-01-29  Havoc Pennington  <hp@redhat.com>

	* tools/dbus-tree-view.c: add support for displaying properties.
	(run dbus-viewer with an introspect xml file as arg, then resize
	the window so the tree elements show up, not sure what that is)

	* glib/dbus-gobject.c (handle_introspect): return
	org.freedesktop.Properties and org.freedesktop.Introspectable
1346
	interfaces when we are introspected.
1347 1348 1349 1350

	* doc/dbus-specification.xml: allow empty interface name when 
	Get/Set a property

1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374
2005-01-29  Havoc Pennington  <hp@redhat.com>

	* glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
	though it uses glib, it could be extended for any binding in
	principle

	* glib/dbus-gobject.c (gobject_message_function): change to the
	new way properties work

	* dbus/dbus-protocol.h: add the new interfaces

	* doc/dbus-specification.xml: document the introspection format,
	Introspectable interface, and add an org.freedesktop.Properties
	interface.

	* glib/dbus-gparser.c: add support for a <property> element

	* glib/dbus-gidl.c: add PropertyInfo

	* glib/dbus-gobject.c (handle_introspect): put the outermost
	<node> outside the signal and property descriptions.
	(introspect_properties): export properties as <property> rather
	than as method calls

1375 1376 1377 1378 1379
2005-01-28  Havoc Pennington  <hp@redhat.com>

	* doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
	related to authentication protocol

1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424
2005-01-28  John (J5) Palmieri  <johnp@redhat.com>

	* python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
		- BUS_ACTIVATION -> BUS_STARTER
		- DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
		- class MessageIter (__init__): Added recursion checking 
		so we throw a nice error instead of just disconnecting from the
		bus.
		(get): Added arg_type parameter for recursion.
		Removed the nil type
		Added signiture type placeholder (not implemented)
		Added struct type placeholder (not implemented)
		Added varient type placeholder (not implemented)
		Commented out dict type for now	    
		(get_element_type): renamed from get_array_type
		(get_*): changed to use the dbus_message_iter_get_basic API
		(get_*_array): removed in favor of recursive get_array method
		(get_array): new recursive method which calls get to marshal
	        the elements of the array
		(value_to_dbus_sig): New method returns the corrasponding
		dbus signiture to a python value
		(append): Comment out dict handling for now
		Handle lists with the new recursive API
		Comment out None handling for now
		(append_nil): removed
		(append_*): changed to use dbus_message_iter_append_basic API
		(append_*_array): removed in favor of recursive append_array 
		method
		(__str__): Make it easier to print out recursive iterators
		for debugging
		- class Message (__str__): moved type inspection to the
		MessageIter class' __str__ method
		(get_iter): Added an append parameter wich defaults to False
		If True use the new API's to create an append iterator

	* python/dbus.py: Update to use new bindings API
		- TYPE_ACTIVATION -> TYPE_STARTER
		- class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
		- class ActivationBus -> class StarterBus
		- class RemoteObject (__call__): get an append iterator
		- (_dispatch_dbus_method_call): get an append iterator
		- class Object (emit_signal): get an append iterator

	* python/examples/: Fixed up the examples to work with the new API
		
1425 1426 1427 1428 1429 1430 1431
2005-01-28  Joe Shaw  <joeshaw@novell.com>

	* configure.in: Bump version up to 0.30.

	* HACKING: Add a release item to bump the version number up after 
	a release.

1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444
2005-01-28  Havoc Pennington  <hp@redhat.com>

	* doc/dbus-specification.xml: update to describe 16-bit types and
	dict entries

	* dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
	assertion

	* dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
	type

	* dbus/dbus-marshal-recursive.c: implement

1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455
2005-01-27  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-arch-deps.h.in: add 16/32-bit types

	* configure.in: find the right type for 16 and 32 bit ints as well
	as 64

	* dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
	the 16-bit types so people don't have to stuff them in 32-bit or
	byte arrays.

1456 1457 1458 1459 1460 1461 1462 1463 1464 1465
2005-01-27  Havoc Pennington  <hp@redhat.com>

        * dbus/dbus-message.c: byteswap the message if you init an
	iterator to read/write from it
	
	* dbus/dbus-marshal-byteswap.c: new file implementing 
	_dbus_marshal_byteswap()

	* dbus/dbus-marshal-basic.c: add _dbus_swap_array()

1466 1467 1468 1469 1470
2005-01-26  Havoc Pennington  <hp@redhat.com>
	
	* dbus/dbus-marshal-validate-util.c: break this out (and fix
	build, apparently - nobody noticed?)
	
1471 1472 1473 1474
2005-01-26  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-marshal-recursive.h: remove todo comment

1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520
2005-01-25  Joe Shaw  <joeshaw@novell.com>

	* Land the mono binding changes to conform to the new APIs.

	* mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
	DBusType/Dict.cs, and DBusType/Nil.cs from the build.

	* mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
	type code as a string.
	(InitAppending): Rename dbus_message_append_iter_init() to
	dbus_message_iter_init_append().

	* mono/BusDriver.cs: Rename ServiceEventHandler to
	NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
	Rename ServiceOwnerChanged to NameOwnerChanged.

	* mono/Connection.cs: Rename BaseService to UniqueName, and the
	underlying C call.

	* mono/Custom.cs: Removed.  The CUSTOM type has been removed.

	* mono/Service.cs: Rename Exists to HasOwner, internally rename
	dbus_bus_acquire_service() to dbus_bus_request_name().

	* mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
	of Type.UnderlyingSystemType to get the correct element type for
	the array.
	(ctor): Update code for new APIs: use dbus_message_iter_recurse(),
	dbus_message_get_{element|arg}_type() instead of
	dbus_message_iter_init_array_iterator().
	(Append): Replace dbus_message_iter_append_array() with
	dbus_message_iter_open_container() and
	dbus_message_iter_close_container().

	* mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
	types have been removed.
	
	* mono/DBusType/*.cs: Replace calls of
	dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
	but specify the type in the DllImport extern declaration.  Ditto
	for dbus_message_iter_append_[type]() ->
	dbus_message_iter_append_basic().

	* mono/example/BusListener.cs: Update for ServiceEventHandler ->
	NameOwnerChangedHandler.

1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542
2005-01-25  John (J5) Palmieri  <johnp@redhat.com>

	* python/dbus_bindings.pyx.in: Rename of methods and bindings
		- get_base_service -> get_unique_name
		- bus_get_base_service -> bus_get_unique_name
		- dbus_bus_get_base_service -> dbus_bus_get_unique_name
		- ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
		- ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
		- bus_activate_service -> bus_start_service_by_name
		- dbus_bus_activate_service -> dbus_bus_start_service_by_name
		- bus_acquire_service -> bus_request_name
		- dbus_bus_acquire_service -> dbus_bus_request_name
		- bus_service_exists -> bus_name_has_owner
		- dbus_bus_service_exists -> dbus_bus_name_has_owner

	* python/dbus.py: Rename of methods
		- activate_service -> start_service_by_name
		- bus_acquire_service -> bus_request_name
		- ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
		- ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING

	
1543 1544 1545 1546 1547 1548 1549 1550 1551 1552
2005-01-24  Joe Shaw  <joeshaw@novell.com>

	* dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
	signature for the method that can't be found.

	* dbus/dbus-message.c (dbus_message_iter_init): To check to see if
	the message has any arguments, we need to call
	_dbus_type_reader_get_current_type(), not
	_dbus_type_reader_has_next().

1553 1554 1555 1556 1557 1558 1559
2005-01-24  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-message-factory.c: more testing of message validation

	* dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
	header

1560 1561 1562 1563 1564
2005-01-23  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
	get this all working, not many tests in the framework yet though

1565 1566 1567 1568 1569
2005-01-22  Havoc Pennington  <hp@redhat.com>

	* doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
	tutorial, based on work from David Wheeler.

1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580
2005-01-21  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-bus.c: add more return_if_fail checks

	* dbus/dbus-message.c (load_message): have the "no validation"
	mode (have to edit the code to toggle the mode for now though)

	* dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
	skips all validation; I want to use this at least for benchmark
	baseline, I'm not sure if it should be a publicly-available switch.

1581 1582 1583 1584 1585 1586 1587
2005-01-21  Havoc Pennington  <hp@redhat.com>

	* glib/dbus-gmain.c: don't put the GLib bindings in the same
	toplevel doxygen group as the low-level API stuff

	* dbus/dbus.h: note that libdbus is the low-level API

1588 1589 1590 1591 1592
2005-01-20  Havoc Pennington  <hp@redhat.com>

	* update-dbus-docs.sh: script to update docs on the web site, only
	works for me though. neener.

1593 1594 1595 1596 1597
2005-01-20  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
	code can reveal bugs in it

1598 1599 1600 1601 1602
2005-01-20  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
	select() version, patches from Tor Lillqvist

1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616
2005-01-20  Havoc Pennington  <hp@redhat.com>

	* doc/dbus-tutorial.xml: replace > with &gt;

	* bus/services.c (bus_registry_acquire_service): validate the name
	and return a better error if it's no good.

	* doc/dbus-specification.xml: note NO_AUTO_START change

	* dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
	from AUTO_START, we're toggling the default

	* bus/dispatch.c: adapt the tests to change of auto-start default

Havoc Pennington's avatar
 
Havoc Pennington committed
1617 1618 1619 1620
2005-01-18  Havoc Pennington  <hp@redhat.com>

	* rename dbus-daemon-1 to dbus-daemon throughout

1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632
2005-01-18  Havoc Pennington  <hp@redhat.com>

        * Throughout, grand renaming to strip out the use of "service",
	just say "name" instead (or "bus name" when ambiguous).  Did not
	change the internal code of the message bus itself, only the
	programmer-facing API and messages.
	
	* doc/dbus-specification.xml: further update the message bus section
	
	* bus/config-parser.c (all_are_equiv): fix bug using freed string
	in error case

1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644
2005-01-17  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-types.h: remove 16-bit types since we don't use them
	ever

	* dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
	"invalid name character" not only non-ASCII

	* doc/dbus-specification.xml: further update spec, message bus 
	parts are still out-of-date but the marshaling etc. stuff is now
	accurate-ish

1645 1646 1647 1648
2005-01-17  Havoc Pennington  <hp@redhat.com>

	* doc/dbus-specification.xml: partially update spec

1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659
2005-01-17  Havoc Pennington  <hp@redhat.com>

        * Throughout, align variant bodies according to the contained
	type, rather than always to 8. Should save a fair bit of space in
	message headers.
	
	* dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
	fix handling of case where p == end

	* doc/TODO: remove the dbus_bool_t item and variant alignment items

1660 1661 1662 1663 1664 1665 1666 1667
2005-01-17  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits

	* Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
	of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
	are marshaling/unmarshaling a boolean.

1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691
2005-01-16  Havoc Pennington  <hp@redhat.com>

        This is about it on what can be disabled/deleted from libdbus
	easily, back below 150K anyhow. Deeper cuts are more work than 
	just turning the code off as I've done here.
	
	* dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
	signed int convenience funcs

	* dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
	verbose mode

	* dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
	things out of libdbus

	* dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
	
	* dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
	tests-enabled-only, though it should probably be deleted)

	* dbus/dbus-message-util.c: same stuff

	* dbus/dbus-auth-util.c: same stuff

1692 1693 1694 1695 1696 1697 1698 1699
2005-01-16  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-userdb-util.c: split out part of dbus-userdb.c

	* dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
	way for stripping down dbus-userdb.c stuff included in libdbus.
	Rename _dbus_parse_uid for consistency.

1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723
2005-01-16  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-internals.c (_dbus_real_assert): print the function
	name the assertion failed in

	* dbus/dbus-internals.h (_dbus_return_if_fail) 
	(_dbus_return_val_if_fail): assert that the name of the function
	containing the check doesn't start with '_', since we only want to 
	use checks on public functions
	
	* dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
	checks to assertions

	* dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
	change checks to asserts for private function

	* dbus/dbus-message.c (_dbus_message_set_serial): checks
	to asserts for private function

	* dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
	broken assertion that was breaking make check
	(_dbus_type_reader_array_is_empty): remove this rather than fix
	it, was only used in assertions

1724 1725 1726 1727 1728 1729 1730 1731 1732 1733
2005-01-16  Havoc Pennington  <hp@redhat.com>

	* test/unused-code-gc.py: hacky script to find code that's used
	only by the bus (not libdbus) or used only by tests or not used at
	all. It has some false alarms, but looks like we can clean up a
	lot of size from libdbus.

	* dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
	dbus/Makefile.am: initially move 10K of binary size out of libdbus
	
1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750
2005-01-16  Havoc Pennington  <hp@redhat.com>

        * Add and fix docs according to Doxygen warnings throughout
	source.
	
	* dbus/dbus-marshal-recursive.c
	(_dbus_type_reader_array_is_empty): change this to just call
	array_reader_get_array_len() and make it static

	* dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
	from get_array_type
	(dbus_message_iter_init_append): rename from append_iter_init

	* dbus/dbus-marshal-recursive.c
	(_dbus_type_reader_get_element_type): rename from
	_dbus_type_reader_get_array_type

1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765
2005-01-15  Havoc Pennington  <hp@redhat.com>

	* test/glib/test-profile.c (with_bus_server_filter): fix crash

	* dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
	when DBUS_DISABLE_ASSERT
	(_dbus_marshal_set_basic): be sure we align for the string length

	* dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
	this look faster

	* dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
	inline macro version
	(_dbus_string_set_byte): provide inline macro version

1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824
2005-01-15  Havoc Pennington  <hp@redhat.com>

	* 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