5 ms·
indeed; it should be trivial in any language. Here's python: https://github.com/9001/copyparty/blob/a080759a03ef5c0a6b06c697f37ae4e00812739f/copyparty/svchub.py
by tripflag 3y ago
indeed; it should be trivial in any language. Here's python: https://github.com/9001/copyparty/blob/a080759a03ef5c0a6b06c697f37ae4e00812739f/copyparty/svchub.py#L1019-L1038 https://github.com/9001/copyparty/blob/a080759a03ef5c0a6b06c...
- cesarb 3y agoIt should be trivial in any language which has AF_UNIX. Last time I looked, Java didn't have it, so the only way was to call into non-Java code.
- reftel 3y agoThen I suggest you have another look =) https://inside.java/2021/02/03/jep380-unix-domain-sockets-channels/ https://inside.java/2021/02/03/jep380-unix-domain-sockets-ch...
- fullstop 3y agoAt first I thought that this surely could not be true as of today, but it looks like it is. There is AF_UNIX support, but only for streams and not datagrams: https://bugs.openjdk.org/browse/JDK-8297837 https://bugs.openjdk.org/browse/JDK-8297837 What an odd decision. I suppose that you could execute systemd-notify but that's a solution that I would not like.
- cesarb 3y ago> I suppose that you could execute systemd-notify but that's a solution that I would not like. What I did was to use JNA to call sd_notify() in libsystemd.so.0 (when that library exists), which works but obviously does not avoid using libsystemd. I suppose I could have done all the socket calls into glibc by hand, but doing that single call into libsystemd directly was simpler (and it can be expected to exist whenever systemd is being used).
- ptx 3y agoIt looks like the FFI (Project Panama) finally landed in Java 22, released a few days ago: https://openjdk.org/jeps/454 https://openjdk.org/jeps/454 Unless that feature also has some weird limitation, you could probably use that to call the socket API in libc.