- Nov 13, 2024
-
-
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.
-
- 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
-
- Nov 10, 2024
-
-
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
Also fix last commit
-
Deucе authored
-
Rob Swindell authored
This was a regression: Socket.recvline() used to not care what the timeout duration was so long as there were bytes to receive. Also, remove the ".0" from timeout values in documented mehtods that don't (any longer) accept floating point timeout durations. We used to support fractional seconds for some of these methods, and that was implied by using the floating point default values, but that's no longer the case. poll() still accepts a floating point timeout.
-
Rob Swindell authored
This was just a typo which didn't allow the single-file upload xfer prot menu to be shown. Actual fix for CID 11447 (previous attempt, commit f50c866f was insufficient). Thank you Coverity!
-
- Nov 06, 2024
-
-
Rob Swindell authored
Fix for issue #809
-
- Nov 05, 2024
-
-
Rob Swindell authored
A few extra bytes really helps with human readability.
-
Rob Swindell authored
True, a sysop could add/configure a monthly timed event instead, but that requires more configuration. Fixed events are nice in their simplicity. This is intended for running the new Synchronet trashman utility, but could be used for anything that's simple to execute and the sysop: - doesn't care which node/instance of sbbs it runs from - doesn't care exactly what time the event runs - doesn't need the assorted options available for timed events
-
Rob Swindell authored
* Allow left and right arrow keys to move between lines (within reason) * Use the K_USEOFFSET getstr() mode flag to keep cursor position when moving between lines with arrow keys * Be smart about integer padding when /Listing lines with numbers * Add range checking (!) and better error reporting for /Lx argument value
-
Rob Swindell authored
Fixes a couple CIDs and a GCC warning
-
Rob Swindell authored
for getstr() to be able to return when user right-arrows off end of string (for use in msgeditor).
-
- Nov 04, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
And have it return bool, like the others. The error logging is different (not using errormsg), but I think that's okay.
-
Rob Swindell authored
-
Rob Swindell authored
Beautified the output a bit.
-
Rob Swindell authored
-
Rob Swindell authored
... trying to get to bottom of user.tab corruption reported in issue #797. Also, don't need to seek in lockuserdat() since we always call seekuserdat() first.
-
Rob Swindell authored
Trying to get to the bottom of user.tab corruption (issue #797).
-
- Nov 03, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
Though we've had the auto-filtering feature for about a year now, with expiration dates supported/added to every trash record, nothing was removing the expired trash/filter items. Until now. Check the size of your text/*.can files: if they're really big, this is the solution. Not yet building for Windows Sysops will want to run this periodically (monthly?), e.g. trashman /sbbs/text/*.can
-
Rob Swindell authored
-
Rob Swindell authored
Root-caused this problem to read() failures which are now caught and logged rather than zeroing out the statistics fields.
-
Rob Swindell authored
Allow filtering/blocking email based on the name portion of email header fields.
-
Rob Swindell authored
(these options follow the password by one or more spaces) I implemented these based on AreaFix v1.10 User's Guide, at Ragnarok's suggestion/request. I didn't test them, so looking forward to getting some test results. The -L and -Q options are functionally identically to the %LIST and %QUERY AreaManager commands, while -R ads a little efficiency by combining +areatag (add) and %RESCAN <areatag> requests in a single command.
-
Rob Swindell authored
Apparently AreaFix and other area managers assume password never have spaces in them, so they can support additional arguments following the password in the AreaFix request. This change also now disallows setting AreaManager passwords with spaces in them. I don't yet support any of the additional AreaFix request options (e.g. -L, -R, -Q), but am considering it. A bunch of sprintf() -> snprintf() conversions are included in this commit (better string buffer security, probably eliminate a Coverity issue or two).
-
- Nov 02, 2024
-
-
Rob Swindell authored
This build rule needed to be defined *after* objects.mk and rules.mk are included.
-