[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-games-devel
Subject:    Re: [Kde-games-devel] setDiscoveryInfo ?
From:       Jakub Stachowski <stachowski () hypair ! net>
Date:       2005-08-19 14:12:38
Message-ID: 200508191612.39077.stachowski () hypair ! net
[Download RAW message or body]

Dnia piątek, 19 sierpnia 2005 15:15, Kleag napisał:> It's more like that:
[ ... ]
> stat64("/home/gael/kde3.4.1/share/config/kdnssdrc", 0xbfffdb10) = -1 ENOENT> (No \
> such file or directory)> socket(PF_FILE, SOCK_STREAM, 0)         = 12> connect(12, \
> {sa_family=AF_FILE, path="/var/run/mdnsd"}, 110) = -1 ENOENT> (No such file or \
> directory)> rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0> rt_sigaction(SIGCHLD, \
> NULL, {0xb7683ee0, [], SA_RESTART|SA_NOCLDSTOP}, 8) => 0 \
> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0> nanosleep({1, 0}, {1, 0})             \
> = 0> connect(12, {sa_family=AF_FILE, path="/var/run/mdnsd"}, 110) = -1 ENOENT> (No \
> such file or directory)> rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0> \
> rt_sigaction(SIGCHLD, NULL, {0xb7683ee0, [], SA_RESTART|SA_NOCLDSTOP}, 8) => 0 \
> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0> nanosleep({1, 0}, {1, 0})             \
> = 0> connect(12, {sa_family=AF_FILE, path="/var/run/mdnsd"}, 110) = -1 ENOENT> (No \
> such file or directory)> rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0> \
> rt_sigaction(SIGCHLD, NULL, {0xb7683ee0, [], SA_RESTART|SA_NOCLDSTOP}, 8) => 0 \
> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0> nanosleep({1, 0}, {1, 0})             \
> = 0> connect(12, {sa_family=AF_FILE, path="/var/run/mdnsd"}, 110) = -1 ENOENT> (No \
> such file or directory)> rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0> \
> rt_sigaction(SIGCHLD, NULL, {0xb7683ee0, [], SA_RESTART|SA_NOCLDSTOP}, 8) => 0 \
> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0> nanosleep({1, 0}, {1, 0})             \
> = 0
Yeah, it is libdns_sd doing idiotic thing - trying to connect to mdnsd over and over \
despite it is not running. I commited a fix to 3.5 branch (i will backport it to 3.4 \
too) that first checks if mdnsd is really running before trying to make any \
publishing.As a workaround for users with kdelibs 3.4.0-3.4.2 you can use following \
code (from kdelibs/dnssd/servicebrowser.cpp) as a workaround: bool dnssdAvailable() { \
QFile f("/var/run/mdnsd.pid");        if (!f.open(IO_ReadOnly)) return false; // no \
pidfile        QString line;        if (f.readLine(line,16)<1) return false;        \
unsigned int pid = line.toUInt();        if (pid==0) return Stopped;           // not \
a pid        return (kill(pid,0)==0 || errno==EPERM);        // signal 0 only checks \
if process is running, mdnsd is probably owned // by 'nobody' so we will  get EPERM, \
if mdnsd is not running error will be ESRCH} if (dnssdAvailable) \
setDiscoveryInfo("_ksirk._tcp");_______________________________________________kde-games-devel \
mailing listkde-games-devel@kde.orghttps://mail.kde.org/mailman/listinfo/kde-games-devel



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic