Compare commits

...

2 Commits

Author SHA1 Message Date
be414891ec 🐛 Fix pipe path 2025-09-13 17:59:33 +08:00
787876ab6a 🗑️ Removed unused method 2025-09-13 15:57:45 +08:00
2 changed files with 5 additions and 66 deletions

View File

@@ -68,37 +68,6 @@ class UnixIpcServer extends IpcServer {
}
}
// Handle IPC handshake
void _onIpcHandshake(
IpcSocketWrapper socket,
Map<String, dynamic> params,
Map<String, Function> handlers,
) {
developer.log('IPC handshake: $params', name: kRpcIpcLogPrefix);
final ver = int.tryParse(params['v']?.toString() ?? '1') ?? 1;
final clientId = params['client_id']?.toString() ?? '';
if (ver != 1) {
developer.log(
'IPC unsupported version requested: $ver',
name: kRpcIpcLogPrefix,
);
socket.closeWithCode(IpcErrorCodes.invalidVersion);
return;
}
if (clientId.isEmpty) {
developer.log('IPC client ID required', name: kRpcIpcLogPrefix);
socket.closeWithCode(IpcErrorCodes.invalidClientId);
return;
}
socket.clientId = clientId;
handlers['connection']?.call(socket);
}
Future<String> _getMacOsSystemTmpDir() async {
final result = await Process.run('getconf', ['DARWIN_USER_TEMP_DIR']);
return (result.stdout as String).trim();

View File

@@ -13,7 +13,7 @@ class WindowsIpcServer extends IpcServer {
@override
Future<void> start() async {
final pipeName = r'\\.\pipe\discord-ipc'.toNativeUtf16();
final pipeName = r'\\.\pipe\discord-ipc-0'.toNativeUtf16();
try {
_pipeHandle = CreateNamedPipe(
pipeName,
@@ -32,7 +32,7 @@ class WindowsIpcServer extends IpcServer {
}
developer.log(
'IPC named pipe created at \\\\.\\pipe\\discord-ipc',
r'IPC named pipe created at \\.\pipe\discord-ipc-0',
name: kRpcIpcLogPrefix,
);
@@ -71,6 +71,7 @@ class WindowsIpcServer extends IpcServer {
await Isolate.spawn(_windowsIpcIsolate, receivePort.sendPort);
receivePort.listen((message) {
developer.log(message.toString(), name: kRpcIpcLogPrefix);
if (message is int) {
final socketWrapper = WindowsIpcSocketWrapper(message);
addSocket(socketWrapper);
@@ -87,7 +88,7 @@ class WindowsIpcServer extends IpcServer {
static void _windowsIpcIsolate(SendPort sendPort) {
while (true) {
final pipeHandle = CreateNamedPipe(
r'\\.\pipe\discord-ipc'.toNativeUtf16(),
r'\\.\pipe\discord-ipc-0'.toNativeUtf16(),
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
@@ -108,7 +109,7 @@ class WindowsIpcServer extends IpcServer {
sendPort.send(pipeHandle);
}
// Avoid tight loop
sleep(Duration(milliseconds: 100));
sleep(Duration(milliseconds: 500));
}
}
@@ -163,37 +164,6 @@ class WindowsIpcServer extends IpcServer {
);
}
}
// Handle IPC handshake
void _onIpcHandshake(
IpcSocketWrapper socket,
Map<String, dynamic> params,
Map<String, Function> handlers,
) {
developer.log('IPC handshake: $params', name: kRpcIpcLogPrefix);
final ver = int.tryParse(params['v']?.toString() ?? '1') ?? 1;
final clientId = params['client_id']?.toString() ?? '';
if (ver != 1) {
developer.log(
'IPC unsupported version requested: $ver',
name: kRpcIpcLogPrefix,
);
socket.closeWithCode(IpcErrorCodes.invalidVersion);
return;
}
if (clientId.isEmpty) {
developer.log('IPC client ID required', name: kRpcIpcLogPrefix);
socket.closeWithCode(IpcErrorCodes.invalidClientId);
return;
}
socket.clientId = clientId;
handlers['connection']?.call(socket);
}
}
class WindowsIpcSocketWrapper extends IpcSocketWrapper {