- Feb 24, 2022
-
-
Rob Swindell authored
Also updated the default colors of the existing DownloadUserMsg string to have a little more variety.
-
Rob Swindell authored
Tired of being reminded that you were "awarded 0 credits" for free downloads? I know I am, so I created another text.dat string (reusing Unused300), for notification of free-download files where no credits are awarded to the uploader. Also updated the default colors of the existing DownloadUserMsg string to have a little more variety. Not sure why ftpsrvr.c isn't using user_downloaded_file(). That copy/pasta should be eliminated later.
-
Rob Swindell authored
postfile.js still should be used for adding a single file to a filebase, but when updating a single file, this seemed like a simple enhancement. It also allows filtering of files to be added by wildcard (e.g. *.zip), so potentially useful for adding files too. Address enhancement request #348
-
- Feb 23, 2022
-
-
Rob Swindell authored
-
Deucе authored
-
Rob Swindell authored
TARDIS (Quarkware BBS, the Ruby BBS), uses just \n for QWK message line deliniation, but we were expected \r\n terminated lines here. Also, apparently there was trailing white-space on the "json-end" line, so handle that case too.
-
Rob Swindell authored
And a couple of projects didn't have the encode directory in their include path.
-
Rob Swindell authored
When no file description was provided (e.g. blind/batch file uploads), I noticed that the short file description (summary) could be set to "(null)". This problem was introduced in commit bc7030d3 with the sbbsfile.des creation and post-processing support. I also noticed that the extended description processing in sbbs_t::uploadfile() was not entirely consistent with other methods of adding/uploading files. Let prep_file_desc() do its just of processing the extended description into a suitable short description/summary (including truncation).
-
Rob Swindell authored
If the extended description is UTF-8, first convert it to CP437.
-
Rob Swindell authored
strip_cp437_graphics() is like strip_exascii(), except it'll leave the foreign language characters and math symbols intact (removing just the common "block" and "line-drawing" characters). DEL (0x7F) is a control character too, so have strip_ctrl() remove it.
-
Rob Swindell authored
Apparently 4000 characters isn't enough for everyone to describe their files in vibrant colors and "graphics". :-)
-
Rob Swindell authored
-
Rob Swindell authored
This should address issue (feature request) #196. The last 20 sets of displayed messages are stored as data/msgs/<user-num>.last.#.msg. This number is currently hard-coded, but could be configurable in the future. I say "sets" because messages are batched-up and displayed together normally, unless a user is actively polling for new users (e.g. while at the Ctrl-P/PrivateMsg prompt). This involved getting rid of some copy/pasta in sbbs_t:getsmsg() as well by creating/using/reusing readsmsg().
-
Rob Swindell authored
- setInterval() returns a Number, not an Object. - typos fixed - markup added
-
- Feb 22, 2022
-
-
Rob Swindell authored
The QWKnet user look-up feature was broken as of commit e4fc5d04 (a year ago). Just noticed this regression as Andre asked in IRC about looking up network users for netmail. This feature worked for QWKnet users/addresses, at least, and now will work again.
-
Rob Swindell authored
This addresses the gitlab issue #130. Also, prompt for confirmation when [D]eleting the file. Also, allow modopts.ini customization of this script via keys in the new (optional) [automsg] section: prompt (defaults to text.dat AutoMsg) sysop_prompt (defaults to hard-coded string) intro (defaults to hard-coded string) header_fmt (defaults to text.dat AutoMsgBy) user_fmt (defaults to hard-coded string) line_fmt (defaults to hard-coded string) max_line_len (defaults to 76)
-
Rob Swindell authored
This field should not normally have a value of '1' (no way to configure that, normally, since days are numbered starting at 1 and bit 1 is 2), but if it does, it's treated the same as 0 (any day of the month) - so fix that mismatch in getnexteventtime(). Just noticed this while comparing the logic with the new is_time_to_run() functions in main.cpp. That logic wasn't (should not have) changed, so this mismatch in the treatment of mdays == 1 existed before.
-
- Feb 21, 2022
-
-
Rob Swindell authored
Reduced probably the biggest if() conditionals in sbbs to a single line by breaking the "time to run" logic into separate functions and sharing those functions between both QWKnet and timed-event scheduling. There was no actual problem with this code/logic, it was just very difficult to read and understand and step-through with a debugger and understand why or why not an event might run under different configurations and circumstances. Also removed the PostLink network call-out logic. pnet.dab is no longer read and written-to and if you happened to have any PostLink hubs configured (how?!?), they'll no longer be "polled". This is the only functional change unless I did something wrong in the process. One thing I noticed and contemplated, the current time is not queried between consecutive timed-event scheduling/execution. It's possible that an executed event can take a long time and impact the criteria for the next timed event. The events are checked for scheduling every few seconds, so I can't really think of a big down-side to the current design (apparently intended to reduce unnecessary querying of the current date/time), so I didn't do anything to change that. Just something I noticed.
-
Rob Swindell authored
With this option set to "No", sysops can still login, they just can't perform most sysop functions. Updated System Password help text to clarify that the "Allow Sysop Access" option effectively disables the system password. Also mention the FTP Server use of the system password to enable sysop access.
-
Rob Swindell authored
As Andre pointed out while documenting this setting on the wiki, the option seemed confusing: if a sysop could not login with "system operator access", how could they login at all? Answer: they could not. This setting used to be called "Allow Remote Sysop Logins", back when there was the concept of a "local login", so setting this option to "No" would mean that user accounts with sysop access could only be used for *local* login. But in Synchronet v3, there's really no such concept as a "local login", so it was changed to just "Allow Sysop Logins" (period) and not a lot of thought given to how/why a sysop would actually set to this "No" or what the implications would be (presumably, nobody ever sets this to "No"). So rather than just get rid if the option altogether, I changed it to mean: an account with sysop access (i.e. level 90+) can still login, but any action that normally requires the system password will not be allowed. This includes the sysop-actions available in the FTP server when authenticating with <user-pass>:<system-pass> as the password. The sysop-user can still authenticate (and login), but none of those sysop-actions will be available to them.
-
Rob Swindell authored
Partially revert Deuce's commit b4bc9c97 This explains the EAccessViolation (stack corruption during sbbs startup) that sysops have reported when using the latest nightly builds.
-
- Feb 20, 2022
-
-
Deucе authored
This macro as written won't compile on mingw32 due to the attributes on _mktemp(). This could be worked around, but it's easier to just disable it since I don't need it, and nobody else is building with mingw32.
-
Deucе authored
On Win32 it can't be defined until after winsock*.h is #included. On everything else, it needs to be a pointer.
-
Deucе authored
For Win32, this is actually the pointer type an ioctl() third argument needs to be. For other OSs, this is basically what an FIONBIO third argument needs to be... there's really no restruction at all on what arguments after the second to ioctl() need to be.
-
- Feb 19, 2022
-
-
Deucе authored
It seems we can't add a const to a typedef in a static_cast<>()
-
Deucе authored
uintptr_t should be the same as a DWORD on Win32, and CRITICAL_SECTION can be stored in an inptr_t as well. This should work fine, and allow more build environments to be happy. This is generally caused by new C++ standards having thread support in the standard library, so wrappers getting pushed deeper in. At some pointer, this should be redone with standard threads, but now is not the time.
-
Rob Swindell authored
@-code expansion in text lines. Text searching for sub-board, group, or all. See merge request !143
-
Deucе authored
This is so we can deal with send(), recv() and friends taking a void* on BSD stacks, and a char* on Win32. Not a big deal for C where a void* is universal, but C++ hates that type of thing.
-
Eric Oulashin authored
Version 1.44: Removed the scanScopePromptText text line and used the SubGroupOrAll line (621) from text.dat instead. Also, the reader now supports @-code expansion in configured text strings. This addresses issue #316 from Vincent Macaluso. Text search now can search sub-board, group, or all like the other text searching (requested by Nelgin). When reading the theme file, color settings are now checked to ensure they only have Synchronet attribute codes.
-
Rob Swindell authored
Thanks to Andre for pointing that out in his wiki updates.
-
echicken authored
If absent, default string 'Bulletins' will be used.
-
echicken authored
Removed attribution rather than fix its coloring. Nobody cares, and if you do care, have you tried not caring? It's easy, it's just a matter of doing nothing. Bullshit is a proud sponsor of funclib.js.
-
- Feb 17, 2022
-
-
Rob Swindell authored
On Windows, CRs in extended descriptions could result in output of \r\r\n which could be displayed as 2 newlines (e.g. in notepad.exe). Since the \n -> \r\n expansion already happens on Windows stdout, we don't want them in the processed input (file metadata). As reported by DesotoFireflite (VALHALLA), thank you!
-
Rob Swindell authored
As pointed out by DesotoFireflite (VALHALLA), both the file's short/normal description and the extended description were being included in all file listings. This is probably want most sysops will want since the extended description is often used as the content of the short/normal description, resulting in repeated content. So, by default, if there is an extended file description, don't output the short/normal file description. If you want to include *both* the short and extended descriptions (for files that have both), include both the -ext and -desc command line options.
-
- Feb 16, 2022
-
-
Rob Swindell authored
Initial support for offline message counting in msglist.js. See merge request !142
-
Tristan Greaves authored
Added options: -count -all_subs -hide_zero This allows this script to be used to create counts of messages in the groups. Typical use: Stats on new messages in the last x days.
-
Rob Swindell authored
Inspired by filelist.js (which is really *only* for use offline), added support to run via JSexec or timed event with command-line options to control the output format, sorting, and msg-age range. Try this Mewcenary (EXTRICAT)
-
- Feb 15, 2022
-
-
Rob Swindell authored
-
- Feb 14, 2022
-
-
Rob Swindell authored
I think this means one of your nodeon.* files are corrupt and just deleting that file would likely cure the situation as well.
-
Deucе authored
-