Skip to content
Snippets Groups Projects
  1. Dec 08, 2024
    • 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
  2. Dec 07, 2024
  3. Dec 06, 2024
  4. 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
  5. Dec 03, 2024
  6. Dec 02, 2024
  7. Dec 01, 2024
Loading