• src/xpdev/filewrap.h

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Thursday, May 20, 2021 03:02:41
    https://gitlab.synchro.net/main/sbbs/-/commit/27c79cad3318dff6889f8318
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Create a Win32 wrapper for mkstemp() as MSVC doesn't have it

    SBBSecho uses mkstemp() now (instead of tempnam()) - so we need this POSIX function wrapper for Windows builds to succeed.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Saturday, February 19, 2022 23:38:06
    https://gitlab.synchro.net/main/sbbs/-/commit/cb76b1463cfec65f1dc90e6f
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Add DISABLE_MKSTEMP_DEFINE support

    This macro as written won't compile on mingw32 due to the attributes
    on _mktemp(). This could be worked around, but it's easier to just
    disable it since I don't need it, and nobody else is building with
    mingw32.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Friday, February 25, 2022 13:05:26
    https://gitlab.synchro.net/main/sbbs/-/commit/e4adeee8dff35620f95fe55e
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Add a mingw32 compatible mode_t

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Friday, February 25, 2022 14:30:46
    https://gitlab.synchro.net/main/sbbs/-/commit/cff6d9918688352e8d41b19b
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Fix sbbs-windows build

    BCC error filewrap.h 77: Multiple declaration for 'mode_t'

    Introduced in commit e4adeee8

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thursday, March 10, 2022 00:15:59
    https://gitlab.synchro.net/main/sbbs/-/commit/2465ac46256220aefa49cc95
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Fix FreeBSD/Clang C++ error

    /usr/include/c++/v1/iterator:1168:87: error: expected unqualified-id
    ...&& traits_type::eq_int_type(__sbuf_->sputc(__c), traits_type::eof()))
    ^ /src/sbbs3/../xpdev/filewrap.h:124:21: note:

    expanded from macro 'eof'
    #define eof(fd) (tell(fd)==filelength(fd))

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (in GitKraken)@VERT to Git commit to main/sbbs/master on Sunday, February 19, 2023 13:42:55
    https://gitlab.synchro.net/main/sbbs/-/commit/edf9bc341b88832d376973d7
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    _chsize_s() is only available in MSVC, apparently

    Fixes Borland and mingw-GCC builds.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Sunday, June 11, 2023 14:33:40
    https://gitlab.synchro.net/main/sbbs/-/commit/c2291604b9b9a678e79167a4
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Fix runtime errors when built with UBSan

    nopen.c:37:15: runtime error: left shift of 1 by 31 places cannot be
    represented in type 'int'
    nopen.c:39:18: runtime error: left shift of 1 by 31 places cannot be
    represented in type 'int'
    userdat.c:251:111: runtime error: left shift of 1 by 31 places cannot be
    represented in type 'int'

    There are lot of 1<<31 macro definitions in this repo, so I'm expecting a
    lot more of this type of fix to be required to make UBSan happy.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thursday, November 23, 2023 17:49:22
    https://gitlab.synchro.net/main/sbbs/-/commit/07a0cc3e2cbf6b4537a242ac
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Add FCLOSE_OPEN_FILE to close a FILE*, if it's open (non-NULL), and NULLify it

    Change CLOSE_OPEN_FILE to a do/while(0) to eliminate extraneous semicolon

    ---
    þ 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 Sunday, November 10, 2024 21:56:44
    https://gitlab.synchro.net/main/sbbs/-/commit/77c31de6b8e073473950fe37
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Fix write-locks (deny-all/exclusive flocks) in sopen()

    SH_DENYRW (deny-all) locks were broken 18 years ago with commit b866f1990a.

    This fixes that by treating SH_COMPAT the same as SH_DENYNO (only), rather
    than the same as SH_DENYNO or SH_DENYRW (and performing no locking).

    This is likely the/a root-cause of some SBBS file corruption on *nix systems.

    ---
    þ 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 Tuesday, November 12, 2024 18:17:07
    https://gitlab.synchro.net/main/sbbs/-/commit/ac9c138a8e5158192868bf56
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Add FILE_RETRY_ERRNO() definition, to be used in sopen()/lock() loops

    Note: EBUSY was added to the list of errno values that should cause a retry
    as observed on Vertrauen, running sbbs-linux on a Samba mount, opening
    locked files can return failure (-1) with errno = EBUSY, e.g.
    evnt BBS Events !ERROR 16 (Device or resource busy) in logon.cpp line 616 (logonstats) reading "system stats" access=0

    This was apparently resolved by adding EBUSY (16) the values that trigger an sopen()
    retry (i.e. from [f]nopen()).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on macOS)@VERT to Git commit to main/sbbs/master on Saturday, November 30, 2024 00:37:44
    https://gitlab.synchro.net/main/sbbs/-/commit/8f79b2099df41e212ef2030f
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Retry file lock/read operations on EIO errors

    As seen on MacOS, an SMB shared file can cause the Mac SMB client to report EIO error on locked-file read or lock attempts. So retry.

    ---
    þ 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 Thursday, December 05, 2024 21:21:23
    https://gitlab.synchro.net/main/sbbs/-/commit/fa4a57955f422dbf698bd561
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Resolve Borland build warning: missing xp_lockfile() prototype

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