- Nov 21, 2016
-
-
rswindell authored
smb_voted_already(), e.g. to @-codes in a custom msg header. New @-codes (e.g. for custom message headers): @MSG_VOTED@ @MSG_UPVOTED@ @MSG_DOWNVOTED@ These all 3 act the same way: they display the PollAnswerChecked (checkmark) if the user voted on the currently displayed message/poll, if the user up-voted or if the user-downvoted. If the user did not vote, nothing is displayed.
-
rswindell authored
smb_voted_already(), e.g. to @-codes in a custom msg header.
-
rswindell authored
-
rswindell authored
(reading the msg) submitted an up-vote or down-vote on the current msg.
-
rswindell authored
get_all_msg_headers). Added new method: get_user_votes(msg number, user name or alias) The user name or alias must match the posting configuration on the local system (i.e. if set for real names, pass the user's real name instead of alias). This function returns 0 for no votes on the reference message, 1 for an up-vote, 2 for a down-vote or in the case of a poll-response, a bit-field of votes.
-
rswindell authored
On polls, this is the maximum number of votes per ballot in response to this poll (0 is the same as 1). On ballots, this is the bit-field of votes submitted by the user (e.g. bit 0 set is a vote for answer 1, bit 1 for answer 2, etc.). For normal messages, this field has no current use.
-
rswindell authored
temp-ban (was logging the total number of login attempts, including dupes).
-
rswindell authored
"Always Prompt for Password" setting is set to "No". This change enables the auto-hack-log, throttling, filtering, and banning logic for these types of failed login attempts.
-
rswindell authored
-
nightfox authored
-
nightfox authored
Version 1.17 beta 2: Working on filtering out messages that are deleted, unverified, poll/vote messages, etc. so they don't show up in the message list or reader interfaces.
-
- Nov 20, 2016
-
-
rswindell authored
ERROR 2 (...) opening "...HEADERS.DAT" when importing QWK packets that including a VOTING.DAT file.
-
rswindell authored
-
rswindell authored
If a VOTING.DAT file is received which did not contain offset/location sections, the vote/polls/etc. wouldn't be imported. Now, when each QWK 'V' msg hdr block is imported, the corresponding section is removed from the VOTING.DAT and after all QWK importing, the VOTING.DAT is then parsed for remaining items/sections and if there are any, imported at that time (in order in the file, not in the old poll/vote/closure order).
-
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().
-
rswindell authored
-
nightfox authored
Version 1.17 Beta 1: Implemented a workaround for handling message headers that are null (which are more common now with the message voting feature recently introduced in Synchronet). Now such message headers won't cause weirdness in the message list. Users won't be able to read such messages. I'd like to find a way to not show such messages altogether in the message list - Will probably need to use the get_all_msg_headers() method in the MsgBase class to get all message headers except ones for vote messages.
-
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.
-
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).
-
- Nov 19, 2016
-
-
rswindell authored
-
rswindell authored
being imported: resolve_qwkconf() now supports both users (e.g. QWKnet nodes uploading REP packets) and QWKnet hubs (e.g. importing a QWK packet from VERT). Also re-factored resolve_qwkconf() in the process (that was some *old* code).
-
rswindell authored
No functional change.
-
rswindell authored
-
sbbs authored
so use shorter thread names.
-
rswindell authored
How did startup->sem_chk_freq get set (back) to 0 in the first place? The reason: the startup struct sanitization only occured when the various server threads were first started. When recycled, the server would call back to the original caller (e.g. sbbscon) which may (and did) re-read the sbbs.ini file, which could have SemCheckFrequency set to 0 (or missing) and the sanitization did not happen again (so a 0 value was used in select() calls, resuilting in high CPU utilization for several threads). So now, all startup struct sanitization occurs inside the init/recycle loop and sem_chk_freq should never revert to 0 again. This was the main bug.
-
rswindell authored
-
sbbs authored
value is missing or set to 0 in the sbbs.ini file, the sanity checking this value (setting it to 2 seconds) will not occur after a server recycle and the sbbs.ini is re-parsed. So if for any reason, the sem_chk_freq value becomes 0, these server threads won't hog the CPU because they all YIELD at the top of thier main loops. Also, changed all the thread names (e.g. adding "sbbs/" prefix), so they're more sensible in the Linux 'top' output. Also, started adding 'vi' modelines to auto-set tabstops when using vi/vim.
-
sbbs authored
key was missing from the sbbs.ini file, it would default to 0 seconds which could cause continuous high CPU utilization after server recycling.
-
sbbs authored
-
rswindell authored
(optionally). Sub-board operators can now see all poll-results (always) for locally-posted polls (same as pollster).
-
- Nov 18, 2016
-
-
rswindell authored
-
sbbs authored
comparison between signed and unsigned integer expressions
-
rswindell authored
-
rswindell authored
-
rswindell authored
-
rswindell authored
-
rswindell authored
-
rswindell authored
(no functional change).
-
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().
-
rswindell authored
-