diff options
Diffstat (limited to 'src/serviceframework')
-rw-r--r-- | src/serviceframework/ipc/qremoteserviceregister_unix_p.cpp | 10 | ||||
-rw-r--r-- | src/serviceframework/qservicedebuglog.cpp | 5 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/serviceframework/ipc/qremoteserviceregister_unix_p.cpp b/src/serviceframework/ipc/qremoteserviceregister_unix_p.cpp index 762b643b..75654606 100644 --- a/src/serviceframework/ipc/qremoteserviceregister_unix_p.cpp +++ b/src/serviceframework/ipc/qremoteserviceregister_unix_p.cpp @@ -985,7 +985,7 @@ int doStart(const QString &location) { int pipefd[2]; - if (-1 == (pipe2(pipefd, O_CLOEXEC))) { + if (-1 == (pipe(pipefd))) { qWarning("pipe2 failed: %s", ::strerror(errno)); #ifndef Q_OS_MAC ::inotify_rm_watch(fd, wd); @@ -996,6 +996,12 @@ int doStart(const QString &location) { return socketfd; } + flags = fcntl(pipefd[0], F_GETFL, 0); + fcntl(pipefd[0], F_SETFL, flags|O_CLOEXEC); + flags = fcntl(pipefd[1], F_GETFL, 0); + fcntl(pipefd[1], F_SETFL, flags|O_CLOEXEC); + + qint64 pid = 0; // Start the service as a detached process @@ -1018,7 +1024,7 @@ int doStart(const QString &location) { execlp(path.toLatin1(), path.toLatin1(), NULL); - qWarning("exec of process %s failed: %s", path.toLatin1(), ::strerror(errno)); + qWarning() << "exec of process" << path.toLatin1() << ::strerror(errno); qServiceLog() << "class" << "doStart" << "event" << "failed start" diff --git a/src/serviceframework/qservicedebuglog.cpp b/src/serviceframework/qservicedebuglog.cpp index e9cbdf60..30a2b54d 100644 --- a/src/serviceframework/qservicedebuglog.cpp +++ b/src/serviceframework/qservicedebuglog.cpp @@ -48,8 +48,13 @@ #include <QCoreApplication> #include <QFileInfo> +#ifdef QT_SFW_IPC_DEBUG #ifdef Q_OS_UNIX #include <signal.h> +#include <errno.h> +#endif +#include <QNetworkInterface> +#include <QUdpSocket> #endif QT_BEGIN_NAMESPACE |