- Jan 14, 2025
-
-
Rob Swindell authored
uncrustify nl_split_if_one_liner setting
-
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.
-
- Jan 06, 2025
-
-
Rob Swindell authored
selection menu. This allows the sysop to display additional download-file specific instructions (e.g. http URL). When using sendfile() to send a file *not* in a filebase, current_file will == nullptr and the download.* file won't be displayed.
-
- 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 20, 2024
-
-
Rob Swindell authored
It's possible the client requested binary transmit in only one of the two directions and if so, restore just the direction that was previously *not* in binary transmit mode to NVT mode.
-
- Nov 19, 2024
-
-
Rob Swindell authored
Before this change, we'd always request a return to Telnet NVT (turn off binary-TX in both directions) after any file transfer. So although a Telnet session might be negotiated into binary mode shortly after connection (e.g., using "telnet -8"), it would be reverted back to NVT mode after any file transfer. The request to turn off remote binary-TX after executing external programs didn't actually accomplish anything since we track the Telnet option states internally and don't send redundant requests (e.g. the change into a mode we're already in). External programs aren't expected to send Telnet requests anyway, so I think this was some holdover from early days of stp/sexyz development.
-
- Oct 28, 2024
-
-
Rob Swindell authored
This is a code clean-up, no change in functionality
-
- Aug 08, 2024
-
-
Rob Swindell authored
When a user has a "default download protocol" selected (configured for their user account), don't display a menu of file transfer protocols when we're just going to auto-select their default anyway (e.g. when downloading a QWK packet). This change also introduces an argument (%s, the protocol name) in the StartXferNow text.dat string, so that if/when the user forgets which default download transfer protocol they had selected, they'll be reminded ("oh yeah, I need start an XMODEM download!"). This fixes issue #767
-
- Mar 03, 2024
-
-
Rob Swindell authored
-
- Dec 29, 2023
-
-
Rob Swindell authored
(missed as part of previous commit)
-
- Jun 10, 2023
-
-
Rob Swindell authored
-
- Jun 09, 2023
-
-
Rob Swindell authored
So Clang-FreeBSD was warning (in compiles of scfg/scfg*.c by Deuce): result of comparison of constant 100000 with expression of type 'uint16_t' (aka 'unsigned short') is always true Why? Cause a uint16_t's max value is 65535 (less than 100000). Sure we could have just lowered the UIFC max number of config items to 65535, but that would have been too easy. And why are these compared-with values of type uint16_t to begin with? Because most ctrl/*.cnf lists (of configuration items) were limited to 65535 entries cause ... 16-bit DOS, historically. Now that *.cnf files aren't used, we could just increase these scfg_t.*_total type sizes from 16 to 32-bits, yeah? The result is this commit. I went to (signed) int so we could still keep -1 as the special illegal sub/dir num value (e.g. INVALID_SUB, which is sometimes used to indicate the email message base). Theoretically, 2 billion configuration items could be supported in these lists, but SCFG will limit you to 100000 anyway. So there's a whole lot of s/uint/int in this commit. I'd be very surprised if this doesn't result in some new GCC/Clang warnings, but at least the old "comparison of constant 100000" warnings are now gone!
-
- May 06, 2023
-
-
Rob Swindell authored
My first idea was to have a per-external-program setting to enable input translation, but Deuce suggested it would be better done in input_thread() and after some thought, I agree. Translations are not done in data/file transfer mode, so use the CON_RAW_IN console flag to indicate this condition. So even JS console.getbyte() will return a translated char unless the console is set raw input mode (this could be surprising behavior for some!). I considered saving/restoring the console mode when performing a file transfer but will leave that to a time when obviously needed. This fixes issue #497 in automatic way (no option needed).
-
- Mar 11, 2023
-
-
Rob Swindell authored
Does exactly the same thing, no change in behavior and unlikely there's any change in performance.
-
- Mar 04, 2023
-
-
Rob Swindell authored
Upon successful download of a file, recalculate and store the user's download CPS (characters/bytes per second), mainly for subsequent transfer time estimates.
-
- Jan 30, 2023
-
-
Rob Swindell authored
- Most published messages (besides log entries) have a timestamp (in ISO8601 format) prepended and tab-separated - The order and number of elements in client messages (list and activities) has been updated, now includes user number - Server client lists are now published to .../SERVER/client/list - Server client activities (connect, disconnect, update) are now published to .../SERVER/client/action/# - Server client count is now published to .../SERVER/client (with the maximum client count, if applicable) - Server states are now just represented by name (e.g. initializing, ready, stopping, stopped) and not number - BBS errors are logged to sbbs/BBS/action/error/LEVEL (where LEVEL is the log level name, e.g. "critical" or "error') - All server hack-attempts, SPAM attempts, logins, logouts, uploads, downloads, are published to sbbs/BBS/action/ACTION/* - Chat pages are published to sbbs/BBS/action/page/node/# - New users (on the terminal server) are published to sbbs/BBS/action/newuser - Posted messages and executed external programs (on the terminal server) are published to sbbs/BBS/action/ACTION/CODE topic - The event thread started/stopped status is published to .../SERVER/event Yeah, the wiki will get updated soon to reflect/document all these changes
-
- 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).
-
- Mar 24, 2022
-
-
Rob Swindell authored
Credits and daily free credits are accurate to the byte up to (a maximum) of 18446744073709551615 (that's 18 Exbibytes - 1). User's upload and download byte stats are now similarly extended in maximum range, but the accuracy is only "to the byte" for values less than 10,000,000,000. Beyond that value, the accuracy declines, but is generally pretty damn accurate (to 4 decimal places beyond the nearest multiple of a power of 1024), so I don't expect that to be an issue. This method of storing upload/download byte stats allowed me to use the same 10-character user record fields in the user.dat file. As a side-effect of this enhancements: * User and file credit values are now expressed in multiples of powers of 1024 (e.g. 4.0G rather than 4,294,967,296). * Free credits per day per security level has now been extended from 32 to 64-bits (to accommodate values >= 4GB). * adjustuserrec() now longer takes the record length since we can easily determine that automatically and don't need more "sources of truth" that can be out-of-sync (e.g. the U_CDT field length going from 10 to 20 chars with this change). * setting the stage for locale-dependent thousands-separators (e.g. space instead of comma) - currently still hard-coded to comma * more/better support for files > 4GB in size (e.g. in the batch download queue) * user_t ulong fields changed to either uint32_t or uint64_t - I didn't realize how many long/ulong's remained in the code (which are sometmies 32-bit, sometimes 64-bit) - ugh * Steve's ultoac() function renamed to u32toac() and created a C++ wrapper that still uses the old name, for homage
-
- Nov 18, 2021
-
-
Rob Swindell authored
The internal line editor's quoting feature add some hard-coded strings ("Done" and "All") and the (L)ist key was hard-coded. Use the text.dat string (new and pre-existing) for these now. Also, use the new sbbs_t *_key() methods for referencing the configured key bindings (via text.dat) for these common key-stroke commands. Convert the text.dat strings for keys (e.g. YNQP) to uppercase always as well.
-
- Apr 04, 2021
-
-
Rob Swindell authored
This won't impact Synchronet as it has a separate signal handling thread, but we still need to behave properly for processes that don't. I'm also saying that ENOMEM does not indicate a disconnection, though it may be better to pretend it was disconnected...
-
- Nov 25, 2020
-
-
Rob Swindell authored
Testing my commit hook more than anything.
-
Rob Swindell authored
... when running DOS programs on Linux with a DOSEMU-enabled build.
-
- Nov 05, 2020
-
-
Rob Swindell authored
As reported by WitNik, on 32-bit rPi builds, the loop would not terminate and display transfer count down values after hitting 'H' to hang-up.
-
- Aug 16, 2020
-
-
Rob Swindell authored
-
- Aug 31, 2019
-
-
rswindell authored
-
- Aug 02, 2019
-
-
rswindell authored
(defauls to enabled, for backward compatibility). Added new autohang args to bbs.send_file() and bbs.receive_file() (default:true) Added support for "description" argument to bbs.send_file() as well.
-
- Apr 10, 2019
-
-
rswindell authored
sendfile() no longer logs "attachment" when a file description is provided.
-
- Jan 28, 2019
-
-
rswindell authored
(excessively long fspec/%s value).
-
- Oct 30, 2018
-
-
rswindell authored
now have their output translated to PETSCII equivalents for PETSCII terminals (but input is not yet translated). .seq files are now sent untranslated via printfile() and putmsg() to PETSCII terminals (using the new P_PETSCII putmsg mode flag). .seq files (and P_PETSCII mode text printed via putmsg) is now converted (poorly) from PETSCII to CP437 - this is still a work-in-progress. Remove the remants of WIP and HTMLterm support from putmsg() and printfile().
-
- 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.
-
- Jun 18, 2018
-
-
rswindell authored
"Conditional jump or move depends on uninitialised value(s)" Thanks, Nelgin.
-
- Feb 20, 2018
-
-
rswindell authored
-
- Jan 12, 2018
-
-
rswindell authored
check the protocol.log (e.g. DSZ.LOG) for successful transfer even when the protocol was so-configured in SCFG. Fixed. Additionally, while sendfile() would return a proper boolean result based on the errorlevel returned by the protocol driver process, the log and console output would report success and statistics adjusted as though the xfer was successful, regardless.
-
- Nov 26, 2017
-
-
rswindell authored
-
rswindell authored
- adjusts stats (not credits) for the current logon and user - logs the download - accepts an optional "description" argument
-
rswindell authored
char, don't try to match it with a transfer protocol. When a user doesn't have a default transfer protocol selected, their "prot" property may be a space.
-
- Apr 28, 2015
-
-
rswindell authored
was never used. This was intended to be a method for internationalization, letting the sysop change which key is used as the uiniversal "quit" key. This commit replaces most of the uses of the hard-coded 'Q' for quit wtih the 3rd charcter in the text.dat YNQP string. Some hard-coded menus still have the 'Q' key hard-coded and will need to be addressed later. The text.h YN index macro was changed to YNQP and the JS text index variable name will change as well.
-
- Oct 19, 2011
-
-
rswindell authored
all exported functions and data types using a 32-bit time_t (time32_t).
-
- Sep 21, 2011
-
-
rswindell authored
longer (use lprintf(LOG_ERR,...) instead, which does). Added sbbs_t::hacklog() for convenience.
-