- Jan 14, 2025
-
-
Rob Swindell authored
... using uncrustify mod_paren_on_return config
-
Rob Swindell authored
White-space changes only, exception being the rare insertion of NL before closing brace (couldn't find the option to disable that behavior). I excluded some header files (e.g. sbbs.h) since uncrustify seemed to be doing more harm than good there. I might just end up applying different set of rules to .h files.
-
- Dec 21, 2024
-
-
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 01, 2024
-
-
Rob Swindell authored
getnodedat() now performs a non-locked read by default. Perform more checks of getnodedat() return value before calling putnodedat() to avoid unintentionally zeroing out node.dab records. Add/use unlocknodedat() method for unlocking a node.dab record without writing. Note: The userdat.c getnodedat() and putnodedat() still return int (i.e. 0 on success), so that can be confusing.
-
- Nov 22, 2023
-
-
Rob Swindell authored
In response to Nelgin's inquiry: DigitalMan would it be difficult to add login/logoff date/time to these messages? Node 2: xxuserxx logged on Telnet Node 2: xxuserxx logged off Now, you can just use @-codes to add that kind of thing to these text.dat strings.
-
- Oct 20, 2022
-
-
Rob Swindell authored
... for proper error reporting, at least in the terminal server. Also define/use a macro for the user base filename (now user.tab, not user.dat).
-
- Oct 18, 2022
-
-
Rob Swindell authored
Also resolved some 32 vs 64-bit 'long' issues/ambiguities that have long-remained. :-) This commit also removes logon.lst file support. There's a TODO block remaining in js_user.c for setting portions of a user's birthdate (e.g. just the year or month or day).
-
- Feb 26, 2022
-
-
Rob Swindell authored
-
- Sep 07, 2020
-
-
Rob Swindell authored
Eliminate the hack in each server where it will over-write startup host_name (with the configured Internet email address), if it's blank. This hack was subject to a race condition where the parent app (e.g. sbbsctrl.exe) would clear or re-initialize the host_name after the sever threads had initialized. Instead, just use a function which will return either the startup->host_name or (fallback to) scfg.inet_addr.
-
- Aug 16, 2020
-
-
Rob Swindell authored
-
- May 14, 2020
-
-
rswindell authored
SCFG for Win32 is linked against a load_cfg lib that builds withOUT SCFG defined, so these compiled AR elements were allocated and then many SCFG operations (e.g. copy/paste, create new) would copy the allocated ARs to another configuration and then be subjected to double-free upon exit/clean-up (resulting in exception or crash). Just get rid of this cruft and some other related RAM-byte-saving hold-overs from the MS-DOS days.
-
- Jul 08, 2019
-
-
rswindell authored
fidodefs.h:47:27: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] #define FIDO_CHARSET_UTF8 "CHRS: UTF-8 4" /* FTS-5003 */ ^ writemsg.cpp:645:15: note: in expansion of macro 'FIDO_CHARSET_UTF8' *charset = FIDO_CHARSET_UTF8;
-
rswindell authored
(e.g. applies to email and netmail now too).
-
- Apr 12, 2019
-
-
rswindell authored
(default: off) - when enabled, the current terminal width (columns) will be saved in the msg header. When using the internal msg editor or raw intput mode, the columns are always saved in the message editor. fseditor.js should have this option enabled.
-
- Feb 20, 2019
-
-
rswindell authored
(JS bbs.post_msg()): If the WM_QUOTE mode flag is *not* set, then it will auto- create the quote file (quotes.txt) and add the WM_QUOTE mode bit before calling sbbs_t::writemsg(). So if existing JS scripts call bbs.post_msg(..., WM_QUOTE) with a custom-created quote file (e.g. with msg tails), that'll still work as before (e.g. DDMsgReader.js). bbs.email() and bbs.netmail() now support an optional reply_header_object argument which works like bbs.post_msg(). These methods (and the underlying C++ methods: sbbs_t::email(), netmail(), inetmail(), all auto-create the quote file now, when the WM_QUOTE mode flag is *not* set. The auto-created quotes.txt now includes the plain-text version of MIME-encoded messages. the bbs.post_msg(), email(), and netmail() methods now all support reply header objects that came directly from bbs.get_msg_header() *or* copies of such header objects (but the auto-quoting feature won't work when supplied this type of header object). So if passed a header object returned from bbs.get_msg_header(), we can now use the message base (for auto-quoting) and the underlying msg storage directly (no JS parsing necessary). This is what the new js_GetMsgHeaderObjectPrivates() function is used for. js_ParseMsgHeaderObject() (and the underlying parse_header_object() function) now supports either an actual internally-generated msg header object (e.g. returned from bbs.get_msg_header()) or one that is a copy or hand-constructed. quotemsg() no longer tries to get a copy of the msg index/header. It shouldn't have to since we can now get to underlying msg storage in the js_msgbase.c via js_GetMsgHeaderObjectPrivates(). quotemsg() now reads only the plain-text portion of MIME-encoded messages. As part of this effort, I modernized the method prototypes using default argument values (e.g. WM_NONE for wm_mode arguments) and removed some extraneous WM_EMAIL and WM_NETMAIL specifications (these wm_mode flags are automatically added by the sbbs_t::email() and *netmail() functions). savemsg() now *does* support reply-IDs/thread-linkage via the additional 'remsg' argument (when non-NULL). Replaced some use of nulstr with NULL. Replaced more boilerplate SMB open code with calls to smb_open_sub().
-
- Oct 30, 2018
-
-
rswindell authored
message text (when relevant and available) - this helps when re-wrapping the message text (e.g. for quoting) and not always guessing "80 columns".
-
- Aug 03, 2018
-
-
rswindell authored
sbbs::lputs() will log the current user alias already, logline()->lputs() would create log messages with the user alias twice.
-
- Feb 20, 2018
-
-
rswindell authored
-
- Nov 24, 2017
-
-
rswindell authored
logic everywhere. Enforce the sys_misc SM_DELREADM flag (SCFG->Message Options->Kill Read E-mail) in more places (set the Kill After Read flag automatically). Create a Message-ID (RFC822-style) for locally created email messages.
-
- Nov 26, 2015
-
-
rswindell authored
writemsg() now handles the anonymous name in the drop files (using WM_ANON for the first time?). A little mixed-case NETMAIL.MSG paranoia (for case-sensitive file systems). More use of SAFEPRINTF(). More use of removecase(). More attribute flags represented (with a single character) in the 'A' column of mail and sub-board message listings.
-
- Nov 25, 2015
-
-
rswindell authored
files and editors have the correct sender name in all situations (not just when posting on "real name only" sub-boards). "ANONYMOUS" postings work too, but mainly Internet & FidoNet Netmail were fixed. Use removecase() for NETMAIL.MSG (in case there's a lowercase version). Use subj in place of title and to in place of dest in argument names. Some constification of argument types.
-
- Nov 23, 2015
- Oct 19, 2011
-
-
rswindell authored
all exported functions and data types using a 32-bit time_t (time32_t).
-
- Aug 30, 2011
-
-
rswindell authored
especially through SMTP (where these values are exposed via the Originator-info header field): SENDERUSERID, SENDERSERVER, and SERVERTIME.
-
- Mar 06, 2010
-
-
rswindell authored
inserting (long) typedefs to prevent warnings, but in the case of the JS File() class, actually supporting file lengths > 32-bit.
-
- Oct 25, 2009
-
-
rswindell authored
Added FTN PID header field to all messages created by sbbs.
-
- Mar 20, 2009
-
-
rswindell authored
Added HOST and IP keywords to allow restricted access/privileges to/for specific remote hostnames or IP addresses (wildcards allowed). All string-argument type ARS keywords (e.g. SHELL, PROT, etc.) now support .can style wildcards. The current remote client is now used for protocol, host, and IP ARS checking, when available, so this requires passing the client pointer around (which explains why so many files are touched by this change) and takes care of a long standing to-do item (the user's 'modem' value was used for the PROT value checking, which was not always correct).
-
- Aug 23, 2006
-
-
rswindell authored
single function. * editfile() now modifies a temporary copy of the file which solves 2 problems: A. editors restricted to the temp dir (e.g. PICO) can now be used to edit other files (e.g. sig files) B. DOS editors can now be used to edit files with long filenames (e.g. .plan files)
-
- Oct 02, 2005
-
-
rswindell authored
no need to do manual initialization here.
-
- Nov 17, 2004
-
-
rswindell authored
the include directory to get the new include/mozilla/nspr header files (or js_internal.c will fail to compile)! savemsg() now uses smb_addmsg() for most of it's functionality. savemsg() now accepts an optional client_t* argument, if non-NULL will automatically call msg_client_hfields(). MsgBase.save_msg() method now accepts an optional client object argument to automatically set the security log header fields (sender IP addres, hostname, protocol, and port).
-
- Oct 27, 2004
-
-
rswindell authored
types for forwarding netmail. Using new smb macro: smb_hfield_bin() for storing recipient net type.
-
- Oct 21, 2004
-
-
rswindell authored
so configured in SCFG->System->New User Values->Question Toggles.
-
- Sep 17, 2004
-
-
rswindell authored
-
- Sep 08, 2004
-
-
rswindell authored
and net_addr() to smb_netaddr().
-
- Sep 02, 2004
-
-
rswindell authored
call smb_freemsgdat/dfields *after* logging smb.last_error.
-
- Mar 31, 2004
-
-
rswindell authored
-
- Dec 16, 2003
-
-
rswindell authored
-
- Dec 07, 2003
-
-
rswindell authored
for additional tracking information. Created DLL-exported msg_client_hfields() in postmsg.cpp as a common function to add these client tracking header fields.
-
- Dec 06, 2003
-
-
rswindell authored
used to trace message origins for security reasons.
-