- Nov 16, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
Also, don't get hostname unless we're surely going to write to the file.
-
Rob Swindell authored
-
Rob Swindell authored
The 'atomic_remove' argument isn't used in non-Windows builds since we can remove() before close() on non-Windows OSes already.
-
Deucе authored
I managed to hit a bug where bseen and seen were both completely filled. No idea how I hit it, so not positive it's fixed. This is cheap insurance against the 43k file groung to 1.6MB for someone else.
-
Deucе authored
1) Cache the binified seen data rather than regenerate every time 2) Only call js.gc() after a complete fetch or store loop
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
O_EXCL doesn't appear to be working very reliably over Samba, so let's add file locking to the equation.
-
Deucе authored
-
- Nov 15, 2024
-
-
Deucе authored
-
Deucе authored
-
Rob Swindell authored
glob() results might be out of date by the time we look at each file, just skip missing QWK pack semaphore files silently. This should resolve the ".now already gone" messages too. Hopefully. Removed some extraneous quotes around logged event command-lines.
-
Rob Swindell authored
Also when detecting a blocked event_thread, log the event_code that is/was running last.
-
Deucе authored
Should be no functional change.
-
Deucе authored
-
Deucе authored
Also, make save_cfg() require that the lock be held.
-
Deucе authored
This should now actually work properly. Also, add a debug_exceptions flag to rethrow exceptions so I can get line numbers.
-
Deucе authored
It shouldn't though.
-
Deucе authored
Also, always use full_send(), not the socket send.
-
Rob Swindell authored
This removes unnecessary some cruft and complexity, most especially from the event_thread(). Using sbbs_t::fremove() instead of remove(). This probably resolves some Coverity issues where we weren't checking the return value.
-
Rob Swindell authored
ENOENT = "No such file or directory" Passing 'true' for the optional 'log_all_errors' parameter overrides this (logs all errors, including ENOENT).
-
Rob Swindell authored
-
Rob Swindell authored
Only log message header read error if the msgbase.status is non-zero Don't try to import anything if the stop semfile is signaled while exporting. Increment revision to 1.2
-
Rob Swindell authored
Add log message when spawning background timed event
-
Rob Swindell authored
Only log messages about QWK mutex files existing when > 60 seconds old
-
Rob Swindell authored
First, fix the logged username bug in the "Lock exists" log message. Next, double check that the trigger file (sem file or REP file) still exists after acquiring the file mutex. Use a temp varible (fname) to make the code easier to read.
-
Deucе authored
Also, after grabbing a lock, enter a try/catch that will unlock and re-throw the error.
-
Deucе authored
-
Rob Swindell authored
Vertrauen's FTP server gets abused by QWKnet logins sometimes and handling the race conditions around QWK packet creation attempts is silly - there's no legit reason why a QWKnet account needs to be logged-in multiple times concurrently to the hub's FTP server, so reject the subsequent logins even when they're on different hosts (as is the case with Vertrauen). As part of this change: - fmutex() now takes an new time_t* argument to (optionally) store the time of the mutex file for helping logging (locked since when?). - time_as_hhmm() created to format a string as either HH:MM or HH:MM[a|p] (depending on system configuration for 12 or 24 hour time formatting). - renamed the old hhmmtostr ()to tm_as_hhmm() (since it takes a struct tm arg) and have it return a non-padded string (useful in more situations without requiring truncation) when the sysop prefers 24-hour time.
-
Rob Swindell authored
-
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.
-
Deucе authored
Previously, the IMAP search tried to do sneaky things to optimize execution time, but that ended up with problems when nested ()s were used, among other, more subtle issues. Also, the old search wasn't even tested enough so that each term would work. The new system transpiles the IMAP query to Javascript then runs the compiled JS function for each message. Should be much more accurate (though may also be much slower). Actually fixes the issue reported as #397, and closes #730.
-