diff --git a/ivette/src/dome/misc/system.ts b/ivette/src/dome/misc/system.ts index b43e52c2b7a1c8635656388283dce94ee2635554..99bcf87c156d06697c1cf614b40227f90fc06f62 100644 --- a/ivette/src/dome/misc/system.ts +++ b/ivette/src/dome/misc/system.ts @@ -144,6 +144,9 @@ export function getDocuments() { return appProxy.getPath('documents'); } /** Returns user's downloads directory. */ export function getDownloads() { return appProxy.getPath('downloads'); } +/** Returns temporary directory. */ +export function getTempDir() { return appProxy.getPath('temp'); } + /** Working directory (Application Window). diff --git a/ivette/src/frama-c/server.ts b/ivette/src/frama-c/server.ts index 774de2e8f93a727263a0f70ea2a129e5f30bd3c1..986a69a6695b861c487abe11278b056cec1458f7 100644 --- a/ivette/src/frama-c/server.ts +++ b/ivette/src/frama-c/server.ts @@ -401,7 +401,7 @@ export interface Configuration { command?: string; /** Additional server arguments (default: empty). */ params: string[]; - /** Server socket (default: `ipc:///.frama-c.<pid>.io`). */ + /** Server socket (default: `ipc:///tmp/ivette.frama-c.<pid>.io`). */ sockaddr?: string; /** Shutdown timeout before server is hard killed, in milliseconds * (default: 300ms). */ @@ -465,12 +465,14 @@ async function _launch() { } buffer.append('\n'); - if (!cwd) cwd = System.getWorkingDir(); if (!sockaddr) { - const socketfile = System.join(cwd, `.frama-c.${System.getPID()}.io`); + const tmp = System.getTempDir(); + const pid = System.getPID(); + const socketfile = System.join(tmp, `ivette.frama-c.${pid}.io`); System.atExit(() => System.remove(socketfile)); sockaddr = `ipc://${socketfile}`; } + if (!cwd) cwd = System.getWorkingDir(); logout = logout && System.join(cwd, logout); logerr = logerr && System.join(cwd, logerr); params = ['-server-zmq', sockaddr, '-then'].concat(params);