mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-09 16:02:46 +08:00
fixed: ipc client connected event was being wiped out
daemon now communicates graceful shutdown message through new ipc system.
This commit is contained in:
@@ -68,13 +68,12 @@ void IpcClient::read()
|
||||
stream.readRawData(data, len);
|
||||
|
||||
readLogLine(QString::fromUtf8(data, len));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default: {
|
||||
std::cout << "invalid code: " << codeBuf[0] << std::endl;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
std::cerr << "message type not supported: " << codeBuf[0] << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,7 +92,7 @@ void IpcClient::error(QAbstractSocket::SocketError error)
|
||||
QTimer::singleShot(1000, this, SLOT(connectToHost()));
|
||||
}
|
||||
|
||||
void IpcClient::write(unsigned char code, unsigned char length, const char* data)
|
||||
void IpcClient::write(int code, int length, const char* data)
|
||||
{
|
||||
QDataStream stream(m_Socket);
|
||||
|
||||
@@ -102,12 +101,20 @@ void IpcClient::write(unsigned char code, unsigned char length, const char* data
|
||||
stream.writeRawData(codeBuf, 1);
|
||||
|
||||
switch (code) {
|
||||
case kIpcCommand: {
|
||||
char lenBuf[2];
|
||||
intToBytes(length, lenBuf, 2);
|
||||
stream.writeRawData(lenBuf, 2);
|
||||
stream.writeRawData(data, length);
|
||||
}
|
||||
case kIpcHello:
|
||||
stream.writeRawData(data, 1);
|
||||
break;
|
||||
|
||||
case kIpcCommand: {
|
||||
char lenBuf[2];
|
||||
intToBytes(length, lenBuf, 2);
|
||||
stream.writeRawData(lenBuf, 2);
|
||||
stream.writeRawData(data, length);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
std::cerr << "message type not supported: " << code << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
IpcClient();
|
||||
virtual ~IpcClient();
|
||||
|
||||
void write(unsigned char code, unsigned char length, const char* data);
|
||||
void write(int code, int length, const char* data);
|
||||
|
||||
public slots:
|
||||
void connectToHost();
|
||||
@@ -55,14 +55,14 @@ private:
|
||||
QTcpSocket* m_Socket;
|
||||
};
|
||||
|
||||
enum IpcMessageType {
|
||||
enum qIpcMessageType {
|
||||
kIpcHello,
|
||||
kIpcLogLine,
|
||||
kIpcCommand,
|
||||
kIpcShutdown,
|
||||
};
|
||||
|
||||
enum IpcClientType {
|
||||
enum qIpcClientType {
|
||||
kIpcClientUnknown,
|
||||
kIpcClientGui,
|
||||
kIpcClientNode,
|
||||
|
||||
@@ -686,7 +686,7 @@ void MainWindow::sendDaemonCommand(const QString& command, bool showErrors)
|
||||
{
|
||||
std::string s = command.toStdString();
|
||||
const char* data = s.c_str();
|
||||
m_IpcClient.write(Command, strlen(data), data);
|
||||
m_IpcClient.write(kIpcCommand, strlen(data), data);
|
||||
}
|
||||
|
||||
void MainWindow::on_m_pActionWizard_triggered()
|
||||
|
||||
@@ -69,10 +69,6 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
|
||||
synergyServer
|
||||
};
|
||||
|
||||
enum qIpcMessage {
|
||||
Command = 1
|
||||
};
|
||||
|
||||
enum qLevel {
|
||||
Error,
|
||||
Info
|
||||
@@ -135,7 +131,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
|
||||
bool serverArgs(QStringList& args, QString& app);
|
||||
void setStatus(const QString& status);
|
||||
void sendDaemonCommand(const QString& command, bool showErrors);
|
||||
void sendIpcMessage(qIpcMessage type, const char* buffer, bool showErrors);
|
||||
void sendIpcMessage(qIpcMessageType type, const char* buffer, bool showErrors);
|
||||
|
||||
private:
|
||||
QSettings& m_Settings;
|
||||
|
||||
Reference in New Issue
Block a user