Skip to content
Snippets Groups Projects
  1. Dec 17, 2024
  2. Dec 15, 2024
  3. Dec 14, 2024
  4. Dec 11, 2024
  5. Dec 10, 2024
  6. Dec 08, 2024
    • Rob Swindell's avatar
      Fix use of unitialize variable · 801010bf
      Rob Swindell authored
      Since we we're not using opennodeext(), we don't have the path/fname for
      any failure error message here.
      
      CID 515714
      801010bf
    • Rob Swindell's avatar
      Fix incorrect use of sizeof in node_vstatus and node_activity · 4610fc7b
      Rob Swindell authored
      This would cause the "Logout" status and multinode chat activity
      strings to be truncated to 3 or 7 chars.
      
      CID 515713 and 515715
      4610fc7b
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Insure ctrl chars/codes are stripped from nodestatus() output · 2cb39d9a
      Rob Swindell authored
      Use strlcpy instead of strncpy
      2cb39d9a
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Overhaul how custom Node actions and status strings are handled · d116f362
      Rob Swindell authored
      Custom NodeStatus and NodeAction/Activity strings are now displayed pretty
      much everywhere possible (except the node utility, since it doesn't read
      any configuration files). This fixes issue #618, finally.
      
      If you have custom (non-blank) NodeAction* strings in your text.dat/text.ini
      file, or you change these strings during runtime (e.g. using bbs.replace_text)
      this will impact you:
      - do not include the user name or any other fields normally included in
        printed node status in your string - just the customized node action and
        really, you should only use/override these strings for dynamically changing
        node status (i.e. you're using NodeActionCustom and you're setting different
        custom strings depending on current node activity). Consider using the new
        NodeActivity* text.dat strings instead if your customized string doesn't
        change during run-time.
      - don't use the %s/%u/%d specifiers any more - use @-codes instead, if needed
      
      If you want static/permanent node action strings, set new new NodeActivity*
      strings in your text.dat or (preferrbaly) text.ini file instead.
      This means the node actions can now be localized for other languagues!
      
      I'm still using the node.exb file (I did consider alternatives, e.g.
      node.ini or node*/activity.asc), but decided to postpone such a change.
      The node.exb file is still used, but the strings represent just the custom
      (extended) node *activity* and not the entire node status string.
      
      Use of Ctrl-A codes needs to be considered/accounted-for (currently isn't).
      d116f362
    • Rob Swindell's avatar
      Fix the areas.bbs AreaMgr addition bug created in commit 813072cd · 68e76982
      Rob Swindell authored
      The newly created/used link_aera() function was copying the address of the
      passed fidoaddr_t pointer rather than the value (fidoaddr) pointed to.
      This is the actual fix for the problem reported by Tom Moore (1:135/205)
      - tested and validated. It only immediately impacted areas.bbs use
      (not areas.ini), since we wrote a stringified address directly to the
      areas.ini file "links" key. This was not an allocation issue but a memcpy()
      issue.
      
      Other unrelated changes:
      - Log a debug-level message when ignoring a "NO-ECHO" message (subject "NE:*")
      - Log a notice-level message when ignoring a message due to GATEWAY VIOLATION
        (gating a message between net-types when not explicitly configured to do so)
      68e76982
  7. Dec 07, 2024
  8. Dec 06, 2024
  9. Dec 05, 2024
    • Rob Swindell's avatar
      Add/use xp_lockfile() to support blocking file range/region lock acquisition · 03b84df8
      Rob Swindell authored
      Under heavy loads, I've found periodic non-blocking lock attempts just aren't
      reliable enough: in particular, on Vertrauen, the guest user account record
      in the user.tab file gets read and written-to A LOT (updating stats), and
      under heavy loads (especially with hundreds of web client sessions), I'd get
      timeouts attempting to lock the guest record in the user.tab (after about a
      minute of periodic retries) - so let's just block "forever" to get the user
      record lock (or until signaled or notified of a deadlock). With this change,
      I've not had any user.tab lock errors or apparent deadlocks.
      
      Let the underlying OS/filesystem handle queuing and deadlock detection,
      when supported. lock() still behaves as before: non-blocking lock attempt.
      03b84df8
    • Rob Swindell's avatar
      De-duplicate repeated errors logged via sbbs_t::errormsg() by reducing severity · 5f89c517
      Rob Swindell authored
      ... from ERROR to WARNING, so the repeats won't be logged to error.log file
      and won't (normally) be sent as notifications (e.g. emails) to the sysop. The
      duplicates are identified as from the same source file and line number as the
      immediately previous logged error within the last 12 hours. String comparison
      doesn't really work for deduplication since if you look closely, the errors
      usually are *not* exact duplicates (i.e. there's a node number or a socket
      descriptor or something that uniquely identifies the user/client/session).
      Repeated errors don't increment the node's error counter either.
      
      This does not de-duplicate errors logged via other means (e.g. direct calls to
      log()/lputs(),lprintf() with a severity of LOG_ERR or higher), but will
      solve the majority of duplicate errors that can be logged from the terminal
      server.
      
      So this at least partially addresses issue #619.
      5f89c517
Loading