Skip to content
Snippets Groups Projects
  1. Mar 10, 2019
  2. Mar 09, 2019
  3. Mar 08, 2019
  4. Mar 07, 2019
    • deuce's avatar
      There appears to be data corruption in cryptlib if a private key is added · 211a2a1a
      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.
      211a2a1a
  5. Feb 28, 2019
    • rswindell's avatar
      Implement an (in-memory) Avatar cache - reducing the number of disk accesses · cb205ec3
      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.
      cb205ec3
  6. Feb 21, 2019
  7. Feb 20, 2019
    • rswindell's avatar
      Reversed course on the WM_QUOTE mode handling in sbbs_t::postmsg() · 57424543
      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().
      57424543
  8. Feb 19, 2019
  9. Feb 18, 2019
  10. Feb 17, 2019
  11. Feb 16, 2019
    • rswindell's avatar
      Performance optimization: When performing sequential index or header reads, · 0e773f87
      rswindell authored
      the read buffer may be utilized more efficiently if you do *not* perform an
      (unnecessary) seek operation just before the read. By eliminating unnecessary
      seeks in smb_getmsgidx() and smb_getmsghdr(), I was able to reduce the time
      required to load 9000+ index and header records over a network (Samba/CIFS)
      share from 15+ seconds to less than 5.
      0e773f87
Loading