• src/sbbs3/ftpsrvr.c

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jun 7 20:14:25 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/6fee19566f510a9c5cda36a4
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Detect TLS startup errors correct/fully

    We can't (apparently) only rely on the return value of start_tls(), we have to check the value of the crypt session too.
    This fix the possibility of this happening:
    Jun 7 18:07:26 sbbs synchronet: ftp 0058 TLS ERROR 'No permiss.to perform this operation' (-21) opening keyset
    Jun 7 18:07:26 sbbs synchronet: ftp 0058 <192.168.1.25> initialized TLS successfully

    Instead, we'll detect the failure and disable FTPS support, logging "failed to initialize TLS successfully".

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Sep 18 17:02:24 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/bb1ee45982174c3a0a73ce1e
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Fix segfault reported with ftpalias.cfg support in some cases

    ftpalias() can return true even when the directory is not set to a valid directory index (i.e. set to -1), so using as an array index would definitely segfault. Part of commit 8ad30b6c by Deuce 3 years ago.

    I didn't test this as I'm not sure exactly the combination of ftpalias.cfg content and FTP command received that would trigger this, but it's most definitely a bug.

    So should fix the segfault reported in issue #288.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Sep 18 22:22:14 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/15906e19c9b0b832027ce673
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Handle FTP requests for paths that start with "/./"

    Midnight Commander (mc) apparently sends requests like this for files
    (e.g. aliases) in the virtual root directory.

    Fixes another part of the reported issue #288.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Dec 5 18:42:38 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/17a67ee9d95051145677ec52
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Fix FTPS upload failure: !DATA ERROR 0 receiving on data socket

    Don't treat CRYPT_ERROR_COMPLETE (-24) as a socket error during upload since it's an indication that the remote closed the connection and is the normal "end of file/transfer" indicator, not an error. 'rd' is already 0 in this case, so no need to set at all (since recv() returns 0 upon disconnect and that's what we're emulating here).

    Fixes issue #309 reported by Jas Hud.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From MRO@VERT/BBSESINF to Rob Swindell on Mon Dec 6 13:35:33 2021
    Re: src/sbbs3/ftpsrvr.c
    By: Rob Swindell to Git commit to main/sbbs/master on Sun Dec 05 2021 06:42 pm

    https://gitlab.synchro.net/main/sbbs/-/commit/17a67ee9d95051145677ec52 Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Fix FTPS upload failure: !DATA ERROR 0 receiving on data socket

    Don't treat CRYPT_ERROR_COMPLETE (-24) as a socket error during upload since it's an indication that the remote closed the connection and is the normal "end of file/transfer" indicator, not an error. 'rd' is already 0 in this case, so no need to set at all (since recv() returns 0 upon disconnect and that's what we're emulating here).

    Fixes issue #309 reported by Jas Hud.

    i cant upload files using any protocol on your bbs and cvs.synchro.net
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
  • From Digital Man@VERT to MRO on Mon Dec 6 13:20:33 2021
    Re: src/sbbs3/ftpsrvr.c
    By: MRO to Rob Swindell on Mon Dec 06 2021 01:35 pm

    Fixes issue #309 reported by Jas Hud.

    i cant upload files using any protocol on your bbs and cvs.synchro.net

    Working for me (now). I replied to your emails about this already. I appreciate your continued testing.

    Don't try to use SyncTERM v1.2b for uploads (they don't work).
    --
    digital man (rob)

    Synchronet/BBS Terminology Definition #14:
    CGA = Color Graphics Adapter (IBM)
    Norco, CA WX: 72.0øF, 35.0% humidity, 8 mph NNW wind, 0.00 inches rain/24hrs ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From MRO@VERT/BBSESINF to Digital Man on Tue Dec 7 14:58:09 2021
    Re: src/sbbs3/ftpsrvr.c
    By: Digital Man to MRO on Mon Dec 06 2021 01:20 pm

    Re: src/sbbs3/ftpsrvr.c
    By: MRO to Rob Swindell on Mon Dec 06 2021 01:35 pm

    Fixes issue #309 reported by Jas Hud.

    i cant upload files using any protocol on your bbs and cvs.synchro.net

    Working for me (now). I replied to your emails about this already. I appreciate your continued testing.

    Don't try to use SyncTERM v1.2b for uploads (they don't work).

    yeah i tried to delete this msg but it already sent.
    i'm using 1.1b win32 of syncterm
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
  • From Digital Man@VERT to MRO on Tue Dec 7 19:45:13 2021
    Re: src/sbbs3/ftpsrvr.c
    By: MRO to Digital Man on Tue Dec 07 2021 02:58 pm

    Re: src/sbbs3/ftpsrvr.c
    By: Digital Man to MRO on Mon Dec 06 2021 01:20 pm

    Re: src/sbbs3/ftpsrvr.c
    By: MRO to Rob Swindell on Mon Dec 06 2021 01:35 pm

    Fixes issue #309 reported by Jas Hud.

    i cant upload files using any protocol on your bbs and cvs.synchro.net

    Working for me (now). I replied to your emails about this already. I appreciate your continued testing.

    Don't try to use SyncTERM v1.2b for uploads (they don't work).

    yeah i tried to delete this msg but it already sent.
    i'm using 1.1b win32 of syncterm

    1.1 was released over a year ago. That's the supported/known-working version. 1.1b (for SyncTERM) means "beta" or pre-1.1.
    --
    digital man (rob)

    This Is Spinal Tap quote #39:
    Female Airport Security Officer: Do you have any artificial plates or limbs? Norco, CA WX: 54.1øF, 85.0% humidity, 0 mph SSW wind, 0.00 inches rain/24hrs ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From MRO@VERT/BBSESINF to Digital Man on Wed Dec 8 05:14:29 2021
    Re: src/sbbs3/ftpsrvr.c
    By: Digital Man to MRO on Tue Dec 07 2021 07:45 pm

    yeah i tried to delete this msg but it already sent.
    i'm using 1.1b win32 of syncterm

    1.1 was released over a year ago. That's the supported/known-working version. 1.1b (for SyncTERM) means "beta" or pre-1.1.

    yeah, it works for what i use it for so i'm not going to upgrade.
    it's not bombing out on me during connections.
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jan 10 22:27:52 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/7ccc618a991a97d22336fcc0
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Log unallowed/illegal filenames in quotes

    Prefixed or trailing white-space characters would be hard to discern without this.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jan 31 11:58:42 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/658773d65b44452a84a696fb
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Log the full path for rejected uploads based on directory

    The logged error "!attempted to upload to invalid directory" did log the actual path that was attempted to be uploaded.

    Added some quotes around other logged paths.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jan 31 12:20:26 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/52b2e20a5dd8330adb315d73
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Change "attempted to upload to invalid directory" msg

    Make it more accurate/clear:
    "attempted to upload invalid path/filename"

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Oct 22 14:15:38 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/51ce7e6f71c2009c1804679f
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Attempt to fix issue #799

    receive_thread() needs to use the control session correctly for
    TLS connections.

    ---
    þ 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 Tue Oct 22 17:20:46 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/17912ca377006ca652483b1e
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    IP addresses are logged (most) everywhere else in square brackets

    There are still places where it could be logged in <> (if username is not yet known).

    ---
    þ 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 Sat Nov 16 19:16:05 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ffba326dad6263eedc29ed94
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Fix the "ERROR x getting data user y" log message (usernum was 0).

    Add the errno value to help root-cause.

    We really should be using safe_strerror() everywhere.

    ---
    þ 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 Sat Nov 16 20:08:50 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/569efded81398f71ad35f70b
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Use safe_strerror() in place of strerror() - everything multithreaded should

    ---
    þ 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 17 03:11:30 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/6fc2a6b6ff98fab8f98bf955
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    A little beautification of errno logging

    ---
    þ 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 Mon Nov 18 01:50:47 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/8b4d02103bb4a63ffcc360f3
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Correct initialization of fmutex_t so the file descriptor is -1

    For some reason, MSVC was initializing the time_t (second element of the struct) to -1, not the int fd (the first element), which was initialized to
    0. Weird.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to Rob Swindell (on Windows 11) on Mon Nov 18 12:01:14 2024
    Re: src/sbbs3/ftpsrvr.c
    By: Rob Swindell (on Windows 11) to Git commit to main/sbbs/master on Mon Nov 18 2024 01:50 am

    For some reason, MSVC was initializing the time_t (second element of the struct) to -1, not the int fd (the first element), which was initialized to 0. Weird.

    Actually, this assessment was wrong. fmutex_open() was memsetting the fmutex_t to zero.
    --
    digital man (rob)

    Synchronet/BBS Terminology Definition #88:
    UART = Universal Asynchronous Receiver/Transmitter
    Norco, CA WX: 61.5øF, 38.0% humidity, 2 mph W wind, 0.00 inches rain/24hrs
    ---
    þ 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 Jan 15 20:09:08 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/44147ffd5adc1105b4e8600e
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Change terminate_server to correct type expected by xpms_add* functions

    ---
    þ 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 Tue Feb 4 19:16:47 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/1c365418fbab2a23d603d0d1
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Addrss some new MSVC warnings

    Check sscanf() result
    Don't use deprecated function: inet_addr()

    ---
    þ 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 Fri Feb 14 21:58:39 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/b4a4a524160fb705bd740506
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Ignore MKD/XMKD commands from users (pretend successful)

    For non-Guest users (without the 'U' restriction), if the FTP client
    sends the MKD or XMKD command, just return the proper succcess result
    and do nothing (don't log as a hack attempt or return a syntax error
    result).

    Some FTP clients (e.g. Reolink Doorbell camera) just always try to
    blindly create a directory before uploading files, but if that command
    fails (as we would), the upload is aborted. So pretend to create the
    diretory whether it already exists or not, just so the client will
    proceed with the upload.

    For G or U restricted users, treat (log) as hack-attempt, as before.

    ---
    þ 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 Sat Mar 1 15:05:35 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/fe48a444e23d7594abfeef1b
    Modified Files:
    src/sbbs3/ftpsrvr.c
    Log Message:
    Lower severity of repeated log messages about low disk space

    "!Insufficient free disk space (%s bytes) to allow upload"

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