Skip to content
Snippets Groups Projects
  1. Nov 20, 2016
    • rswindell's avatar
      Solved the networked-voting "ordering problem". QWK/REP packets that contained · 3258eca3
      rswindell authored
      normal messages along with voting data (polls, ballots, etc.) would always be
      imported in this order: msgs, polls, ballots/votes, and then poll-closures.
      This could result in a confusing order of messages in the local msg base where
      there were messages in reply to a poll before the poll appears and other
      oddities. Anyway, this is now resolved by placing a msg "header block" for each
      vote-data item in the MESSAGES.DAT file. Since there is no body/text blocks,
      it should be ignored under normal circumstances, but these header blocks are
      only created if VOTING.DAT is enabled anyway.
      And now, the VOTING.DAT contains an extra line (empty .ini section) with the
      HEADERS.DAT offset associated with the chronology of the item. The format
      is still backwards compatible with the earlier builds that included VOTING.DAT
      support.
      
      Also, fixed the vote/poll/closure Message-IDs containing a msg number of 0
      (while not technically a problem, it wasn't the intention) with the use of the
      new function: get_new_msg_number().
      3258eca3
    • rswindell's avatar
      Fix bug importing polls from QWK/REP packets: · 7fb73c67
      rswindell authored
      "Subject" wasn't being parsed from VOTING.DAT and is a required header field
      for polls, causing error: qwk.cpp line 1149 writing "/sbbs/data/subs/dove-sys"
      access=-105, as reported by echickenster.
      7fb73c67
    • rswindell's avatar
      Automatic REPLY-ID fixup: · 396b931b
      rswindell authored
      If a message header has a thread_back value (it's a reply to another msg), but
      there is no Reply-ID header field, when converting QWK, look-up the
      original message-ID (to use for the relpy/vote Reply-ID value). If the original
      message doesn't have a message-ID, use the normal auto-generation scheme.
      This isn't normally necessary, but I posted a poll with a message-ID on
      DOVE-Net / Sysops and then voted on the poll, creating a vote with no Reply-ID
      which causes an SMB "writing" error (access=-105) on the QWKnet node BBSes
      (because the required header field is missing).
      396b931b
  2. Nov 19, 2016
  3. Nov 18, 2016
    • sbbs's avatar
      Resolve gcc warning: · 604674cb
      sbbs authored
      comparison between signed and unsigned integer expressions
      604674cb
    • rswindell's avatar
      Resolved unused variable warning. · 9f32122b
      rswindell authored
      9f32122b
    • rswindell's avatar
      Removed the boilerplate comment blocks from the auto-generated text.h · ce1fc4d0
      rswindell authored
      (no functional change).
      ce1fc4d0
    • rswindell's avatar
      Introduced 2 new poll concepts: · 0ac4f937
      rswindell authored
      - Closures (polls can be closed for new voting by the pollster)
      - Results can have configurable visibility:
        a. Only to voters (and the pollster) - the default
        b. Everyone
        c. Everyone once the poll has closed
        d. Only the pollster
      
      Changes to smb_getmsgtxt():
      Main change: poll questions can now be quoted when replying to a posted poll
      (the results cannot be quoted).
      Also: there's now automatically a blank line inserted between comment header
      fields and poll answers or the msg body text.
      Also: upon any malloc failure, the function now returns NULL.
      New functions: smb_msg_is_from() and smb_addpollclosure().
      0ac4f937
    • rswindell's avatar
      Added one more %s to the MsgAttr item. · 85c21d3f
      rswindell authored
      85c21d3f
    • rswindell's avatar
      Introduced 2 new poll concepts: · 5ea459df
      rswindell authored
      - Closures (polls can be closed for new voting by the pollster)
      - Results can have configurable visibility:
        a. Only to voters (and the pollster) - the default
        b. Everyone
        c. Everyone once the poll has closed
        d. Only the pollster
      
      Changes to smb_getmsgtxt():
      Main change: poll questions can now be quoted when replying to a posted poll
      (the results cannot be quoted).
      Also: there's now automatically a blank line inserted between comment header
      fields and poll answers or the msg body text.
      Also: upon any malloc failure, the function now returns NULL.
      New functions: smb_msg_is_from() and smb_addpollclosure().
      5ea459df
    • rswindell's avatar
      Move sbbsecho.bsy mutex file locking until *after* the configuratino files have · b602f110
      rswindell authored
      been read. This way, the configured bsy_timeout value is used. Before, the
      value of 0 was used which results in an infinite timeout (max age) for the
      mutex, requiring a manual deletion of the file (no automatic recover) if
      SBBSecho happened to crash. Now, it'll use the default bsy_timeout value
      of 12 hours or the configured value in sbbsecho.ini.
      b602f110
    • rswindell's avatar
      Address 2 QWK/REP-importing security issues: · 0e99d274
      rswindell authored
      1. If QWKE was enabled for the QWKnet account on the Hub, a user could spoof
         their name with a "From:" QWKE kludge line in the message body. Fixed by
         not processing QWKE "From:" kludge lines at all, ever.
      2. If an @VIA kludge line was in the message body, it could over-ride the
         correct value from the HEADERS.DAT (oops). Really, the SENDERNET* lines
         in the HEADERS.DAT were always being overriden by either the @VIA kludge
         line (if present) or just the auto-genereated SENDERNET info (from the
         QWK-ID of the QWKnet account or hub. Normally, in a single hop QWKnet
         message, there will be no @VIA line, so spoofing is still possible in that
         case.
      0e99d274
    • rswindell's avatar
      Fix memory leak: one message header per call to unpack_rep(). · 6ad0db8c
      rswindell authored
      Use the proper method to auto-set the QWK_EXT (QWKE) flag for the user when
      TODOOR.EXT is discovered in a REP packet.
      6ad0db8c
  4. Nov 17, 2016
    • rswindell's avatar
      Fix getuserdat() bug introduced in rev 1.164: when failing to read a user · 6e7bf768
      rswindell authored
      record (e.g. the user number is invalid), the user number should be 0 after
      returning. This would cause, for example, sbbs_t::login() to accept a login
      string with an invalid usernumber (e.g. "12345") and do some strange things.
      The same side-effect was missing in the (new) fgetuserdat().
      6e7bf768
  5. Nov 16, 2016
Loading