- Apr 11, 2019
- Apr 10, 2019
-
-
rswindell authored
header fields. Eliminate smb_getcontenttype() - now unnecessary.
-
rswindell authored
the string being passed around.
-
rswindell authored
or NULL if not relevant (not a MIME-encoded message). Added smb_countattachments(): returns the number of file attachments in a MIME-encoded message. Added SMBMSGTXT_NO_TAILS definition to be used in place of '0' for common smb_getmsgtxt() mode argument value. The amount of white-space after "Content-Type:" and the content-type value is now more flexible (0 or +1 spaces/tabs are fine).
-
rswindell authored
-
rswindell authored
sendfile() no longer logs "attachment" when a file description is provided.
-
rswindell authored
-
rswindell authored
download_file_attachments() and expose via new JS "bbs" method. Currently this only reall works for the mail base.
-
rswindell authored
-
rswindell authored
since the smb_t already contains a subnum and we were passing a pointer to the sbbs_t::smb to lower-level called-functions anyway. Let's not mix-up class-scope with function arguments.
-
- Apr 09, 2019
-
-
rswindell authored
-
rswindell authored
Fix the missing carriage-returns in the shell (bash) prompts by always building with the stderr logging support (in *nix builds) - but run-time disable as desired via EX_NOLOG option. I've been wanting to get rid of that "XTERN_*" macro for a long time anyway (it's "XTRN" damn-it!). :-)
-
rswindell authored
intercepted output to stderr won't be logged.
-
rswindell authored
Since QUOTEWRAP *is* used, just define that bit flag specifically.
-
rswindell authored
list (smb_list) for thread-safe SMB stack storage.
-
rswindell authored
and frankly could cause all kinds of havok with multiple thread (e.g. nodes) pushing and popping SMB's concurrently. eek.
-
rswindell authored
-
- Apr 06, 2019
-
-
rswindell authored
of the message header so that functions that need it (e.g. bbs.show_msg_header) don't use/show stale data. This change requires the updated smb_copymsgmem() which clear/sets message convenience pointers upon copying hfields from one message header to another.
-
rswindell authored
Did not clear/set convenience pointers (e.g. msg.subj), so they would point to the source message hfield_dat buffers which may be freed or garbage. Apparently nothing that used smb_copymsgmem() used the convenience pointers (before now), so it hasn't been a problem before now. <shrug> It became a problem becaue I'm going to use this function in js_put_msg_header to fix a problem where the underlying smbmsg_t representation is not current even after MsgBase.put_msg_header() is used.
-
rswindell authored
(objects, in the same format as returned by the get_mgs_index() method) much faster than iterating through a loop, calling the get_msg_index() method for each message. If you want to load messages (e.g. headers, text), filtering by criteria found in the message index (attributes, to/from user, subject CRC) loading a list of indexes and filtering before calling get_msg_header() for the selected messages is much faster than previously available MsgBase object methods (e.g. get_all_msg_headers()). If you don't need to filter the loaded messages (you really want *all* message headers), then get_index() is of no benefit to you, the script-writer. This is most useful for the "mail" msgbase where selective loading of messages is more common.
-
- Apr 05, 2019
-
-
rswindell authored
Ctrl-A (ASCII 1) char. This is wrong. A literal Ctrl-A sequence is ^AA. I'm only addressing one of those instances in this commit since it *also* appears to be an off-by-one bug where it's treating *all* Ctrl-A sequences as though they were ^AA - so just #ifdef'ing out until Deuce takes a look at this.
-
- Apr 02, 2019
-
-
rswindell authored
(use the sysop 'D'elete command to quickly delete a range of messages).
-
- 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
- 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 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).
-
- 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
-