- Dec 24, 2024
-
-
Rob Swindell authored
-
- Dec 23, 2024
-
-
Rob Swindell authored
This explains why Deon was still seeing time_t encoded time values.
-
Rob Swindell authored
This is a situation we can auto-correct and log a message when we do.
-
Rob Swindell authored
Could be helpful for debugging node status issues at some point
-
Rob Swindell authored
DDMsgReader: When doing an indexed newscan, display the progress percentage when doing the newscan. Should fix issue #846 (reported by Keyop) Closes #846 See merge request !484
-
DDMsgReader: When doing an indexed newscan, display the progress percentage when doing the newscan. Should fix issue #846 (reported by Keyop)
-
- Dec 22, 2024
-
-
Rob Swindell authored
Adds new keys, removes old ones Updates formatting/white-space
-
Rob Swindell authored
Bug
-
Rob Swindell authored
A non-zero exit from str_cmds.js (where this script is loaded) will terminate the call/session. We don't need to call exit() at all from this script. This fixes issue #848, thank you for the report
-
Rob Swindell authored
We already know such nodes are in-use, so no need to read their node.dab record and put extra contention on the node.dab file. Hoepfully this reduces or eliminates occurrences of the error: Node n status is WFC, but the node socket (s) and thread are still in use! Though I kind of expect occurrences of "NODE STATUS FIXUP" errors to likely return. We could in theory just track status of nodes in memory (for those nodes that this instance of sbbs controls), and not read the node.dab file at all when checking those nodes' status, but: - that would prevent out of process control of node status e.g. using the node utility to mark a node as offline - we'd have to protect instance of in-memory node status checking/changing with a mutex
-
Rob Swindell authored
Hitting down-arrow key at a pause prompt normally displaye just one more line of the display text/file, but if you received a node message/telegram/notice after hitting down arrow, you'd get a screen full of text instead of just a single (one more) line, as you wanted. This looks to be because of the anti-recursive protection implemented in pause() - when it calls nodesync() after the key press, that displays node/user messages (if there are any) and if pause is called as a result (e.g. because the line counter was already set to cause a pause after the next line of output), it'd do nothing since that would be recursive. The fix is to simply set the line counter as a result of the down-arrow key press *after* the call to nodesync(), which might display multiple lines, but I think that's fine.
-
Rob Swindell authored
Reduce the cognitive dissonance
-
Rob Swindell authored
I'm hoping this might help resolve instances where fexistcase() says a file does not exist, but a subsequent call to fexist() says it does.
-
Rob Swindell authored
-
Rob Swindell authored
-
- Dec 21, 2024
-
-
Rob Swindell authored
This became apparent when the the LSB of the day got set (an odd day). Oops. This only impacted decoding of date/time, not encoding.
-
Rob Swindell authored
Increment SMBLIB version to 3.10 Fix issue #845: Changing system/OS time zone, changes dates/times of posted messages Sysops and users shouldn't notice any change unless they change the time zone of their system/OS (not accounting changes for daylight/standard time) and the result will be that message dates appear the same after such a change. For backward compatibily, any stored time_t's in msghdr_t.when_written.time (i.e. all existing SMB messages) will still be decoded and displayed properly. We detect a time_t value by the upper 6 bits being non-zero. When the upper 6 bits of a when_written.time value are zero, then we know the 'year' is stored in the 16-bits before the when_written field (never used bits of the netattr field, now part of the when_t structure definition) and the Month, Day, Hour, Minute, and Second of the wallclock at the poster's site are encoded in the low 26 bits of the time field. This also eliminates more uses of 32-bit time_t that'll likely start being a problem 2038 and really fall over and die in 2106. At least messages' posting dates won't have any issue now. The "when_imported" values could use a similar treatment someday I suppose - and we could get rid of the when_imported.zone value as its not really needed we could use those 16-bits for the when_imported.year. Didn't change anything with filebases (still using time_t's though the when_written hdr field isn't used for much with regards to files). Yes, we could have converted all imported "broken down" message dates to UTC and continued to store them as a time_t using timegm() instead of mktime() for conversion to time_t, and I considered that. But we would have needed to create/use a flag in the message header to indicate such stored date/times (since they'd have to go through different adjustment for original time zone before display, basically reversing the logic of all the places we display the message dates/times using localtime verus gmtime/UTC C RTL functions), couldn't just initialize the time with a call to time() upon import of local messages (unless the local timezone happened to be UTC). And in the end, we'd still have a 32-bit time_t value. So this seemed the better path. I would have liked to have stored the date fields in a more human readable encoding (BCD or decimal, ala isoDate and isoTime_t), but I just didn't have the spare bits in the fixed portion of message headers to be wasteful like that. Here's an example from smbutil v of a message header posted after this change: when_written 03292595 41E0 Fri Dec 20 18:22:21 2024 PST when_imported 6766265D 41E0 Fri Dec 20 18:22:21 2024 PST Notice the difference in the hex encoding of the date/time between the 2 header fields: when_imported still uses time_t. The when_written.year value isn't output here.
-
- Dec 20, 2024
-
-
Rob Swindell authored
changed from 0 to 1: timeperday timepercall callsperday postsperday emailperday There are restrictions to remove access to these features if that's what the sysop desires. This will allow unauthenticated mail clients to post a single message (per day) to a sub-board, when there's a posting alias set up (sub:* in alias.cfg).
-
Rob Swindell authored
... and auto-choose the right one Tested on Windows 11 (x64) and Windows7-32
-
Rob Swindell authored
-
Rob Swindell authored
Don't install the fonts to the syncterm.ini, Deuce says they confuse sysops. Renamed the setup.exe file due to warning from ISS about security concerns. Tested on Windows 11.
-
Rob Swindell authored
This function appears to truncate the service pack info for Windows 7 (6.1): "Windows NT Version 6.1 (Build 7601) Service Pack 1 x86" became: "Windows NT Version 6.1 (Build 7601) S x86" Don't close the handle to ntdll.dll (hey, that's stupid filename, Microsoft!) since the module could be unloaded from the address space and then a call to the captured procedure address could/would crash. This handle will be closed when the process terminates anyway. While we're here, correct the Windows 6.1 -> 7.0 numbering. That looks better: "Windows NT Version 7.0 (Build 7601) Service Pack 1 x86" Something should probably be done for Windows 6.2 -> 8.0 numbering too, but I don't have a VM handy. Is anyone actually still running Windows 8.x?
-
Rob Swindell authored
Needed for building sbbsexec.dll I guess #pramga warning only affects the following source line. Apparently we're disabling this warning effectively via other means in all other MSVC projects.
-
Rob Swindell authored
This is fun Microsoft. If Windows 11 is actually Windows 10.22000+, what will Windows 12 be? No one can guess.
-
Rob Swindell authored
When the system time zone is not UTC, but the sysop wants to display some dates and times in UTC, they can now use these @-codes to do that: - TIME_UTC - DATE_UTC - UTC:fmt - DATETIME_UTC - MSG_DATE_UTC
-
- Dec 19, 2024
-
-
Deucе authored
Nobody will really care though.
-
Rob Swindell authored
This partially reverts commit 03b84df8. I observed deadlocks on Linux attempting locks of user.tab on Samba share, which also deadlocked my Windows nodes. Interestingly, the Windows nodes never deadlocked on their own (after a week of testing) when using blocking locks. Double the frequency of lock retries - this has helped reduce the observed user.tab lock failures on Vertrauen.
-
Rob Swindell authored
As Deon pointed out in DOVE-Net / Synchronet Discussion, having a local time zone configured with a different UTC offset than your system time zone can produce strange/unexpected results (e.g. displayed age of messages). Since it's possible that not all sysops will complete the configuration wizard or actually set their timezone to the correct value (and ignore the startup warning message), we now make the default Local Time Zone to be "automatic" - query the OS every time the local time zone is needed/used. This has the downside of only storing (e.g. in message headers) the UTC offset of the current time zone (not the time zone abbreviation/name as encoded by SMB). I considered making an option to dynamically figure out the actual time zone (not just the UTC offset) and while I think that's doable, Deon just wanted his UTC offset (e.g. UTC+11:00) and not his time zone name (e.g. AEDT) stored in message headers, so this setting w...
-
Rob Swindell authored
Make the scheme ("http://" or "https://") configurable via rss.ini, default is now "https://". Make the message link format somewhat configurable via rss.ini (hopefully to support some other/future web message reading interface should there be one). Reportedly, the MsgBase.get_msg_header/body() calls of the "total_msgs" offset were logging errors? I was not able to reproduce this (the !hdr check seemed to be successfully ignoring such cases), but in any case, message offsets are 0-based, so this was definitely an off-by-one issue, even if it was a silent failure for everyone else. <shrug>
-
Rob Swindell authored
... when current timezone is negative offset from UTC, but not a US time zone, the default should be "No".
-
Rob Swindell authored
DDMsgReader bug fix: In the scrolling message reader interface, it now exits on user input timeout (as it should). This should fix issue #844, reported by Keyop Closes #844 See merge request !483
-
Eric Oulashin authored
DDMsgReader bug fix: In the scrolling message reader interface, it now exits on user input timeout (as it should). This should fix issue #844, reported by Keyop
-
Deucе authored
Presumably it's because I'm not using std=gnu11 or whatever
-
Deucе authored
Use the same hack as for strerror_r()
-
Deucе authored
-
- Dec 18, 2024
-
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
The non-standard strerror_r() is glibc specific, musl doesn't do that. It *appears* that __USE_GNU implies glibc.
-
Rob Swindell authored
-