- Jan 21, 2025
-
-
Rob Swindell authored
No change in functionality, just code comprehension
-
- 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 12, 2025
-
-
Rob Swindell authored
-
- Jan 11, 2025
-
-
Rob Swindell authored
Caveat: the name parameter cannot contain a space, so excludes spaces or replace them with '.' or '_': the user's alias will match.
-
Rob Swindell authored
e.g. [can|is]_subject_something() is now named subject_[can|is]_something() No functional change.
-
- Apr 28, 2024
-
-
Rob Swindell authored
WIPterm hasn't been supported in ages and HTMLterm was just an ephemeral experiment. Leave the WIP ARS keyword parsing support, for backwards script compatibilty.
-
- Dec 29, 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!
-
- Mar 04, 2023
-
-
Rob Swindell authored
Handles integer overflow in the summing of user's credits and remaining daily free credits.
-
- Nov 17, 2022
-
-
Rob Swindell authored
Upload and Download ARS must be matched *and* the directory's upload and download ARS. Operator and Exemption ARS must be matched *or* the directory's operator and exemption ARS.
-
- 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
-
- Apr 04, 2021
-
-
Rob Swindell authored
CID 319008
-
- Dec 17, 2020
-
-
The hardcoded external.bat file has been moved to a templated /exec/external.bat which can be modified by the sysop. ENV vars are in there to be able to customize as needed. emusetup.bat is no longer needed, but still supported. The actual dosemu command line is now stored in /exec/dosemulaunch.ini and can be customized for fossil or i/o command lines. the keystroke is now only sent for i/o, and only sent as \n instead of \r which would trigger undesired behavior in certain programs. The above 2 files can also be placed in door dirs to override. ansi.com has been removed as it was not needed. default external.bat includes cmd lines for share, x00, etc. (user will still need to provide these in xtrn/dosutils).
-
- Sep 26, 2020
-
-
Rob Swindell authored
Altere reported that listing users with access to a sub-board with an Access Requirement String (ARS) set to "SYSOP" would list all users as having access. The problem was the use of the "SYSOP" macro which checks the *current* user online (not the subject of the ARS check). Fixed by not using the SYSOP macro.
-
- Aug 16, 2020
-
-
Rob Swindell authored
-
- Mar 19, 2020
-
-
rswindell authored
- ASCII - UTF8 - CP437 And these, along with the pre-existing PETSCII keyword, are mutually exclusive (only one will be set/true).
-
- Jul 23, 2019
-
-
rswindell authored
-
- Jul 07, 2019
-
-
rswindell authored
the "right thing" for auto-terminal detection mode.
-
- Oct 22, 2018
-
-
rswindell authored
So Omegix recently asked in the Synchronet Discussion group whether or not a PETSCII (Commodore) terminal could be used to access his Synchronet BBS. Now, the answer is "Yes". :-) The major issues addressed: - detecting a PETSCII terminal, solved by assigning specific (configurable): TCP ports to be used for incoming PETSCII connections, by default: port 64 is for 40-column PETSCII and port 128 is for 80-column PETSCII, but if the terminal sends a Telnet Window Size reply (e.g. SyncTERM), then either size terminal should fine on either port. The port numbers are configurable in the [BBS] section of your sbbs.ini file using the new keys: PET40Port (default value: 64) and PET80Port (default value: 128). Having these keys set doesn't make make the terminal server listen on that additional port - you'll need to add more IP:port combinations to one of Interfaces values, example: TelnetInterface=71.95.196.34,71.95.196.34:64,71.95.196.34:128 And you don't have to use Telnet for the PETSCII connections - you could use RLogin or SSH instead (or in addition). - support for terminal widths < 80 columns: This was achieved through a combination of text.dat changes (numerous), new Ctrl-A and @-codes and new optional terminal-width-specific menu files (e.g. text/menu/main.40col.asc) A side effect of these changes is actually better support for terminals *wider* than 80 columns as well! - support for terminals that don't expand tabs to spaces (e.g. PETSCII): The terminal server now handles tab expansion with a run-time settable tab-size (default size: 8) - conditional access based on PETSCII (or small) terminal use (or not): + New PETSCII ARS keyword (boolean) + New COLS and ROWS ARS keywords (for terminal width and height requirements) + New TERM (string) ARS keyword New @-codes: - WORDWRAP, when placed at the top of a file, enables auto-wordwrap for lines longer than the terminal width - CENTER, the text following before an end of line will be displayed centered on the terminal (whatever the width, in columns) - CLEAR, like CLS, except it ignores (doesn't display) a CRLF that follows - COLS, current number of terminal columns (width) - ROWS, current number of terminal rows (height) - TERM, the auto-detected or reported terminal type (e.g. ANSI, TTY, etc.) - SYSONLY, toggles "echo" (display) off/back-on for non-sysops similar to the Ctrl-A( and ) codes, but more convenient to use (and PabloDraw won't strip the @-code from the file like it does with Ctrl-A codes it doesn't support) New Ctrl-A codes: - \ conditional new-line/continuation when the terminal width is < 80 cols prints the new text.dat string LongLineContinuationPrefix yesno() will now return true if passed a blank string. noyes() will now return false if passed a blank string. getstr()'s input length limiting based on terminal width is more broadly applied now (not just when using the K_LINE mode flag). New JS bbs object method: menu_exists(<base_filename>) returns Boolean New JS console object property: tabstop (Number) New JS console object methods: getbyte() and putbyte() to recv/send raw byte value with (very little) interpretation/intervention by the terminal server New JS console object method: creturn() - performs a carriage return (or equivalent) New JS (and C) printfile() mode flag: P_TRUNCATE, causes long lines to be truncated, rather than displaying causing a line-wrap. New text.dat strings: - NoAccessTerminal (for ARS check failures) - LongLineContinuationPrefix (for breaking long lines for 40col terminals) - Scanning (replaces a previously hard-coded "Scanning" string) - Done (replaces a previusly hard-coded "Done") - Scanned (when finished scannning, clears the progress bar)
-
- Aug 24, 2018
-
-
rswindell authored
I have a new use for it in the v3 Terminal Server, it now follows the "NO_DOS" option in the [bbs] section of the sbbs.ini file. So if you have multiple Win32 instances of sbbs (like I do), but only some of them support DOS programs, you can now use this ARS keyword to enable/disable access to a program based on the existance of DOS support. For example, I have some 16-bit DOS message editors where I had the ARS set to "WIN32", but on my 64-bit Windows instance of sbbs (vert.synchro.net), 16-bit DOS programs aren't supported while on my 32-bit Windows instance (bbs.synchro.net) they are. So I needed a good run-time check for whether DOS programs were supported or not and this old ARS keyword seemed the right fit. For Linux builds, this keyword will only evaluate to true if built with the USE_DOSEMU option. This is only true of the Terminal Server - use of "DOS" ARS keyword in other servers and services will still just evaluate to "false".
-
- Jan 12, 2018
-
-
rswindell authored
- FILE_AREA - FILE_AREA_DESC - FILE_LIB - FILE_LIB_DESC - FILE_LIB_NUM - FILE_DIR - FILE_DIR_DESC - FILE_DIR_CODE - FILE_DIR_NUM - FILE_NAME - FILE_DESC - FILE_UPLOADER - FILE_SIZE - FILE_CREDITS - FILE_TIME - FILE_TIME_ULED - FILE_TIME_DLED - FILE_DATE - FILE_DATE_ULED - FILE_DAT_DLED - FILE_TIMES_DLED Fixed MSG_ATTR @-code (missing SPAM attribute) New text.dat line: FileHdrDescSeparator, displayed between file detail display (name, date, uploader, etc.) and extended description, if there is one. This is used to execute showfileavatar.js. New JS 'bbs' object properties: - file_name - file_description - file_dir_number - file_attr - file_date - file_credits - file_uploader - file_update_date - file_download_date - file_download_count Inspiried by Lon Seidman's now infamous (but likely common) Synchronet sysop blunder (removing a file rather than downloading it while demonstrating his BBS on his youtube channel: - New text.dat line: RemoveFileQ <- using this rather than the vague: AreYouSureQ, when prompting to remove a file - The sysop command to remove files from the batch file flagging prompt has been changed from 'D' (delete) to 'R' (remove). - The 'D' command from the batch file flagging prompt may now be used for immediate Download of any flagged file(s). - When flagging files with '*', treat the same as '*.*'
-
- Oct 12, 2017
-
-
rswindell authored
-
- Aug 20, 2015
-
-
deuce authored
New Features: - Multiple bindings for each service Use comma-separated interfaces on Interface= lines in the ini file. Default is now "0.0.0.0,::" - IPv6 support - TLS support for the webserver and (non-static) services New TLS option in services.ini (ie: Options=TLS) - Decrease LEN_SCAN_CMD to 35 chars, increase the CID field to 45 chars, and rename the MAIL_CMD string to IPADDR. I think this frees up the note field for SysOp use.
-
- May 02, 2015
-
-
rswindell authored
getusrsub() returned the completely wrong sub-board number. It assumed that getusrgrp() returned a 0-based index when in fact it returns a 1-based group number. This bug was only visible when using certain @-codes (e.g. "SN", "SL", "SR", and "SMB_SUB_NUM") when a sub-board was open via Synchronet internal function (i.e. not via JS MsgBase class). If the current group was the last group visible to the user, this would cause a crash.
-
- Oct 26, 2011
-
-
rswindell authored
DELETED keywords with other keywords (e.g. "NOT DELETED AND LEVEL 50)": keyword/values following the broken keyword would be interpretted incorrectly.
-
- Oct 16, 2011
-
-
rswindell authored
-
- Mar 20, 2009
-
-
rswindell authored
-
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).
-
- Jun 04, 2008
-
-
deuce authored
by properly const-ifying the appropriate functions and variables. Not yet tested on Win32
-
- Sep 30, 2007
-
-
rswindell authored
ULM (uploaded megabytes), and DLK and DLM (for downloaded K/Mbytes).
-
- Sep 23, 2007
-
-
rswindell authored
* ULS - uploaded files * ULB - uploaded bytes * DLS - downloaded files * DLB - downloaded bytes ... so now Phil can have a "true" 1:4 upload/download file ratio requirement by using an ARS of "DLS NOT 4 OR UDFR 25"
-
- Dec 29, 2006
-
-
rswindell authored
-
- Sep 20, 2005
-
-
deuce authored
-
- Sep 05, 2005
-
-
rswindell authored
* GUEST (shorthand for "REST G") * QNODE (shorthand for "REST Q"). They're not really much shorter, but the intended function is more clear to the sysop.
-
- Dec 01, 2004
-
-
rswindell authored
(not rounded up to 100%).
-
- Oct 17, 2004
-
-
rswindell authored
correctly for the BBS (e.g. "Telnet" and "RLogin") until the chk_ar function is changed to accept a client_t argument.
-
- Nov 13, 2002
-
-
rswindell authored
variants (gmtime_r, localtime_r, and ctime_r) for thread-safe operation on Unix
-
- Jul 25, 2002
-
-
rswindell authored
and group number for a specified (0-based) subnum.
-