- 21 Jan, 2021 1 commit
-
-
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.
-
- 18 Jan, 2021 1 commit
-
-
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...
-
- 30 Dec, 2020 1 commit
-
-
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).
-
- 27 Dec, 2020 1 commit
-
-
Rob Swindell authored
Leave it to new users to do weird stuff and define a mail-forward loop. Outsmart them and don't allow forwarding when the destination is a local address (QWKnet, FidoNet, or Internet).
-
- 13 Dec, 2020 1 commit
-
-
Rob Swindell authored
Recompiling ver.cpp only now, so need link ver.obj/o with the various targets now. I'll need to update the objects.mk for the *nix builds, next.
-
- 24 Nov, 2020 1 commit
-
-
Rob Swindell authored
The argument to JS_NewContext that we were allowing to be configured was not the contest stack size, but rather: "The size, in bytes, of each "stack chunk". This is a memory management tuning parameter which most users should not adjust. 8192 is a good default value." - per Mozilla. So we're just going to use the suggested default, hard-coded.
-
- 21 Nov, 2020 2 commits
-
-
Rob Swindell authored
Revert the previous change to the mailsrvr (don't try to parse the MS Outlook singled-quoted names in to/from header fields). Instead, use the new matchusername() to perform a liberal name match against the name portion of the destination email address and if it matches, go ahead and use the quoted-name field. Otherwise, use the name portion of the destination address as the TO field for the FTN netmail message.
-
Rob Swindell authored
instead of the potentially-alias'd delivery address. The angle-brackets (now included) appear to be standards-compliant.
-
- 20 Nov, 2020 2 commits
-
-
Rob Swindell authored
Parse single-quoted "name" portion of email-addr header fields. I don't think this is going to fully solve the issue with FTN netmail gated to SMTP and replied via Outlook, but it's a start. Try that Nelgin.
-
Deon George authored
-
- 19 Nov, 2020 1 commit
-
-
Deucе authored
-
- 07 Nov, 2020 1 commit
-
-
Rob Swindell authored
The "MAIL FROM" command argument must always be enclosed in angle-brackets. Some mail servers (e.g. gmail, aol) would reject messages not delivered in this manner, e.g.: mx-aol.mail.gm0.yahoodns.net replied with: "501 Syntax error in parameters or arguments tnmpmscs" instead of the expected reply: "250 ..." gmail-smtp-in.l.google.com replied with: "555 5.5.2 Syntax error. o6si11103060plk.317 - gsmtp" instead of the expected reply: "250 ..."
-
- 06 Nov, 2020 1 commit
-
-
Rob Swindell authored
I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values. This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service). The new macros names are bit more descriptive as well.
-
- 05 Nov, 2020 1 commit
-
-
Rob Swindell authored
For non-authenticated SMTP clients, if the "From:" header field contains a "name" which appears to be an email address (i.e. it has an '@' in it), and that address does not match the *actual* address in the "From:" field, reject the mail with an error message about the forged/mismatched address.
-
- 26 Oct, 2020 2 commits
-
-
Rob Swindell authored
-
Rob Swindell authored
This work-around shouldn't be necessary, but at least on my Linux/Samba setup, when GitLab sends out notification emails to subscribers and creates 4+ simultaneous SMTP connections and sends email messages, sometimes (often) it ends up with a lock-timeout on the mail base. The file locking should handle the contention fine, but somehow I end up in scenarios where savemsg() takes 30 seconds to complete (the configured SMB lock-timeout is 30 seconds, likely not a coincidence) - and this causes other clients to timeout trying to lock the base. Just use a sharead-mutex here instead as a work-around. The wait time is indefinite, might want to consider using a timed-wait instead.
-
- 25 Oct, 2020 1 commit
-
-
Rob Swindell authored
Putting IP addresses first.
-
- 24 Oct, 2020 1 commit
-
-
Rob Swindell authored
Log the IP address first in most log messages. Condense white-space in log messages to a single space. Log the server IP address of incoming connections. (more) Intelligent email address enclosure in angle-brackets. Better duplicate address comparison (just for log message). Fix wrong order of lprintf arguments in !UNKNOWN USER log message (new bug).
-
- 23 Oct, 2020 4 commits
-
-
Rob Swindell authored
-
Rob Swindell authored
Like the Terminal Server, don't count authenticated connections against the MaxConcurrentConnections limit. Only authenticated users with passwords (not Guest) count as authenticated connections.
-
Rob Swindell authored
This might not be so great for IPv6 connections (let me know). Also, use macro for the maximum received SMTP bad command magic number. Fix-up the sender and recipient info included in log messages in the sendmail thread too. Bumped rev to 1.735.
-
Rob Swindell authored
Weird that no mail server has ever complained; I guess they're all prettty "liberal in what they accept". Also, eliminated an unnecessary strcpy() call.
-
- 22 Oct, 2020 1 commit
-
-
Rob Swindell authored
-
- 21 Oct, 2020 3 commits
-
-
Rob Swindell authored
-
Rob Swindell authored
The mail (SMTP) server is a popular target of bots. Impose a maximum-concurrent-connections limit (optionally). Similar to the terminal server option, except, don't deduct the number of authenticated connections (I can add something like that if desired). The new config option is [mail] MaxConcurrentConnections in the ctrl/sbbs.ini (defaults to 0, no maximum). Fixed error responses in mail_server accept loop: was always sending POP3 error responses even if the connection was SMTP. Cleaned-up the service/port checking/logging in the mail_server accept loop: no strcmp() needed, log the protocol name (e.g. "SMTPS") instead of the service name (e.g. "submissions").
-
Rob Swindell authored
Also, if getuserdat() fails, don't count that as a failed login attempt. Also, track username and password of failed-login attempts of deleted or inactive user accounts.
-
- 13 Sep, 2020 4 commits
-
-
Rob Swindell authored
active_clients is destroyed in cleanup(), so it must be re-initialized inside the server init/recycle loop.
-
Rob Swindell authored
Fix reported and observed crash in cleanup() (in ftp, mail, websrvr) when failing to create the temp directory. This was due to cleanup() being called before the protected integer "active_clients" was initialized. Also, md() needs to return the errno value (not a BOOL) since the caller may be in another DLL with a different errno (which likely has a value of 0/no error).
-
Rob Swindell authored
... in other non sbbs.dll modules (e.g. *srvr.dll). So now log error messages elsewhere where appropriate. DLL-exported and optimized md() a bit.
-
Rob Swindell authored
-
- 07 Sep, 2020 1 commit
-
-
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.
-
- 30 Aug, 2020 1 commit
-
-
Rob Swindell authored
Add another "get cryptlib error string" (at least, that's what I assume GCES stands for) that allows the log level to be specified, rather than derived from Cryptlib thinks the log level should be. Do this rather than adding one (lowering the severity) of every cryptlib log message as I did in the previous commit to this file.
-
- 29 Aug, 2020 1 commit
-
-
Rob Swindell authored
(e.g. errors become warnings) - I'm tired of seeing this in my error.log every day: SEND/TLS ... ERROR 'Received TLS alert message: Handshake failure' (-15) setting session active
-
- 16 Aug, 2020 1 commit
-
-
Rob Swindell authored
-
- 08 Aug, 2020 1 commit
-
-
rswindell authored
The problem: the sysop (me) is not notified of critical errors (e.g. synchro.net zone file problems) in a timely manner. Part of the solution: notify a configured user (e.g. user #1) via short-message/telegram and email/netmail logged-errors when messages of a configured severity (e.g. "Critical") are logged. The second part of the solution (coming next) will be allowing timed events to log a message of a configurable severity logged when the event fails (returns a non-zero error level to sbbs). I'm saving the error-notification-user-number and log-severity as part of the node.cnf file because: - that's where the validation user number is already set - I can conceive of a large system were certain node ranges (different instances of sbbs) might want different operators to be notified of logged-errors This also means I eliminated all the legacy com port/modem stuff from the end of the node.cnf file. None of that is used in sbbs v3. Also included in this commit are improvements around logging: - reduce the severity of UDP recvfrom failures in services - a more detailed log message when the mail server successfully delivers an email (via SMTP) - easier to answer the question: was that email you/they sent delivered successfully?
-
- 20 Jul, 2020 1 commit
-
-
rswindell authored
FTN Reply-IDs are not added here (yet).
-
- 02 Jun, 2020 2 commits
- 01 Jun, 2020 1 commit
-
-
rswindell authored
SEND using auto-detected DNS server address: 2001:4860:4860:: !SEND INVALID DNS server address: 2001:4860:4860:: Fix off-by-one buffer overflow while at it.
-
- 14 May, 2020 1 commit
-
-
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.
-