Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FvwmMFL: FVWMMFL_SOCKET needs rethinking #995

Closed
ThomasAdam opened this issue Apr 4, 2024 · 0 comments · Fixed by #1023
Closed

FvwmMFL: FVWMMFL_SOCKET needs rethinking #995

ThomasAdam opened this issue Apr 4, 2024 · 0 comments · Fixed by #1023
Assignees
Labels
relates:module Issue is in module code type:breaking Issue is not backwards-compatible and will break configs/build
Milestone

Comments

@ThomasAdam
Copy link
Member

ThomasAdam commented Apr 4, 2024

Currently, it's possible to change the listening socket for FvwmMFL via an environment variable, FVWMMFL_SOCKET. The reasons for this is that it makes it easier to move the socket path to different locations away from /tmp, to, say, $FVWM_USERDIR.

However, this single environment variable is reused across different running fvwm instances which means commands sent via FvwmPrompt or FvwmCommand end up going to the wrong fvwm instance, as it's a case of whichever process reads that first, is sent to the DISPLAY that fvwm is running on.

I think therefore, we should deprecate FVWMMFL_SOCKET, and replace it with FVWMMFL_SOCKET_PATH which defaults toTMPDIR (or /tmp if not set). Hence:

FVWMMFL_SOCKET_PATH/fvwmmfl_:2.sock

There is no requirement for the name of the socket to ever change, as it's namespaced to the DISPLAY it's running on, and there can only ever be one instance of that running per DISPLAY anyway.

It could be argued why even give the option of changing this if this FVWMMFL_SOCKET_PATH defaults to $TMPDIR... it's a valid point, but there could be a few reasons -- if one's $FVWM_USERDIR were on a NFS filesystem, there can be locking issues with sockets created on them, so having that elsewhere, on a non-NFS FS could make sense. Arguably, this uncommon though.

Given FVWMMFL_SOCKET is currently used internally by fvwm, and by NsCDE, I consider this change to be low impact, but still a breaking change.

@ThomasAdam ThomasAdam added type:breaking Issue is not backwards-compatible and will break configs/build relates:module Issue is in module code labels Apr 4, 2024
@ThomasAdam ThomasAdam added this to the 1.1.1 milestone Apr 4, 2024
@ThomasAdam ThomasAdam self-assigned this Apr 4, 2024
ThomasAdam added a commit that referenced this issue May 5, 2024
Currently, it's possible to change the listening socket for FvwmMFL via
an environment variable, FVWMMFL_SOCKET. The reasons for this is that it
makes it easier to move the socket path to different locations away from
/tmp, to, say, $FVWM_USERDIR.

However, this single environment variable is reused across different
running fvwm instances which means commands sent via FvwmPrompt or
FvwmCommand end up going to the wrong fvwm instance, as it's a case of
whichever process reads that first, is sent to the DISPLAY that fvwm is
running on.

Therefore, set FVWMMFL_SOCKET_PATH to a base directory, under which,
namespaced directories per DISPLAY for the relevant FvwmMFL sockets can
be created.

Fixes #995
ThomasAdam added a commit that referenced this issue May 5, 2024
Currently, it's possible to change the listening socket for FvwmMFL via
an environment variable, FVWMMFL_SOCKET. The reasons for this is that it
makes it easier to move the socket path to different locations away from
/tmp, to, say, $FVWM_USERDIR.

However, this single environment variable is reused across different
running fvwm instances which means commands sent via FvwmPrompt or
FvwmCommand end up going to the wrong fvwm instance, as it's a case of
whichever process reads that first, is sent to the DISPLAY that fvwm is
running on.

Therefore, set FVWMMFL_SOCKET_PATH to a base directory, under which,
namespaced directories per DISPLAY for the relevant FvwmMFL sockets can
be created.

Fixes #995
ThomasAdam added a commit that referenced this issue May 5, 2024
Currently, it's possible to change the listening socket for FvwmMFL via
an environment variable, FVWMMFL_SOCKET. The reasons for this is that it
makes it easier to move the socket path to different locations away from
/tmp, to, say, $FVWM_USERDIR.

However, this single environment variable is reused across different
running fvwm instances which means commands sent via FvwmPrompt or
FvwmCommand end up going to the wrong fvwm instance, as it's a case of
whichever process reads that first, is sent to the DISPLAY that fvwm is
running on.

Therefore, set FVWMMFL_SOCKET_PATH to a base directory, under which,
namespaced directories per DISPLAY for the relevant FvwmMFL sockets can
be created.

Fixes #995
ThomasAdam added a commit that referenced this issue May 5, 2024
Currently, it's possible to change the listening socket for FvwmMFL via
an environment variable, FVWMMFL_SOCKET. The reasons for this is that it
makes it easier to move the socket path to different locations away from
/tmp, to, say, $FVWM_USERDIR.

However, this single environment variable is reused across different
running fvwm instances which means commands sent via FvwmPrompt or
FvwmCommand end up going to the wrong fvwm instance, as it's a case of
whichever process reads that first, is sent to the DISPLAY that fvwm is
running on.

Therefore, set FVWMMFL_SOCKET_PATH to a base directory, under which,
namespaced directories per DISPLAY for the relevant FvwmMFL sockets can
be created.

Fixes #995
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
relates:module Issue is in module code type:breaking Issue is not backwards-compatible and will break configs/build
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant