- Mar 16, 2019
-
-
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.
-
- Feb 21, 2019
- Feb 20, 2019
-
-
rswindell authored
(JS bbs.post_msg()): If the WM_QUOTE mode flag is *not* set, then it will auto- create the quote file (quotes.txt) and add the WM_QUOTE mode bit before calling sbbs_t::writemsg(). So if existing JS scripts call bbs.post_msg(..., WM_QUOTE) with a custom-created quote file (e.g. with msg tails), that'll still work as before (e.g. DDMsgReader.js). bbs.email() and bbs.netmail() now support an optional reply_header_object argument which works like bbs.post_msg(). These methods (and the underlying C++ methods: sbbs_t::email(), netmail(), inetmail(), all auto-create the quote file now, when the WM_QUOTE mode flag is *not* set. The auto-created quotes.txt now includes the plain-text version of MIME-encoded messages. the bbs.post_msg(), email(), and netmail() methods now all support reply header objects that came directly from bbs.get_msg_header() *or* copies of such header objects (but the auto-quoting feature won't work when supplied this type of header object). So if passed a header object returned from bbs.get_msg_header(), we can now use the message base (for auto-quoting) and the underlying msg storage directly (no JS parsing necessary). This is what the new js_GetMsgHeaderObjectPrivates() function is used for. js_ParseMsgHeaderObject() (and the underlying parse_header_object() function) now supports either an actual internally-generated msg header object (e.g. returned from bbs.get_msg_header()) or one that is a copy or hand-constructed. quotemsg() no longer tries to get a copy of the msg index/header. It shouldn't have to since we can now get to underlying msg storage in the js_msgbase.c via js_GetMsgHeaderObjectPrivates(). quotemsg() now reads only the plain-text portion of MIME-encoded messages. As part of this effort, I modernized the method prototypes using default argument values (e.g. WM_NONE for wm_mode arguments) and removed some extraneous WM_EMAIL and WM_NETMAIL specifications (these wm_mode flags are automatically added by the sbbs_t::email() and *netmail() functions). savemsg() now *does* support reply-IDs/thread-linkage via the additional 'remsg' argument (when non-NULL). Replaced some use of nulstr with NULL. Replaced more boilerplate SMB open code with calls to smb_open_sub().
-
- Feb 19, 2019
-
-
rswindell authored
used by js_post_msg() (the JS bbs.post_msg() method when used with the reply_header object argument) - the private data attached to a message header object is of type privatemsg_t, not private_t. This caused the dereferences of and assignments to p->smb_result in parse_header_object() to corrupt the privatemsg_t->msg memory causing heap corruption (caught on Windows debug builds in js_get_msg_header_finalize()) and stack faults (caught on Linux-gcc in parse_recipient_object()). This one was hard to find. <whew!>
-
rswindell authored
I noticed that printable ctrl chars (e.g. 0x18 and 0x19) were not causing the current column position to increment, so that got me looking at this code and wondering why the LF/FF checking was outside the if(!outchar_esc) condition and being executed when CON_R_ECHO is off. So now, using a switch statement, it's cleaner and all the printable ctrl chars move the current column position correctly.
-
rswindell authored
When the WM_QUOTE mode flag is set and the 'remsg' is specified, the original message will quoted (excluding message tails, using the proper word-wrapping). If the quote file already exists before calling postmsg()/bbs.post_msg(), it will be over-written. This allows JS script to initiate reply-posts with quoted text without having to create their own quotes file. It also means there's no need to call sbbs_t::quotemsg() before calling sbbs_t::postmsg(). sbbs_t::quotemsg() now takes an smb_t* arg (stop using the sbbs_t 'global' smb) and now returns bool.
-
rswindell authored
Renamed js_postmsg() -> js_post_msg() for good measure.
-
rswindell authored
-
echicken authored
-
rswindell authored
TypeError: settings is undefined Presumably, when settings.ini doesn't exist.
-
rswindell authored
set avatar_show = false to disable the avatar display completely (during logon) set avatar_draw_right = false to display the avatar in left screen columns set avatar_draw_above = true to display the avatar above the current screen row
-
rswindell authored
!JavaScript /sbbs/xtrn/ansiview/ansiview.js line 313: TypeError: settings is null
-
- Feb 18, 2019
-
-
rswindell authored
error: 'O_NONBLOCK' undeclared ... on Alpine Linux.
-
rswindell authored
- SMB_EMAIL - SMB_HYPERALLOC - SMB_NOHASH
-
rswindell authored
error: 'PTHREAD_MUTEX_RECURSIVE_NP' undeclared as ported by GeoKM
-
rswindell authored
-
rswindell authored
(name/version of text editor used, if known).
-
- Feb 17, 2019
-
-
rswindell authored
- SUB_TEMPLATE - SUB_MSGTAGS
-
rswindell authored
designator.
-
rswindell authored
Only treat an invalid QWK msg block count (<2) as an error if there is more than one msg header in the packet (stop saving so many worthless data/file/*.rep.*.bad files).
-
rswindell authored
-
rswindell authored
file lists during events.
-
rswindell authored
"read %u message scan cfg/pointers in %lu ms" The message pointer performance problems were resolved a long time ago now and this is just noise in the logs.
-
rswindell authored
reported as "Duplicate index offset", so overlapping headers means the index offset must not be an exact duplicate, so we don't report the same corrupt message parameter (its offset into the header file) 2 different ways.
-
rswindell authored
is 0 (logic moved from sbbs_t::postmsg()).
-
rswindell authored
as it is easy for a sysop to accidentally hit [D]elete and not realize it.
-