• src/xpdev/filewrap.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Nov 10 22:12:10 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/09f98728aecf1e7049d04168
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Get rid of the fcntl() usage in sopen()

    You can't lock a file on a Samba share via both fcntl() and flock() (the interact/collide).

    This code was in a !BSD block which means they guy that wrote/committed
    it wasn't using it either.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Nov 10 23:52:50 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/043feff892a3a206ed12e9cf
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Log a build warning if building for Linux without OFD lock support

    OFD locks are needed on Linux for appropriate multi-threaded shared file
    access (using fcntl record locks to prevent corruption), so log a warning if building for Linux without that support.

    lock() now mimics DOS/Windows again: the result lock is an "all access" lock regardless of what mode the file was open in. I'm not sure why this change was made (commit 11b73134563ce26), but I don't think it was necessary or appropriate (though I can't think of any immediate negative effects). At minimum it makes the code a little more understandable and eliminates an
    extra call to fcntl().

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Nov 11 01:13:16 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d9d86d6a36f9133ed5b08189
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Revert the lock() change in commit 043feff8

    So this change is needed or else fcntl() will fail with errno=BADF if trying
    to write-lock a file that was opened read-only. Oh well. Added a comment explaining the rationale.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Dec 2 20:29:33 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/77a771095c72121700e96ca2
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Don't use flock() in sopen() since it ends up using non-OFD fcntl() locks

    When OFD locks are available, that's what we should be using.
    Otherwise, we suffer the horrible behavior of POSIX file/region locks and
    a subsequent open/close of the file releases any/all locks on it.

    This is currently in an !BSD block, which appears to include macOS, but
    macOS *does* support OFD locks, so I'll be fixing that here shortly.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Dec 4 18:48:28 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/6000b7606167fe18b73d63a7
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Clean up the OFD check/decision, make use of fcntl() locks easier to opt-in

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thu Dec 5 17:10:10 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/c88cfcedf21c1c9dd6bbeb97
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Fix typo in Windows version of xp_lockfile()

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thu Dec 5 17:16:34 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/c2f0aded1f86373335282c2a
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Move the xp_lockfile() into a compile block that includes Borland

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Thu Dec 5 17:32:00 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/f28db0b28d5f5d46c8801526
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Need locking.h here for Borland C++ build

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Thu Dec 5 17:43:13 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/f421f1bb88f20536b2af3d4c
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    In Boland's io.h, this function is just called locking()

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Thu Dec 5 17:53:11 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/fc17319e92c4b7af30123d57
    Modified Files:
    src/xpdev/filewrap.c
    Log Message:
    Appears MinGW requires '_locking' Borland requires 'locking' and MSVC does both

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net