It's possible to get Openoffice to accept UNO connections over a unix domain socket with:
$soffice -headless -invisible -nocrashreport -nodefault -nologo -nofirststartwizard -norestore -conversionmode -accept='pipe,name=marcin_OOffice;urp;StarOffice.ComponentContext'
netstat shows that the domain socket is created at /tmp/OSL_PIPE_1001_marcin_OOffice. That's fine, but as I will be running this on a shared host, I'd like to have the socket somewhere else, e.g. in my home drive. However, passing a full file path (either relative or absolute) as the name parameter results in no socket being created.
Is there a way I can influence where the socket is created, e.g. with an environment variable?
EDIT: Setting TMP and TMPDIR environment variables does not affect this behaviour. I'm running this on linux.
Since there doesn't seem to be an "official" way of controlling where the socket gets created you can go down the "sledgehammer to crack a nutshell" road by writing your own shared object that interposes on
connect()and rewrites anyAF_FILEaddresses in /tmp:Compile with:
And then run as:
which seems to work from reading the strace output (but I have no idea how to actually exercise the socket to prove that it really works).