- Nov 15, 2024
-
-
Rob Swindell authored
-
- Nov 14, 2024
-
-
Rob Swindell authored
Pretty remedial option parsing here, the order is significant
-
Deucе authored
-
Deucе authored
-
Deucе authored
It looks like this has been a long-standing UIFC bug (pre-3.0) If a uifc list that can scroll is showing the bottom-most line, and an option that is not the last is deleted, and both *cur and *bar are left untouched, *bar would be adjusted to be too high, resulting in various highlight bar corruption issues. This commit just rewrites that logic to be comprehensible, and ensures that if bar is set such that the list would end before the bottom of the window, it gets moved up. This makes delete do the right thing (didn't test with insert, that may do weird things). Also, since I figured out a good definition of what bar actually represtens, add a comment to that effect.
-
Rob Swindell authored
So you want to debug (timed) events, but don't want to get debug-spew in your terminal server log output? Now you can: By default, the event thread log level will be the same as the terminal server, but now you can override this by setting [BBS] EventLogLevel in the sbbs.ini file or set it in SCFG->Servers->Terminal Server->Event Log Level.
-
Rob Swindell authored
there are still other undocumented fields/properties, but this one for sure was missing.
-
- Nov 13, 2024
-
-
Rob Swindell authored
If the body of the request mesages message contains a list of area-tags, even if we already have the node linked to those echoes, do the rescan for each listed echo. Previously, only newly-added echoes would be rescanned via this method. Apparently the D'bridge built-in method of generating AreaManager requests uses this syntax (per Ward Dossche). Also, when rescanning due to AreaManager rescan request and generating a response netmail message, include the total number of messages exported as a result. Increase SBBSecho version number to v3.22 (Please upgrade, Fernando) :-)
-
Rob Swindell authored
Configured in SCFG->External Programs->Fixed Events and the Node Daily Events configured in SCFG->Nodes, now can be disabled (without just clearing the command-line) and toggle-on "Native", so the program doesn't have to be added to the dreaded "Native Program List" in order to *not* be treated as a 16-bit DOS program (the default). Eventually I'll allow multiple of each time of system fixed event, but this is an improvement for now at least.
-
Rob Swindell authored
Likely fix for CID 514647
-
Rob Swindell authored
... also the support for multiple spaces or commas separating each filename. Oh, FTS-1, how did I miss thee?
-
Rob Swindell authored
Previously, this feature assumed just one request per FREQ message, however FTS-1 make this clear: If one or more of FileAttached, FileRequest, or FileUpdateReq are asserted in an AttributeWord, the subject{72} field is interpreted as a list of file specifications which may include wildcards and other system-dependent data. This list is of the form FileList = [ FileSpec { Sep FileSpec } ] Null FileSpec = (* implementation dependent file specification. may not contain Null or any of the characters in Sep. *) Sep = ( " " | "," ) { " " }
-
Deucе authored
Prefer sdl2-config from the path, and only use the framework in /Library/Frameworks if that doesn't exist... to that end, don't copy the framework into the app anymore unless you're using it. This should clean out the pipes.
-
Rob Swindell authored
To replace lost the default/conio icon (for Windows builds) recently
-
Rob Swindell authored
When writing the attached file path/names to the FLO file, parse each filename out of the subject, accordingly. This should fix issue #824. There's an inconsistent support in SBBSecho for FileLists in the subjects of netmail messages. In a couple of places, single-space-separated filelists are fine (but not commas or multiple space, even though they are allowed per FTS-1). This particular fix is just for the packing of netmail messages and the appending the attached file(s) to the FLO file. Those other places (e.g. .REQ file creation) will need their own fixes for proper filelist support.
-
Rob Swindell authored
... to be sure configured newsgroup name is RFC compliant.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
also retrying fread() and chsize(), but that seems harmless.
-
Rob Swindell authored
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()).
-
- Nov 12, 2024
-
-
Deucе authored
-
Rob Swindell authored
I suppose if we only had messages with no body text, this value could be 0 (not accounting for any headers) and thus throw a client off. So consider this as part of the fix for issue #822.
-
Rob Swindell authored
For messages that have no body, we'd report 0. But RFC 1939 says this value is supposed to be "the exact size of the message in octets" <sigh>. This would include header fields, so while we can't know the exact RFC822 size, adding the msg's hdr.length to these values gives size > 0 for messages with no body text and this enables the Apple iPhone Mail app to download the message (fixing issue #822). Part two of this fix is to provide a blank line of message text when there is none. This changes the message displayed in the iPhone Mail app from: "This message cannot be displayed because of the way it is formatted. Ask the sender to send it again using a different format or email program. text/plain" to (the much nicer): "This message has no content".
-
- Nov 11, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
With the incremental backoffs, these were super long waits for locks. Not sure about my math there, but at 500, the total timeout was not "about 45 seconds" but rather several minutes. At 100, the total max retry time should be almost exactly 45 seconds: Retries ms-per total seconds 0 - 9 0 0 10 - 19 100 1 20 - 29 200 3 30 - 39 300 6 40 - 49 400 10 50 - 59 500 15 60 - 69 600 21 70 - 79 700 28 80 - 89 800 36 90 - 99 900 45* 100 - 109 1000 55 110 - 119 1100 66 120 - 129 1200 78 130 - 139 1300 91 140 - 149 1400 105 150 - 159 1500 120 160 - 169 1600 136 170 - 179 1700 153 180 - 189 1800 171 190 - 200 1900 200! ... so yeah, 500 was way too big a number.
-
Rob Swindell authored
And only supports a single file per invocation now.
-
Rob Swindell authored
It makes a difference on *nix.
-
Rob Swindell authored
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.
-
Rob Swindell authored
-
Rob Swindell authored
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 11b73134), 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().
-
Rob Swindell authored
This is the program I used (along with flock) to reach the root cause of the SH_COMPAT == SH_DENYRW (no locking) bug in sopen() as well as other interactions between Linux and Windows clients opening the same files across a Samba share.
-
Rob Swindell authored
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.
-
Rob Swindell authored
SH_DENYRW (deny-all) locks were broken 18 years ago with commit b866f199. 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.
-
Rob Swindell authored
It appears Deuce's FreeBSD patch isn't going to be accepted/merged (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=50827), so I'm making this code a little more readable/manageable by removing this unused feature... for now, with Deuce's approval.
-
Rob Swindell authored
-
- Nov 10, 2024
-
-
Rob Swindell authored
GCC and Coverity (x 2) both flagged this one.
-
Rob Swindell authored
Also, change the default smb_t.retry_delay from 250 to 100ms Getting a lot of smb_locksmbhdr() failures with sbbs-Linux accessing message bases (i.e. SYNCPROG in particular) on Samba share.
-
Rob Swindell authored
Similar to what I do with user.tab record locks 2 months ago, this will extend the total shared/network file open attempt duration from about 5 seconds to about 45 seconds, but with incrementing back-off. Trying to sbbs-Linux to run from a Samba share without file open/locking errors. Re-synced the sbbs_t version of nopen with the nopen.c version (wasn't special-handling EDEADLOCK failures). Mostly we're using fnopen() these days anyway, which doesn't have an sbbs_t version (for logging warning messages about collisions), perhaps it should.
-
Rob Swindell authored
This date (basically 0) means either the dsts.ini file doesn't exist or there was an issue reading it successfully (that was not detected by getstats()).
-
Deucе authored
If this works, we can use it for EVERYTHING! Baw ha ha!
-