No description
Find a file
Tanu Kaskinen cb78d6f57c bluez5-util: fix profile waiting logic
There were two bugs in the old logic. The first one:

If a device has two profiles, the old code would start the wait timer
when the first profile connects, but when the second profile connects,
the timer would not get stopped and the CONNECTION_CHANGED hook would
not get fired, because the code for that was inside an if block that
only gets executed when the first profile connects. As a result,
module-bluez5-device loading would always be delayed until the wait
timeout expires.

The second bug:

A crash was observed in device_start_waiting_for_profiles(). That
function is called whenever the connected profile count changes from 0
to 1. The function also has an assertion that checks that the timer is
not running when the function is called. That assertion crashed in the
following scenario with a headset that supports HSP and A2DP:

1. First HSP gets connected. The timer is started.

2. Then HSP gets disconnected for some reason. The timer is still
running.

3. Then A2DP gets connected. device_start_waiting_for_profiles() is
called, because the connected profile count changed from 0 to 1 again.
The timer is already running, so the assertion fails.

First I thought I'd remove the assertion from
device_start_waiting_for_profiles() and just restart the timer on the
second call, but then I figured that when the device returns to the
"everything disconnected" state in step 2, it would be better to stop
the timer. The purpose of the timer is to delay the notification of the
device becoming connected, but if the device becomes disconnected during
the waiting period, the notification doesn't make sense any more, and
therefore the timer doesn't make sense either.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=100237
2017-03-28 21:56:05 +03:00
coverity build: Add Coverity scan model 2017-03-06 08:22:33 +01:00
doc doc: Add an example stream-restore fallback table file. 2011-10-01 13:25:16 +01:00
doxygen update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
m4 build-sys: Move to compiling with C11 support 2016-02-25 09:09:13 +05:30
man sink, source: Add a mode to avoid resampling if possible 2017-01-30 13:54:43 +05:30
po i18n: add Lithuanian translation 2017-01-06 21:02:06 +02:00
scripts scripts: Plot memory benchmarks using gnuplot 2015-10-31 15:29:48 +02:00
shell-completion shell-completion: update zsh completion for pasuspender 2017-01-19 03:00:45 +02:00
src bluez5-util: fix profile waiting logic 2017-03-28 21:56:05 +03:00
vala vala: use the correct syntax 2017-01-19 03:00:45 +02:00
.gitignore gitignore: Add .orig and .rej to gitignore 2015-12-18 13:34:46 +01:00
.mailmap add a .mailmap file for git shortlog 2009-02-04 22:41:45 +01:00
.travis.yml build-sys: Enable clang-based builds on Travis 2017-01-24 17:17:59 +05:30
AGPL LICENSE: add a note about qpaeq being licensed under AGPL 2017-01-03 04:21:38 +02:00
autogen.sh update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
bootstrap.sh build-sys: Don't override libtoolize 2017-01-19 03:00:45 +02:00
configure.ac padsp: allow overriding library install location 2017-01-19 03:00:45 +02:00
git-version-gen git-version-gen: Avoid further processing when tarball-version is present 2015-10-20 16:55:23 +02:00
GPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
LGPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
libpulse-mainloop-glib.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse-simple.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
LICENSE LICENSE: add a note about qpaeq being licensed under AGPL 2017-01-03 04:21:38 +02:00
Makefile.am build-sys: add the AGPL license file to tarballs 2017-01-18 05:45:11 +02:00
NEWS update NEWS 2017-01-18 05:43:37 +02:00
orc.mak build-sys: Move ORC_SOURCE definitions outside of "if HAVE_ORC" 2014-01-24 22:56:27 +02:00
PROTOCOL protocol-native: Don't signal memfd support for 9.0 clients 2016-11-19 15:11:59 +02:00
pulseaudio-text.svg merge 'lennart' branch back into trunk. 2007-10-28 19:13:50 +00:00
pulseaudio.supp Add a Valgrind suppression file 2014-09-21 11:00:51 +03:00
pulseaudio.svg Add PulseAudio logo to tree. 2006-08-28 06:25:41 +00:00
PulseAudioConfig.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
PulseAudioConfigVersion.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
README Remove link to CIA from README 2014-10-28 17:36:21 +01:00
todo Update todo 2011-06-24 00:35:26 +01:00

PULSEAUDIO SOUND SERVER

WEB SITE:
	http://pulseaudio.org/

GIT:
	git://anongit.freedesktop.org/pulseaudio/pulseaudio

GITWEB/CGIT:
	http://cgit.freedesktop.org/pulseaudio/pulseaudio/

MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

GIT COMMITS MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits

TRAC/BUGZILLA TICKET CHANGES MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-bugs

IRC:
	#pulseaudio on irc.freenode.org

FRESHMEAT:
	http://freshmeat.net/projects/pulseaudio/

OHLOH:
	http://www.ohloh.net/projects/4038

AUTHORS:
	Several

HACKING:
	In order to run pulseaudio from the build dir __OPTIMIZE__ should be
	disabled (look at src/pulsecore/core-util.h::pa_run_from_build_tree()),
	this can be done by passing "CFLAGS=-O0" to the configure script:
	  ./autogen.sh
	  CFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure
	  make
	  ./src/pulseaudio -n -F src/default.pa -p $(pwd)/src/

SPELLING:
        PulseAudio