- Jan 23, 2021
-
-
Rob Swindell authored
If there was an error opening a file for attachment, the MIME part would be left unterminated.
-
Rob Swindell authored
Consume the SMTP lines as fast as possible since the sender may be on the local network (or even local/loopback interface!) and could get way ahead and timeout otherwise, resulting in the "premature evacuation" error (and dumping of the received message) on the receive side. This resolves an observed issue with sending large attachments to the mail server at very high rates and the sending client timing and disconnecting waiting for a response from the server (which was throttling the receive using YIELD).
-
Rob Swindell authored
An unrelated optimization (elimination of an unnecessary use of fprintf) resulted in a new bug that combined all lines from SMTP-received mail messages into a single long line, thus breaking all decoding ability of multi-part MIME messages (where blank lines are significant). Went ahead and replaced some other unnecessary uses of fprintf(), replaces with fputs() while at it.
-
- Jan 22, 2021
-
-
Rob Swindell authored
Some terminals can send NUL (ASCII 0), e.g. hitting Ctrl-Space in Apple iTerm. Allow users of inkey() (in C++ or JS) to optionally detect the difference by specifying the K_NUL mode flag. In JS, console.inkey() will return null upon timeout (rather than "") when the K_NUL mode flag is used and return an empty string ("") upon receipt of NUL (ASCII 0). The default is the previous behavior where a timeout and the receipt of a NUL character appear the same to the caller of inkey().
-
- Jan 21, 2021
-
-
Rob Swindell authored
When a file library's "Access to Sub-directories" option was enabled, any auto-created directories would have their data dir initialized as "blank" (empty), so their data files (e.g. <code>.dat, <code>.ixb) would be created in the ctrl directory. I guess nobody used this feature? It is pretty cool, but not really documented. If you were using it before this commit, you'll need to move your sub-directories data files to data/dirs or re-add the files (recreate the database files). And you can remove the old cruft from the ctrl dir.
-
Rob Swindell authored
This involved the removal of the content-transfer-decoding feature of the SMTP mail server since we need single-part MIME-attached file contents to be stored in their original encoded form (e.g. base64-encoded) and not in binary, for the message body text (where NULs aren't allowed, CR/LF is appended, etc). I accidentally made this change to smbtxt.c in the new_file_base branch and then copied over here, so there's some unrelated innocuous changes (comment header, removal of SMBCALL) that hopefully won't cause a merge conflict later. I don't actually receive single-part MIME attached files, so depending on others (e.g. Nelgin and Dream Master) to test for me.
-
Rob Swindell authored
Don't display at all if smb_getplaintext() returns a blank string. Don't display "(null)" if there's no text sub-type.
-
- Jan 18, 2021
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
We were just trusting that the error strings would be shorter than 256 (usually), but since we're including paths and strerror() results, we really have no control over the length of the error strings. So enforce some healthy boundaries. This could explain the crashes that Divarin of Mutiny is seeing with SCFG on WinXP or maybe it was the truncsp(strerror()) stuff that was just removed as well. We'll see...
-
- Jan 17, 2021
-
-
Rob Swindell authored
Some old/unsupported FidoNet software (NetMgr? Squish?) reportedly parse addresses from MSGID control/kludge lines in NetMail messages to determine the source and/or destination address. This is clearly a bad idea for a lot of reasons, but to improve compatibility, let's not include the message number (or an '@') in the origaddr field for NetMail messages. This does slightly increase the chance of a duplicate MSGID being accidentally generated if the "mail" base is renumbered. No change for EchoMail MSGIDs (where dupe detection and threading still benefit from the additional entropy). For Watchman.
-
Rob Swindell authored
<@Deuce> Just saying that if someone does the work of exit_code = {thing: function(x) { return secretsauce }); exit(); they should get away with it.
-
- Jan 16, 2021
-
-
Rob Swindell authored
Don't use the "exit_code" property value as the return value of js.exec() unless it's a number. As reported by mlong (thanks). Also, "exit_code" was being set to null (instead of void/undefined) in js_PrepareToExecute(). I think this was just an oversight or typo by Deuce from his commit of 5 years ago (f3256d81). Since we're comparing exit_code with JSVAL_VOID in other places to determine if it was actually set, this appears to be a long standing bug.
-
- Jan 11, 2021
-
-
Rob Swindell authored
This was initially just done for lfexpand(), but then I realized there were a lot of these string processing functions that just checked for VOID (undefined) argumnet value, but not null.
-
- Jan 09, 2021
-
-
Rob Swindell authored
When a user logins to the FTP server concurrently, this creates a race condition with an/the other FTP session that may be creating/ downloading a QWK packet. On Vertrauen, this results in the occasional error removing the file since it was removed unexpectedly: !ERROR 2 (No such file or directory) in main.cpp line 2747 (event_thread) removing "/sbbs/data/pack1111.now" access=0
-
- Jan 05, 2021
-
-
Rob Swindell authored
At the request of WitNik (BGGRSCYN)
-
Rob Swindell authored
For deon's use with Docker: When creating new nodes (after node 1), derive the new node directory from node 1's configured directory if possible (e.g. it has a '1' in it). So if Node 1's directory is /blah/bbsdir1, then node 2's directory will default to /blah/bbsdir2. When creating node 1 (the first node), it still defaults to "../node1".
-
Rob Swindell authored
(e.g. when run as a timed event) - this bug was introduced in the "Fix sub[] property setter" crash bug fix 2 commits ago. This fixes the "TypeError: sub.code is undefined" error.
-
- Jan 04, 2021
-
-
Rob Swindell authored
... even when there's no private data. Should fix "TypeError: sub.code is undefined"
-
Rob Swindell authored
The private data pointer is no longer a subscan_t*. This likely explains the reported crashes when using DDMsgReader and the most recent changes (fixes) to the msg_area object.
-
- Jan 03, 2021
-
-
Rob Swindell authored
-
- Jan 02, 2021
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
The following properties would only reflect the status at the time the file_area object was initialized: - can_access - can_upload - can_download - is_operator - is_exempt ... so if changes were made the user while online, for example, these property values would *not* also change to reflect the current state. The lib[] and lib_list[] 'can_access' properties still have this flaw. Also: Add a new "files" property to the dir[] and dir_list[] objects to report the current number of files in each directory database.
-
Rob Swindell authored
can_access/upload/download and is_operator similar to what we already had defined for sub-boards
-
- Jan 01, 2021
-
-
Rob Swindell authored
The following properties would only reflect the status at the time the msg_area object was initialized: - can_access - can_read - can_post - is_operator - is_moderated ... so if changes were made the user while online, for example, these property values would *not* also change to reflect the current state. The grp[] and grp_list[] 'can_access' properties still have this flaw. Also: Add a new "posts" property to the sub[] and sub_list[] objects to report the current number of posted messages (quicker than opening a MsgBase instance).
-
- Dec 31, 2020
-
-
Rob Swindell authored
-
Rob Swindell authored
Set the client protocol to "FTPS" upon successful TLS startup in the control connection (response to the AUTH TLS command from the client). Log some messages indicating FTPS was attempted or successful.
-
- Dec 30, 2020
-
-
Rob Swindell authored
This seems to be misguided and would only increase the chances of a DoS-type attack on TCP session resources. A second 3-second delay upon malloc failure is also removed.
-
Rob Swindell authored
Also, disable the QWK packet creation timeout edit when QWK packet download support is disabled.
-
Rob Swindell authored
Support optional limit on concurrent connections from the same IP address to the FTP server by setting MaxConcurrentConnections in the [ftp] section of sbbs.ini. Unlike the mail server and the terminal server, this concurrent-connection count is not discounted by the number of authenticated logins. The default value is 0 (unlimited). This closes issue #156
-
Rob Swindell authored
Each list mutex is destroyed in the call to listFree() in cleanup(). Without a call to listInit(), the mutex is not recreated and thus the lists are no longer mutex-protected after a recycle. No negative consequences were observed from this issue, but a potential issue it is (was).
-
- Dec 29, 2020
-
-
Rob Swindell authored
Don't search more than 1500 days in the future for a next-run date match. This handles erroneous or just bizarre timed event configurations such as February-29 (once ever leap year) or April-31 (never).
-
- Dec 28, 2020
-
-
Rob Swindell authored
Don't set to 0xff to begin with, in SCFG.
-
Deucе authored
-
- Dec 27, 2020
-
-
Rob Swindell authored
Print the Mbyte estimate.
-
Rob Swindell authored
.. when packing a QWK packet (on Win32, was always reported 0 messages per second).
-