On Thu Mar 27 00:34:06 2025 +0000, Ralf Habacker wrote:
See https://gitlab.winehq.org/wine/wine/-/merge_requests/7650/diffs?commit_id=bd... for my attempt to fix the problem. Select https://gitlab.winehq.org/wine/wine/-/merge_requests/7650/diffs and server/fd.c to see the full changes.
Yeah the code control flow now make more sense, the ```c if ((errno == EOPNOTSUPP || errno == ENXIO) && S_ISSOCK(st.st_mode) && (options & FILE_DELETE_ON_CLOSE)) ; else ``` can be replaced with ```c if (!((errno == EOPNOTSUPP || errno == ENXIO) && S_ISSOCK(st.st_mode) && (options & FILE_DELETE_ON_CLOSE))) ``` But that is just a cosmetic change.
Also, I am not sure putting `S_ISSOCK(st.st_mode)` in a separate branch was necessary, I think the original commit relied on AF_UNIX deletion going thru regular deletion code path.