- Jan 23, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
The sub_t.subnum's that were being updated as message areas were being saved to msgs.ini could not be used as an index into the scfg_t.sub array at this point (the subnum would be the new index position when the msgs.ini was re-read/loaded) . This was not an issue in v3.19 because we just saved the subnum (to msgs.cnf) and in v3.20, we save the sub's internal code (to msgs.ini) and were using the newly updated sub_t.subnum to find the corresponding sub_t for that internal code. Since the subnum is not used now during the save process, no need to update it here (this reverses part of the commit 11e529d4 from 5 years ago). This fixes issue #502 - thanks to the irc.synchro.netizens that reported it!
-
- Jan 22, 2023
-
-
Rob Swindell authored
The first argument to system.matchuserdata() in v3.20 is the user.tab field number, not the user.dat byte-offset that was used in versions of SBBS prior to v3.20. These values are synchronized with userfields.h, but I keept the U_ prefix here (instead of USER_) to maintain compatibility with existing JS scripts. This is a fix for issue #501 - thanks for the report Eric!
-
Rob Swindell authored
DDMsgReader: Fix for #499 (replying to emails from unknown user) See merge request !246
-
-
Rob Swindell authored
IF user hits 'Q' (or whatever the "Quit" key is), set the default protocol field in the user record to " " (instead of an empty string). If user hits abort (Ctrl-C), don't make any change to the default protocol.
-
Rob Swindell authored
There's nothing to upgrade if there's no legacy userbase.
-
Rob Swindell authored
A blank download protocol field in a user.dat, when parsed, sets the 'prot' field of user_t to 0. When writing the record back to the user.dat, this would prematurely truncate all other fields off the user record (since strings in C are NUL terminated and we're using sprintf() to format the record and %c specifier for that field). The fix is to write a ' ' character instead of '\0' if the user_t.prot is '\0'. As part of this fix, I'm writing a '?' if a user_t.sex is '\0' (not sure if this is actually possible, but just as insurance). Those are the only 2 single-character user properties/fields today. Bug reported/debugged by Al of The Rusty Mailbox (1:153/757.2) - thank you!
-
Rob Swindell authored
This old prompt used to be sent for any login scripts (e.g. QWKnet via dial-up) that would key off that WWIV-like "name or number" (NN:) prompt, but was removed (accidentally?) in commit fedabb0b. Send "NN: " and "PW: " (include the trailing space, just in case), and use carriage return to move back (and overwrite) rather than 4 backspaces.
-
Rob Swindell authored
DDMsgReader can now optionally convert Y-style MCI attributes to Synchronet attributes. See merge request !244
-
-
Rob Swindell authored
The SBBS event_thread ignores 0-byte QW* files, so we should here as well (just overwrite them if they exist), otherwise, if 10 0-byte QW* files got created, we would just stop downloading QWK packets indefinitely. Fixes issue reported by deon (ALTERANT) on DOVE-Net.
-
- Jan 21, 2023
-
-
Rob Swindell authored
This function has been causing somewhat rare crashes (e.g. one per week on a very active system with MQTT enabled) on both Windows and Linux (see issue #495). The root-cause is still unclear (possible heap corruption?). This function needed more robustification anyway (see previous TODO comment), so I'm refactoring here to no longer use strListAppendFormat, which uses vasprintf (the function where the rare crash was occurring) and instead just use snprintf and strListPush. The total client_list that's published (as a single string/message) is now dynamically allocated (this was the point of the previous TODO comment). This may not actually fix the issue if there's a heap corruption occurring somewhere else in this function or the call-chain that's reaching here (usually from the web server). Another change to mqtt_client_on(): don't incremented the server's 'served' counter until client disconnects (this is a past-tense statistic). Also: - mqtt_pub_strval() can now accept a null 'str' argument which is effectively the same as mqtt_pub_noval(), so the pub_noval() function is now just a thin wrapper around pub_strval(). - mqtt_startup() now clears the client_list topic and sets the client_count topic to 0.
-
Rob Swindell authored
Reduce occurrences of subsequent errors (unsure of root-cause): !ERROR 2 (No such file or directory) in main.cpp line 2778 (event_thread) removing "/sbbs/data/pack0341.now" This does seem to be the only location that deleted pack*.now files, so weird that they'd disappear sometime after calling glob(), but I do understand that its theoretically possible.
-
Rob Swindell authored
No immediate need/use.
-
Rob Swindell authored
Screen header update optimization for file searching & scanning See merge request !243
-
-
Rob Swindell authored
-
- Jan 20, 2023
-
-
Rob Swindell authored
As reported in #synchronet by Android8675
-
- Jan 19, 2023
-
-
Rob Swindell authored
Fix for issue #494 (DD File Lister searching and scanning) Closes #494 See merge request !242
-
Eric Oulashin authored
-
- Jan 17, 2023
-
-
Rob Swindell authored
It'd be nice if someone (me?) tested this. :-)
-
Rob Swindell authored
Fixes issue #477
-
Rob Swindell authored
There are some changes in here that I forgot the history behind, but the most important is that it uses file.ini rather than file.cnf, thus fixing issue #478. I actually had this changed file sitting outside of my git repo for a while now and didn't realize it. The other changes appear to be: - RIP support (clearing the window before/after each file is displayed) - read the display files a chunk at a time (rather than read the entire file into RAM, which could take a really long time on very large files), - allow files that don't exist on disk to be added to the list
-
Rob Swindell authored
Fixes issue #475
-
Rob Swindell authored
Fixes issue #472
-
Rob Swindell authored
Fixes issue #471
-
Rob Swindell authored
The "opening list file" log message referenced in issue #480 is a debug level log message, so seemed appropriate to make the newly-added message also debug-level. Fixes issue #480
-
Rob Swindell authored
Fixes issue #473
-
Rob Swindell authored
Replaces functionality of cnflib.js for sbbs v3.20+ Only the xtrn.ini read/write support has been added so far (for use in install-xtrn.js). I didn't think a lib like this would be needed, being that the files are now in .ini format, but there was some re-arranging of property values/section names that still needed to be done by something (unfortunately), so this does that. But it does make updating existing scripts that use cnflib.js a breeze.
-
Rob Swindell authored
to remove all sections in an .ini file or all sections with a specified prefix.
-
Rob Swindell authored
Migrate filearea-lb.js to use FileBase See merge request !240
-
-
- Jan 15, 2023
-
-
Rob Swindell authored
Good Time Trivia 1.03: Fixes to score reading & parsing. Q&A files can have more flexible metadata. Added more questions. See merge request !241
-
Good Time Trivia 1.03: Fixes to score reading & parsing. Q&A files can have more flexible metadata. Added more questions.
-
- Jan 13, 2023
-
-
Rob Swindell authored
Allows for more/better wildcard matching in viewable and testable file types and download-events (e.g. "tar.gz" or "tar.*"). This solves the "double-dot" problem in some file types/extensions. An implicit "*." is prepended before the configured file type/extension.
-
Rob Swindell authored
If libarchive couldn't extract a QWK or REP packet, we'd fallback to searching for a match among the configured extractable file types and if no extension/type match was found, default to the first configured extractable file type (even if there wasn't one) which would result in a NULL pointer dereference and most likely a crash. Instead, if no matching configured extractable file type is found, just log a warning message and don't continue with the extraction attempt. With SBBS v3.19+, it's totally valid/legit to have no extractable file types configured in SCFG and things "just work" (using libarchive).
-
Rob Swindell authored
For Viewable, Testable, Compressible file types and download events, the file extension is no longer limited to 3 characters. 15 characters seemed like "enough". Similarly, a user's temp/QWK file type preference is also extended from 3 to 15 characters. This fixes issue #486, but file types such as *.tar.gz (2 dots in the extension) are still an issue and will be addressed next.
-
- Jan 12, 2023
-
-
Rob Swindell authored
... but the old user.dat fields would still just be 16 chars in size. Also a strcpy -> SAFECOPY conversion for user tmpext.
-
Rob Swindell authored
-