diff --git a/src/ioslaves/file/fdreceiver.h b/src/ioslaves/file/fdreceiver.h --- a/src/ioslaves/file/fdreceiver.h +++ b/src/ioslaves/file/fdreceiver.h @@ -22,15 +22,14 @@ #define FDRECEIVER_H #include -#include class QSocketNotifier; class FdReceiver : public QObject { Q_OBJECT public: - FdReceiver(const QString &path, QObject *parent = nullptr); + FdReceiver(const std::string &path, QObject *parent = nullptr); ~FdReceiver(); bool isListening() const; @@ -40,7 +39,7 @@ Q_SLOT void receiveFileDescriptor(); QSocketNotifier *m_readNotifier; - QString m_path; + std::string m_path; int m_socketDes; int m_fileDes; }; diff --git a/src/ioslaves/file/fdreceiver.cpp b/src/ioslaves/file/fdreceiver.cpp --- a/src/ioslaves/file/fdreceiver.cpp +++ b/src/ioslaves/file/fdreceiver.cpp @@ -24,16 +24,16 @@ #include "sharefd_p.h" #include "fdreceiver.h" -FdReceiver::FdReceiver(const QString &path, QObject *parent) +FdReceiver::FdReceiver(const std::string &path, QObject *parent) : QObject(parent) , m_readNotifier(nullptr) , m_path(path) , m_socketDes(-1) , m_fileDes(-1) { - const SocketAddress addr(m_path.toLocal8Bit().toStdString()); + const SocketAddress addr(m_path); if (!addr.address()) { - std::cerr << "Invalid socket address:" << qPrintable(m_path) << std::endl; + std::cerr << "Invalid socket address:" << m_path << std::endl; return; } @@ -43,7 +43,7 @@ return; } - ::unlink(m_path.toLocal8Bit().constData()); + ::unlink(m_path.c_str()); if (bind(m_socketDes, addr.address(), addr.length()) != 0 || listen(m_socketDes, 5) != 0) { std::cerr << "bind/listen error:" << strerror(errno) << std::endl; ::close(m_socketDes); @@ -60,7 +60,7 @@ if (m_socketDes >= 0) { ::close(m_socketDes); } - ::unlink(m_path.toLocal8Bit().constData()); + ::unlink(m_path.c_str()); } bool FdReceiver::isListening() const diff --git a/src/ioslaves/file/file_unix.cpp b/src/ioslaves/file/file_unix.cpp --- a/src/ioslaves/file/file_unix.cpp +++ b/src/ioslaves/file/file_unix.cpp @@ -87,7 +87,7 @@ PrivilegeOperationReturnValue FileProtocol::tryOpen(QFile &f, const QByteArray &path, int flags, int mode, int errcode) { const QString sockPath = socketPath(); - FdReceiver fdRecv(sockPath); + FdReceiver fdRecv(QFile::encodeName(sockPath).toStdString()); if (!fdRecv.isListening()) { return PrivilegeOperationReturnValue::failure(errcode); }