- Apr 01, 2019
-
-
rswindell authored
js_put_msg_header (MsgBase.put_msg_header) - we can't free the memory associated with 'gotten' msg header. Just use the header offset from the header retrieved via MsgBase.get_msg_header() - for fast lookup. Also fixed an innocuous extra increment of 'n' in argv/argc loop.
-
rswindell authored
-
- Mar 31, 2019
- Mar 26, 2019
- Mar 24, 2019
-
-
rswindell authored
argument which specifies that the avatar should be drawn at the top of the screen.
-
rswindell authored
- bbs.show_msg() - bbs.show_msg_header() Re-worked the JS bbs.netmail() implementation sbbs::show_msg(), show_msghdr(), msgtotxt() now take an smb_t* argument (don't use the pseudo-global 'smb' in these functions any longer) sbbs_t::putmsg() and JS console.putmsg() now accept an optional orig_columns argument to specify the original column width of a text for intelligent re-word-wrapping (e.g. as taken from a message header field). Previously, the original-column value was hard-coded to 80 columns (technically, 79). sbbs_t::show_msghdr() no longer sends a CRLF if the cursor is already at the top-of-screen (TOS). sbbs_t::show_msg() now uses the stored "columns" msg header fields to pass to putmsg() to intelligently re-word-wrap message bodies for display. sbbs_t::show_msg() and msgtotxt() return bool now instead of void. JS MsgBase.get_all_msg_headers() now supports an optional "expand_fields" argument (defaults to true). I contemplated just getting rid of the (few) expanding header fields (more like default-value-header fields, like 'id'), but decided against it, at least for now. JS MsgBase.put_msg_header(), the "number_or_offset" argument is optional and not needed if a header object argument is provided. Make this clear in this JS docs for this method Note: I sat on this commit for a while because I noticed occasional errors like this: Node 1 <Digital Man> !ERROR 2 (No such file or directory) (WinError 0) in readmsgs.cpp line 217 (sbbs_t::loadposts) locking "path/to/sub" access=-100 info=smb_locksmbhdr msgbase not open started cropping up after introducing these changes and which I never root-caused. But after a clean-build and waiting a week, I haven't seen it again, so hopefully it was just a incomplete rebuild issue and not a new bug.
-
rswindell authored
-
rswindell authored
-
rswindell authored
character limit imposed by FidoNet message "to" fields, in sbbs_t::netmail(). Use the regarding-message from_net field when a 'to' field is not passed to sbbs_t::netmail()
-
rswindell authored
IPv6 commit of 2015: "OutgoingV4" is now "OutboundInterface" and "OutgoingV6" is now "OutboundV6Interface" (which is not yet used)
-
- Mar 23, 2019
-
-
nightfox authored
SlyVote version 1.01: Changed "voting area" verbage to "sub-board". Updated the main screen to show the number of polls the user has voted on & the number remaining. Updated the sub-board choosing to allow choosing the message group first, and load the sub-board information (such as whether each sub-board has polls) only when needed, rather than loading all the configured sub-boards, to help cut down the loading time when choosing a sub-board.
-
nightfox authored
Added the AddAdditionalQuitKeys() method, to add additional key characters to quit out of the meu in addition to ESC. It takes an array of key characters as strings. For example: lbMenu.AddAdditionalQuitKeys(["q", "Q"]);
-
- Mar 22, 2019
-
-
rswindell authored
Fix age-old bug with Borland/C++Builder built executables (Windows): to achieve compatibility with the default __cdecl symbol naming rules of Visual C++, we were using __stdcall convention for DLL functions when building code with Borland/C++Builder tools and using the default (__cdecl) convention when building with Microsoft (Visual C++) tools. Although this allowed symbols to be located when linking, the calling convention mismatch caused a stack cleanup issue that very rarely manifested itself in a bug (e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching the calling conventions was unintentional (I thought the default for MSVC DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions worked 99% of the time, I didn't realize there was an underlying issue. So I now work-around the DLL symbol naming mismatch using a command-line option (-a) passed to implib in src/sbbs3/ctrl/makelibs.bat I had previously worked-around exceptions when calling MSVC DLL functions in sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler rather than a user control (e.g. button) event handler. Those work-arounds can now be removed. The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted) to many other projects' header files in cvs.synchro.net. In the future, we may want to just remove all instances of *CALL since they now serve no purpose and appear as useless "Kruft" (but do allow us to more-easily globally change DLL function calling conventions if/when necessary in the future).
-
rswindell authored
-
- Mar 20, 2019
-
-
rswindell authored
the list database (sbbslist.json) for external processing/modification. When run via jsexec (as intended), jsexec will return 0 if the lock/unlock operation was successful, -1 otherwise. It would be wise to check the errorlevel/return value of jsexec for successful lock before operating on the list file.
-
rswindell authored
If the list is not sorted and the (capital) 'S' key is used (in browse mode), sort by the last column instead of the first.
-
rswindell authored
from corruption during concurrent operations. Although the list file is not open shareable, I was observing corruption on Vertrauen when multiple sbbslist tasks (e.g. verification and maintenance) were running concurrently on different systems. The .lock file method is crude, but is working to protect the list from concurrent opens of any kind (read or write).
-
- Mar 19, 2019
-
-
rswindell authored
-
rswindell authored
-
rswindell authored
for file permissions issues when smblib creates *.sch files.
-
rswindell authored
in smb_open*() when creating msgbase files. smblib wasn't using the same default file creation mode (permissions) as the rest of the Synchronet executables. smblib was creating msgbase files as user read/writeable *only* (no group or other permissions) - so the umask value for the group/other permissions flags had no effect on msgbase files created via smblib. This could lead to permissions issues for other users/groups on *nix systems trying to access (read or write) msgbases. No change for non-*nix systems.
-
rswindell authored
-
rswindell authored
Don't store a columns value of 0 (the default). Use SAFEPRINTF in place of sprintf() in parse_control_line().
-
rswindell authored
FidoNet "Kludge line" (control line): "\1COLS: <columns>\r" where <columns> is a value between 0 and 255 and a value of 0 is special, meaning "unknown" and not normally specified (this is the default assumption when there is no "columns"/COLS header field). When a message editor column width is unknown, is is normally assumed to have been 80 columns for word-wrapping/re-wrapping purposes when displaying the message text. This feature has worked well for Synchronet's QWK networking (i.e. there are far fewer instances of word-wrapping/re-wrapping issues when viewing messages on DOVE-Net), so I decided to support this message header field over FTN (SBBSecho) as well. Hopefully other FidoNet software authors will notice and support this header field in the future as there are still numerous examples of word-wrap issues when viewing FidoNet messages. At least Synchronet <-> Synchronet systems over FidoNet should be able to re-wrap and display all message text nicely when both ends support this kludge line. Incremented SBBSecho version number to 3.07.
-
- Mar 16, 2019
-
-
rswindell authored
- filenames must begin with an alpha-numeric char. Might want to relax this in the future if it's a problem, but generally filenames on BBSes do begin with alpha-numeric characters and this will help us to identify an ignore "garbage" filenames in listfiles. - always check if the file actually exists, even when parsing the length of the file from the listfile. This will also help us to ignore garbage filenames. - also removed an inexplicable unpadfname() call. Filenames in file lists should *not* normally be padded (like "this .txt") - so I'm not sure why this was in there. Perhaps for lists generated from filelist.exe (?). Anyway, out of an abundance of caution, removed it. Padded filenames are going away.
-
rswindell authored
or more specifically, if the index (.sid) file is of an unexpected size (too big or too small) handle that situation gracefully.
-
- Mar 15, 2019
-
-
rswindell authored
The ScalingFactor would always (or usually) reset to 1 and have to be reset e.g. to 2, by resizing the window manually, every time SyncTERM was run. I found that by calling textmode() *after* setscaling() rather than before fixed this issue (at least in SDL mode on Ubuntu Linux). Another "fix" that worked inserting a small (100ms) delay between the calls to textmode() and setscaling() - so there appears to have been a race condition and calling setccaling() too soon after text mode() would fail to change the window size successfully. Reordering these calls seems to work 100% of the time without any additional delays. <shrug> Deuce would likely know "why" better than I.
-
- Mar 13, 2019
-
-
rswindell authored
fail if the current file pointer (offset) was not currently at the beginning of the file. So calling MsgBase.get_all_msg_headers() after previously calling any method that read/seeked the index would cause the reported error: "index read (xxxx) failed"
-
rswindell authored
detected as net_type NET_FIDO).
-
rswindell authored
prior to rev 1.29 of this file (committed almost exactly one year ago), when called with any string that did not include an '@', would return NET_NONE (0). After rev 1.29, most strings that did not include an '@' would cause the function to return NET_QWK (4) - this was not intentional. The intention was that FidoNet addresses without an '@' would cause this function to return NET_FIDO (2) and I don't exactly remember why that change was made, but unfortunately, it wasn't made very well, so other invalid addresses would be detected as NET_QWK or NET_INTERNET or even NET_UNKNOWN. So before and after this commit: "" was NET_UNKNOWN, now NET_NONE "1" was NET_FIDO, now NET_FIDO "1x" was NET_INTERNET, now NET_NONE "1:103" was NET_FIDO, now NET_FIDO (this could use some work) "x" was NET_QWK, now NET_NONE
-
rswindell authored
types twice - first to see if one matches the requirements. If none match, then search again just for an extractor matching the file extension. Modernize the get_file_diz() function a little bit (e.g. return bool).
-
rswindell authored
function. Constify mycmdstr() arguments. Removed trailing whitespaces. No functional changes expected by this commit.
-
- Mar 10, 2019
-
-
rswindell authored
this code is on the chopping block already.
-
- Mar 09, 2019
-
-
rswindell authored
latest logon.js.
-
- Mar 08, 2019
-
-
rswindell authored
by Deuce. If 'top' is passed in as NULL, assign a blank string constant to it since we dereference top a few places in this function and pass it to putmsg().
-
- Mar 07, 2019
-
-
deuce authored
to a second thread before the first has the session set active. Add calls to lock/unlock the certificate to prevent this. The better options is likely to have a function that adds the key and socket and sets the session active in one call and handles the locking internally. But I'm lazy, so we get the lock functions.
-
- Feb 28, 2019
-
-
rswindell authored
when using features that support avatars (e.g. reading msgs, listing files, listing BBSes in the BBS list). When used in the terminal server, the cache is located in bbs.mods.avatar_cache otherwise it's located in the scope of the load()'d library. Applications must use the lib's read() method to take advantage of the cache. The other lower level functions (e.g. read_localuser, read_netuser) by-pass the cache on read but do update the cache with the result. So, generally, avatars should be only loaded from disk one time during a session/logon.
-