| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
- add SIGNATURE type
- fix max name len of 256, should be 255 so it fits in a byte if it's going to be a number
near 256
- generalize some of the recursive type marshaling code to share between arrays and variants
- just started on implementing variant
|
| |
|
| |
|
|
|
|
| |
to be more automated...)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
better POSIX compliance.
|
|
|
|
|
|
|
| |
* dbus/dbus-string.c (_dbus_string_insert_4_aligned)
(_dbus_string_insert_8_aligned): new functions
* dbus/dbus-string.c (_dbus_string_alloc_space): new function
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
macro
* dbus/dbus-message.c: fix a comment, and add a still-unused
not-implemented function
* dbus/dbus-marshal.h: fix comment
* dbus/dbus-internals.h (_DBUS_ISASCII): new macro
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
are disabled
(_dbus_string_get_const_data): inline when asserts are disabled
* dbus/dbus-message.c: record the _dbus_current_generation of
creation so we can complain if dbus_shutdown() is used improperly.
Do this only if checks are enabled.
* dbus/dbus-connection.c: ditto
|
|
|
|
|
|
|
|
|
|
| |
* test/glib/test-profile.c: add with_bus mode to profile echoes
that go through the bus.
* test/glib/run-test.sh: add ability to run test-profile
* bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
config file reload.
|
|
|
|
|
| |
* dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
where I was trying to cache one too many messages
|
|
|
|
|
| |
* dbus/dbus-message.c: reimplement message cache as an array which
makes the cache about twice as fast and saves maybe 1.5% overall
|
|
|
|
|
| |
* dbus/dbus-threads.c (init_global_locks): forgot to put the
message cache lock here
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-message.c (struct DBusMessage): put the locked bit and
the "char byte_order" next to each other to save 4 bytes
(dbus_message_new_empty_header): reduce preallocation, since the
message cache should achieve a similar effect
(dbus_message_cache_or_finalize, dbus_message_get_cached): add a
message cache that keeps a few DBusMessage around in a pool,
another 8% speedup or so.
* dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
|
|
|
|
|
|
|
| |
* dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
to write, without reading or blocking, try it before the poll()
and skip the poll() if nothing remains to write. This is about a
3% speedup in the echo client/server
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The primary change here is to always write() once before adding
the write watch, which gives us about a 10% performance increase.
* dbus/dbus-transport-unix.c: a number of modifications to cope
with removing messages_pending
(check_write_watch): properly handle
DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
messages_pending stuff
(check_read_watch): properly handle WAITING_FOR_MEMORY and
AUTHENTICATED cases
(unix_handle_watch): after writing, see if the write watch can be
removed
(unix_do_iteration): assert that write_watch/read_watch are
non-NULL rather than testing that they aren't, since they
aren't allowed to be NULL. check_write_watch() at the end so
we add the watch if we did not finish writing (e.g. got EAGAIN)
* dbus/dbus-transport-protected.h: remove messages_pending call,
since it resulted in too much inefficient watch adding/removing;
instead we now require that the transport user does an iteration
after queueing outgoing messages, and after trying the first
write() we add a write watch if we got EAGAIN or exceeded our
max bytes to write per iteration setting
* dbus/dbus-string.c (_dbus_string_validate_signature): add this
function
* dbus/dbus-server-unix.c (unix_finalize): the socket name was
freed and then accessed, valgrind flagged this bug, fix it
* dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
as the last valid field plus 1, where really it is equal to the
last valid field. Corrects some message corruption issues.
* dbus/dbus-mainloop.c: verbosity changes
* dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
instead of aborting in one of the test codepaths
* dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
caused not printing the pid ever again if a verbose was missing
the newline at the end
(_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
* dbus/dbus-connection.c: verbosity changes;
(dbus_connection_has_messages_to_send): new function
(_dbus_connection_message_sent): no longer call transport->messages_pending
(_dbus_connection_send_preallocated_unlocked): do one iteration to
try to write() immediately, so we can avoid the write watch. This
is the core purpose of this patchset
(_dbus_connection_get_dispatch_status_unlocked): if disconnected,
dump the outgoing message queue, so nobody will get confused
trying to send them or thinking stuff is pending to be sent
* bus/test.c: verbosity changes
* bus/driver.c: verbosity/assertion changes
* bus/dispatch.c: a bunch of little tweaks to get it working again
because this patchset changes when/where you need to block.
|
|
|
|
|
|
|
|
| |
* test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
threads for more time, so sysprof can get a grip on it.
* dbus/dbus-string.c (_dbus_string_validate_utf8): remove
pointless variable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* test/glib/test-profile.c: fix this thing up a bit
* dbus/dbus-message.c (dbus_message_new_empty_header): increase
preallocation sizes by a fair bit; not sure if this will be an
overall performance win or not, but it does reduce reallocs.
* dbus/dbus-string.c (set_length, reallocate_for_length): ignore
the test hack that forced constant realloc if asserts are
disabled, so we can profile sanely. Sprinkle in some
_DBUS_UNLIKELY() which are probably pointless, but before I
noticed the real performance problem I put them in.
(_dbus_string_validate_utf8): micro-optimize this thing a little
bit, though callgrind says it didn't help; then special-case
ascii, which did help a lot; then be sure we detect nul bytes as
invalid, which is a bugfix.
(align_length_then_lengthen): add some more _DBUS_UNLIKELY
superstition; use memset to nul the padding instead of a manual
loop.
(_dbus_string_get_length): inline this as a
macro; it showed up in the profile because it's used for loop
tests and so forth
|
| |
|
|
|
|
|
| |
* dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
for extra paranoia.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-string.c (_dbus_string_get_length): New
function, writes DBusString to C buffer.
* dbus/dbus-string.h: Prototype it.
* dbus/dbus-message.c (dbus_message_type_to_string): New
function, converts message type into C string.
* dbus/dbus-message.h: Prototype it.
* bus/selinux.c (bus_selinux_check): Take source pid,
target pid, and audit data. Pass audit data to
avc_has_perm.
(log_audit_callback): New function, appends extra
audit information.
(bus_selinux_allows_acquire_service): Also take
service name, add it to audit data.
(bus_selinux_allows_send): Also take message
type, interface, method member, error name,
and destination, and add them to audit data.
(log_cb): Initialize func_audit.
* bus/selinux.h (bus_selinux_allows_acquire_service)
(bus_selinux_allows_send): Update prototypes
* bus/services.c (bus_registry_acquire_service): Pass
service name to bus_selinux_allows_acquire_service.
* bus/bus.c (bus_context_check_security_policy): Pass
additional audit data. Move assignment of dest
to its own line.
|
|
|
|
|
| |
* dbus/dbus-transport-unix.c (do_authentication): Always
initialize auth_completed.
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
parameter for fd to write pid to.
* dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
* bus/bus.c (bus_context_new): Pass print_pid_fd
to _dbus_become_daemon (bug #1720)
|
|
|
|
|
| |
* dbus/dbus-glib.h: Update documentation to not
refer to internal APIs.
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
the DBusUserInfo structure since this is passed into the function.
This would cause a double free when the function that allocated
the structure would try to free it when an error occured.
* (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
for service activation to avoid 32bit/64bit parallel install issues
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-transport-unix.c (do_authentication): Return
authentication status to callers.
(unix_handle_watch): If we completed authentication this round,
don't do another read. Instead wait until the next iteration,
after we've read any pending data in the auth buffer.
(unix_do_iteration): Ditto.
(unix_handle_watch): Updated for new do_authentication prototype.
|
|
|
|
|
|
| |
* dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
(dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
format specifier mismatches.
|
|
|
|
|
| |
* glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL pointer
(bug #1540, Leonardo Boiko).
|
|
|
|
|
|
| |
match rules (bug #1439).
* dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/busconfig.dtd: update the DTD for the at_console attribute.
* bus/driver.c (bus_driver_handle_hello): correctly handle Hello
messages after the first one (bug #1389).
* bus/dispatch.c (check_double_hello_message): add a test case for the
double hello message bug. (check_existent_service_activation): fix
check of spawning error.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
More fixes from Steve Grubb
* dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
(_dbus_listen_tcp_socket): fix fd leak
* dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
EINTR to a bit lower in the code
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bus/config-parser.c:
(struct PolicyType): Add POLICY_CONSOLE
(struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
(start_busconfig_child): Sets up console element when
<policy at_console=""> is encountered in a policy file
(append_rule_from_element): Convert console elements to console
rules.
* bus/policy.c:
(bus_policy_create_client_policy): Add console rules to the client
policy based on if the client is at the console
(bus_policy_append_console_rule): New function for adding a
console rule to a policy
(bus_policy_merge): Handle console rule merging
* dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
where we check for console user files
* dbus/dbus-sysdeps.c:
(_dbus_file_exists): New function which checks if the given
file exists
(_dbus_user_at_console): New function which does the system
specific process of checking if the user is at the console
* dbus/dbus-userdb.c:
(_dbus_is_console_user): New function converts a UID to user name
and then calls the system specific _dbus_user_at_console to
see if the user is at the console and therefor a console user
|
|
|
|
|
| |
* dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
it's been replaced by dbus_g_bus_get
|
| |
|
|
|
|
|
| |
* dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
drop supplementary groups, suggested by Steve Grubb
|
|
|
|
|
|
|
|
|
| |
DBusError that was causing a memoy leak (bug #989).
* dbus/dbus-keyring.c, dbus/dbus-message.c: fix compilation on
Solaris/Forte C (bug #974)
* bus/main.c (main): plug two minuscule memleaks.
|
|
|
|
|
| |
* COPYING: switch to Academic Free License version 2.1 instead of
2.0, to resolve complaints about patent termination clause.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the SELinux support.
* doc/busconfig.dtd: update DTD for SELinux support.
* bus/config-loader-libxml.c: fix error handler and parser
initialisation/cleanup. OOM test now works with libxml2 HEAD.
* configure.in: remove the warning about libxml2
* dbus/dbus-bus.c: silence doxygen warning.
|
|
|
|
|
|
|
|
| |
* bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
dbus_error_set.
* bus/dispatch.c (check_send_exit_to_service): fix the test case,
broken by the change in the _SET_OOM macros.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
* bus/selinux.c, bus/selinux.h: new file encapsulating selinux
functionality
* configure.in: add --enable-selinux
* bus/policy.c (bus_policy_merge): add FIXME to a comment
* bus/main.c (main): initialize and shut down selinux
* bus/connection.c: store SELinux ID on each connection, to avoid
repeated getting of the string context and converting it into
an ID
* bus/bus.c (bus_context_get_policy): new accessor, though it
isn't used
(bus_context_check_security_policy): check whether the security
context of sender connection can send to the security context of
recipient connection
* bus/config-parser.c: add parsing for <selinux> and <associate>
* dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
implement dbus_connection_get_unix_fd()
* dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
function, used by the selinux stuff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
backend for config file loader. Doesn't work with full OOM test yet.
* configure.in: change error when selecting libxml into a warning.
* test/data/invalid-config-files: add two non-well-formed XML files.
* glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
* dbus/dbus-transport-unix.c (unix_handle_watch): do not disconnect in
case of DBUS_WATCH_HANGUP, several do_reading() may be necessary to
read all the buffer. (bug #894)
* bus/activation.c (bus_activation_activate_service): fix a potential
assertion failure (bug #896). Small optimization in the case of
auto-activation messages.
* dbus/dbus-message.c (verify_test_message, _dbus_message_test): add
test case for byte-through-vararg bug (#901). patch by Kimmo
Hämäläinen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
breaking build on Solaris, reported by Farhad Saberi on the ML.
* dbus/dbus-message.c (dbus_message_append_args_valist): fix the
va_arg invocation to account for integer promotion in the case of
DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
* bus/services.c (bus_service_remove_owner): fix bug #902, use
_dbus_list_get_first_link, not _dbus_list_get_first.
* dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
* dbus/dbus-object-tree.c (free_subtree_recurse): always null
handler functions so that the asserts in _dbus_object_subtree_unref
do not fail.
* dbus/dbus-transport-unix.c (do_reading):
_dbus_transport_queue_messages return value is of type
dbus_bool_t, not DBusDispatchStatus.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
* bus/dispatch.c:
(check_get_connection_unix_user): Debug says GetProperty; but the
method is called GetConnectionUnixUser
(check_get_connection_unix_process_id): New function
(bus_dispatch_test): Actually call check_get_connection_unix_user();
also call check_get_connection_unix_process_id()
* bus/driver.c:
(bus_driver_handle_get_connection_unix_process_id): New function,
handles GetConnectionUnixProcessID on the org.freedesktop.DBus
interface
* dbus/dbus-auth.c:
(handle_server_data_external_mech): Set pid from the credentials
obtained from the socket
* dbus/dbus-connection.c:
(dbus_connection_get_unix_process_id): New function
* dbus/dbus-connection.h:
Add prototype for dbus_connection_get_unix_process_id
* dbus/dbus-transport.c:
(_dbus_transport_get_unix_process_id): New function
* dbus/dbus-transport.h:
Add prototype for _dbus_transport_get_unix_process_id
|
|
|
|
| |
<chipx86@gnupdate.org>
|
| |
|