Skip to content
Snippets Groups Projects
  1. Jan 23, 2023
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Fix issue with QWKnet hub sub-board mappings when inserting new sub-boards · c60d0b95
      Rob Swindell authored
      The sub_t.subnum's that were being updated as message areas were being saved to
      msgs.ini could not be used as an index into the scfg_t.sub array at this point
      (the subnum would be the new index position when the msgs.ini was re-read/loaded)
      .
      
      This was not an issue in v3.19 because we just saved the subnum (to msgs.cnf) and
      in v3.20, we save the sub's internal code (to msgs.ini) and were using the newly
      updated sub_t.subnum to find the corresponding sub_t for that internal code. Since
      the subnum is not used now during the save process, no need to update it here
      (this reverses part of the commit 11e529d4 from 5 years ago).
      
      This fixes issue #502 - thanks to the irc.synchro.netizens that reported it!
      c60d0b95
  2. Jan 22, 2023
  3. Jan 21, 2023
    • Rob Swindell's avatar
      Refactor mqtt_client_on() · e3bb1aee
      Rob Swindell authored
      This function has been causing somewhat rare crashes (e.g. one per week on a very active system with MQTT enabled) on both Windows and Linux (see issue #495). The root-cause is still unclear (possible heap corruption?). This function needed more robustification anyway (see previous TODO comment), so I'm refactoring here to no longer use strListAppendFormat, which uses vasprintf (the function where the rare crash was occurring) and instead just use snprintf and strListPush. The total client_list that's published (as a single string/message) is now dynamically allocated (this was the point of the previous TODO comment). This may not actually fix the issue if there's a heap corruption occurring somewhere else in this function or the call-chain that's reaching here (usually from the web server).
      
      Another change to mqtt_client_on(): don't incremented the server's 'served' counter until client disconnects (this is a past-tense statistic).
      
      Also:
      - mqtt_pub_strval() can now accept a null 'str' argument which is effectively the same as mqtt_pub_noval(), so the pub_noval() function is now just a thin wrapper around pub_strval().
      
      - mqtt_startup() now clears the client_list topic and sets the client_count topic to 0.
      e3bb1aee
    • Rob Swindell's avatar
      Don't attempt to remove a non-existing qwk-pack semfile · 1bbb2225
      Rob Swindell authored
      Reduce occurrences of subsequent errors (unsure of root-cause):
      !ERROR 2 (No such file or directory) in main.cpp line 2778 (event_thread) removing "/sbbs/data/pack0341.now"
      
      This does seem to be the only location that deleted pack*.now files, so weird that they'd disappear sometime after calling glob(), but I do understand that its theoretically possible.
      1bbb2225
    • Rob Swindell's avatar
      strListJoin() will now fail gracefully (return NULL) if passed NULL buf · 0c3406ff
      Rob Swindell authored
      No immediate need/use.
      0c3406ff
    • Rob Swindell's avatar
      Merge branch 'ddfilelister_search_scan_header_update_optimization' into 'master' · 4e4f74cb
      Rob Swindell authored
      Screen header update optimization for file searching & scanning
      
      See merge request !243
      4e4f74cb
    • Eric Oulashin's avatar
      Screen header update optimization for file searching & scanning · 2166ef0d
      Eric Oulashin authored and Rob Swindell's avatar Rob Swindell committed
      2166ef0d
    • Rob Swindell's avatar
  4. Jan 20, 2023
  5. Jan 19, 2023
  6. Jan 17, 2023
  7. Jan 15, 2023
  8. Jan 13, 2023
    • Rob Swindell's avatar
      Create/use file_type_match() for viewing, testing, and download-events · 528fe0b2
      Rob Swindell authored
      Allows for more/better wildcard matching in viewable and testable
      file types and download-events (e.g. "tar.gz" or "tar.*").
      
      This solves the "double-dot" problem in some file types/extensions.
      An implicit "*." is prepended before the configured file type/extension.
      528fe0b2
    • Rob Swindell's avatar
      Fix possible crash when no extractable file types are configured in SCFG · e41e7774
      Rob Swindell authored
      If libarchive couldn't extract a QWK or REP packet, we'd fallback to searching
      for a match among the configured extractable file types and if no extension/type
      match was found, default to the first configured extractable file type
      (even if there wasn't one) which would result in a NULL pointer dereference
      and most likely a crash. Instead, if no matching configured extractable
      file type is found, just log a warning message and don't continue with the
      extraction attempt. With SBBS v3.19+, it's totally valid/legit to have no
      extractable file types configured in SCFG and things "just work" (using
      libarchive).
      e41e7774
    • Rob Swindell's avatar
      Increase maximum file extension length from 3 to 15 characters · 2c52cb33
      Rob Swindell authored
      For Viewable, Testable, Compressible file types and download events,
      the file extension is no longer limited to 3 characters. 15 characters
      seemed like "enough".
      
      Similarly, a user's temp/QWK file type preference is also extended from
      3 to 15 characters.
      
      This fixes issue #486, but file types such as *.tar.gz (2 dots in the extension)
      are still an issue and will be addressed next.
      2c52cb33
  9. Jan 12, 2023
Loading