This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/105613/

On August 22nd, 2012, 10:13 a.m., Christoph Feck wrote:

Any comment? I would like to get it into 4.9.1, because we are continously getting crash reports for KTorrent. I tried contacting kdnssd maintainer, but got no answer.

On August 22nd, 2012, 11:09 a.m., Thomas Lübking wrote:

"Ship It!"

"avahi" == "bonjour" == "zeroconf" == dnssd implementation ("DNS-Based Service Discovery" ie. network / service autoconfig invented for apple users. Itunes runs around and checks for pers. Cups uses it as well.)

Given " d->m_running" is used as condition to trigger "stop()" in ::publishAsync() and a pointer check might be superfluous but no harm - yet is performed in many other locations as well - both changes are reasonable, should not carry any harm and if they prevent a segfault will rather do good then bad (could shadow a more general issue)

That's however no official "ship it" but just imo, based on abstract code review :-\
kbattleship uses PublicService to ease the location of other people in your network with who to play. You might give it a quick try to see you did not break anything (in case you have avahi installed)

- Albert


On July 19th, 2012, 1:55 a.m., Christoph Feck wrote:

Review request for kdelibs, KTorrent, Joris Guisson, and Thiago Macieira.
By Christoph Feck.

Updated July 19, 2012, 1:55 a.m.

Description

This is my attempt to fix the crash. As far as I followed the code, the crash is because of m_group == 0 in serverStateChanged() when the avahi server is initially "registering" or in "collision", and not "running" yet. When e.g. KTorrent starts, it is possible that the avahi server needs some time until it is fully setup. The m_group is initialized when the first tryApply() is called, which only happens when server is initially in "running" state.

Additionally, the m_running variable was never reset to false in stop(), so the (sync) publish() would never return on failure.

Testing

I have no idea what avahi is or how it works, so I did not test it.
Bugs: 215288

Diffs

  • dnssd/avahi-publicservice.cpp (52bef22)

View Diff