- Mar 04, 2023
-
-
Rob Swindell authored
-
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.
-
Rob Swindell authored
In a minute, this CPS value will be of more use since it'll be reflective of the user's actual download rate (in characters/bytes per second) instead of just some randomly-chosen numeric constant.
-
- Mar 03, 2023
-
-
Rob Swindell authored
Will track the user's last succsesful file-download transfer rate in characters (bytes) per second. I'm not calculating or storing this rate yet, but will be soon. This will make the file download ETAs more realistic and no longer hard-coded to 3000 cps (which now defaults to 10000 cps, to keep up with the times). New field added to user.tab placed adjacent to the other File xfer stats, which means the leech attempt counter (likely always 0) was moved to the end of the user record.
-
Rob Swindell authored
If a file gets added to a batch download queue that a user doesn't have download-access to (at the time of batch download), deal with that gracefully and consistently. start_batch_download(): - Now checks current user access to download the file in both single-file and batch modes - Now performs credit-check in single-file mode (wasn't doing so previously) - totalsize of multi-file batch download queue is now calculated again (apparently removed/broken in the new filebase conversion of v3.19), so download ETA should be calculated more accurately (?) again - Use gettimetodl() to calculate each file's download time for multi-file downloads - Using new putnode_download() method to write node downloading "action" and ETA-in-aux fields - The node status wasn't being updated at all before start of download in single-file mode - fixed create_batchdn_lst() : - Checks each file still downloadable by the user and if not, removes from the queue (and the generated list file). - Performs credit check and removes files that exceed available user credit - returns true only when 1 or more files is added to the batch download list file addtobatdl() - Removed redundant 'D' restriction check - this is handled by can_user_download() check already. - Use the 'reason' out parameter from can_user_download() to determine which error string to display (not always CantDownloadFromDir).
-
Rob Swindell authored
If a user doesn't have access to download a file that's in their batch queue, remove it without saying anything to the user (but log a notice-level message about it) during logon. Files that no longer exist in the filebase are treated the same way.
-
Rob Swindell authored
Eliminate some copy/pasta.
-
Rob Swindell authored
Default to 100000 (cps) if passed a rate_cps argument value of 0.
-
Rob Swindell authored
Migrated from sbbs_t::start_batch_download(), this just calculates the ETA (of transfer completion) and writes to the node's aux field in the proper format.
-
Rob Swindell authored
These text.dat strings require an argument (and normally used with the NOACCESS @-code which uses the noaccess_str and noaccess_val member variables), so not appropriate to use as a reason code here. Use more generic (no argument) text.dat item numbers instead.
-
- Mar 02, 2023
-
-
Rob Swindell authored
Fixes a stale non-zero error_count retained topic.
-
Rob Swindell authored
Pretty much any From field that contains an '@' in the username portion was subject to comparison to the full email address, but clearly some of these rejected emails were not forge attempts: 'Chris @ StubHub' vs 'events@mail.stubhub.com' 'Eric S. Raymond (@esr)' vs 'gitlab@mg.gitlab.com' Fixed by requiring that the sender name is actually a well-formed Internet email address using smb_netaddr_type(), which was also recently improved to be more accurate. Unrelated change: include reverse-path (email address for bounces) in ILLEGALLY-LONG body and header line log messages (usually SPAM from what I can tell).
-
Rob Swindell authored
... instead of undefined, to match what the documentation already stated.
-
Rob Swindell authored
smb_netaddr_type(): - if passed NULL or a string that begins with whitespace, now returns NET_NONE. - if passed a string that begins with '@', now returns NET_UNKNOWN. - if the user.name portion of an otherwise value Internet email address contains a space, now returns NET_NONE. smb_get_net_type_by_addr() - if passed a string that begins with '@', now returns NET_UNKNOWN. - if passed a string with space following '@', will now return NET_UNKNOWN. - if passed a string without a dot following '@', will never return NET_INTERNET. Unrelated change: Add the missing FILE attribute to smb_msgattrstr()
-
- Feb 28, 2023
-
-
Rob Swindell authored
SMTP commands have a shorter limit (510 versus 998) and the body text line limit needed to account for dot-stuffing.
-
Rob Swindell authored
-
Rob Swindell authored
Log a warning message and send a "500 Line too long" before disconnecting any SMTP client that sends lines > 998 characters in length. Technically, we can handle lines up to 1023 characters, but then we could get out of sync with the client if it sends exactly 1023 chars and then a new-line char (which we would interpret as a blank line, separating the message header and body) - so just punt the client who doesn't obey the rules of the protocol.
-
- Feb 27, 2023
-
-
Rob Swindell authored
Update newuserdefaults() to use the new sysop-configured Chat and QWK new user settings/values (commit 56b8fd86). Use newuserdefaults() in newuser.cpp and makeuser.c, eliminating a lot of copy/pasta.
-
Rob Swindell authored
Added chat-settings to SCFG->System->New User Values->Toggle Options Added new menu: SCFG->System->New User Values->QWK Packet Settings Moved SCFG->System->New User Values->Question Toggles to: SCFG->System->New User Prompts... This fixes issue #11
-
Rob Swindell authored
This includes a new JS bbs method: bbs.chat_sec() And the old command shells written in Baja now call the PCMS chat_section function, as they used to, rather than hard-coding the name of the module to execute.
-
Rob Swindell authored
Most sysops didn't know it, but if exec/feedback.* existed, it would be executed just before any user sent an email to the sysop (user #1), excluding new user validation requests: - make this module name configurable and loadable from mods - support JS module here (exit(1) to abort the feedback) - invoke for email being sent to *any* sysop (not just user #1) - don't invoke the module when sending *from* a sysop account This fixes issue #16
-
Rob Swindell authored
-
- Feb 26, 2023
-
-
Rob Swindell authored
This fixes issue #525 Thanks to Nelgin for providing the test platform.
-
Rob Swindell authored
You want to replace the built-in batch file transfer menu with your own loadable module across all command shells? Now you can.
-
Rob Swindell authored
-
Rob Swindell authored
Apparently I missed this in commit bcce78c6.
-
Rob Swindell authored
Many dynamically-generated (e.g residential) hostnames are much > 30 chars. And we can now increase user.tab fields fairly arbitrarily, so let's. :-) Also rename LEN_COMP to LEN_HOST. Some day I'll change all the user_t comp references to 'host', but not today.
-
Rob Swindell authored
Reversed the order of the pwmod date and the password itself. The number of chars of the user's password displayed depends on the terminal width. e.g. on an 80 column terminal, 18 chars will be displayed. If the user's password is longer than what can be displayed, this is indicated with a trailing "..". Wider displays (e.g. 132 column) can display all 40 chars of a user's password. This fixes issue #442 When passwords aren't displayed (due to sysop configuration), show "<hidden>" instead of "XXXXXXXX" to make that more clear.
-
Rob Swindell authored
Pass argument of 'true' to clear upload queue, otherwise download queue is cleared. This fixes issue #488
-
Rob Swindell authored
We don't yet really work with a 0-byte main.ini file, but this gets us a little closer.
-
Rob Swindell authored
and prefixes, suffixes.
-
- Feb 25, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
Remove the (now) unnecessary explicit initializations (e.g. to zero, blank, etc.) from the sbbs_t constructor.
-
Rob Swindell authored
Configured in SCFG->System->Loadable Modules: Scan Dirs: User scans one or more directories for (e.g. new) files List Files: User lists files within a file directory View File Info: User views detailed information on files in a directory This addresses/fixes feature request #521 for Nightfox Will need to document the mode argument bit values on the wiki, but it's the usual suspects: FL_* for scandirs and listfiles and FI_* for fileinfo. The scandirs_mod will be passed an extra bool (0/1) arg that indicates whether or not the user is scanning *all* directories. Test results would be welcome
-
- Feb 23, 2023
-
-
Rob Swindell authored
-
- Feb 22, 2023
-
-
Rob Swindell authored
from sysop input, automatically.
-
Rob Swindell authored
e.g. this a way to set the K_TRIM mode globally for all keyboard input
-
Rob Swindell authored
K_TRIM causes leading and trailing whitespace to be trimmed. K_NOSPACE disallows any whitespace characters to be added to the string. Previously, trailing whitespace was always trimmed. Now, only do that if/when K_TRIM is specified.
-
Rob Swindell authored
When sending an SMB message header via SMTP or POP3, some header fields (lines) could potentially be longer than 1024 and yet sockprintf() was limited to sending 1024 bytes (actually 1022 plus CRLF). This could result in some messages not being sent correctly: header field truncated, not CRLR-terminated, and notably resulting in MIME message contents not being decoded properly in a message viewer/reader. Example (Content-Type is part of the previous header field/line): x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?cm9T1Q9G65VC/lKTTqhODKhy5lHT2y6WWMb/WyvJ+EeGEwYmY7ILhzE3yfNM?= =?us-ascii?Q?KeFWN9T/PqHBya1plKf/sHgaw0iRmI7Hq+u9Dp4bG8OqdniKQlK+Aa27oXMd?= =?us-ascii?Q?Hly6OEYaSu7jbhGGY89LF0gyRVqquqxkaMfpKvG+h4cQnnu4Tl8YAKeE39a2?= =?us-ascii?Q?lHW3372ulmb9jvvZU72J2RtZYkuoIr+Wsqhfyuj39wTZ/+C4qKCsYrmTxrki?= =?us-ascii?Q?fBZ4gMPzWkrcWAr7zPcXBg8bphJJB8VJFUjQyksA3EG4dtH8+TZeEcNNBmHf?= =?us-ascii?Q?oCGnV9wHr9HszzrSkkZ2GGyh3QZLHAVDNe7wDXSy7HJttZugf9kNqKGeaYQL?= =?us-ascii?Q?TpljH1aHPe7MiSP9Dmp/xHQ/DWQOZDx5guNS+iMciMt5p5ad+SkQye0hWRhd?= =?us-ascii?Q?usHvpllclzIee6lxJ0VSPAzHGlAOhtOolrHdDB2ODjvkEzU7L2Fj2f5x7p9q?= =?us-ascii?Q?9d6sUgSz7vZVx8yyR3KPq3jIX0QUnl0xr2Mix9xcmMNcg0yFLPcznqBdLVa8?= =?us-ascii?Q?IC7j0+8oy4BjYxr8Z3elxMC2JKq13gPYgR95cwm6hMDiZbMB4EW/J1uJhD/I?= =?us-ascii?Q?RIIqTZ+Ywt8nKOfXj6/a9Aauf0wN71QKKA+in7KY9oksIhkUGvWOrtJwkVDL?= =?us-ascii?Q?Q2UFrBBJyQHJgumj5Y+bG8FDk/55IfyV9XYEcsdLL4bCF+HX4QPHZCw4P+li?= =?us-ascii?Q?bRvN+UxOO8hgXVkgB1q8mNJ62yQuaj0AContent-Type: multipart/alternative; boundary="_000_SN6PR07MB454477F4C32C66D48BA0B02187A09SN6PR07MB4544namp_" Solved by using asprintf() instead of snprintf() for dynamic string formatting and allocation in one go. Using realloc() to expand the buffer for the appended/required CRLF.
-
- Feb 21, 2023
-
-
Rob Swindell authored
Yes, finally, you can write a command shell in JS without needing a .bin "stub" Baja module to execute it. Fixes issue #504.
-