Skip to content
Snippets Groups Projects
  1. May 26, 2023
  2. May 06, 2023
  3. Mar 11, 2023
  4. Feb 19, 2023
    • Rob Swindell's avatar
      The great 'long int' purge of 2023 part 2 · 0932bcda
      Rob Swindell authored
      Mostly [s]printf format fixups
      0932bcda
    • Rob Swindell's avatar
      The great 'long int' purge of 2023 part 1 · 59d8974c
      Rob Swindell authored
      At one time, Synchronet was a 16-bit DOS project, plagued by the 16-bit [u]int, so long's were used everywhere > 16-bits were known to be needed/wanted (This is before the days of the standard sized types from stdint.h), and they've persisted.
      
      But '[u]long int' is 64-bits on *nix 64-bit builds, 32-bits everywhere else (even 64-bit Windows builds if/when we ever get around to that), so this could lead to insidious bugs that would only show up on one flavor or the other. Since [u]int is 32-bits on everything we currently support, we'll use that instead of [u]long.
      
      This "part 1" because I'm sure there's going to be warnings and errors from the GCC/Clang builds as a result, which I'll get to next.
      59d8974c
  5. Jan 28, 2023
    • Rob Swindell's avatar
      New user terminal settings weren't display/settable durin sign-up · ee9c7223
      Rob Swindell authored
      The interactive prompting for terminal capabilities worked fine,
      but the default configuration menu settings did not reflect the
      user's previous choices and changes they made (e.g. toggle mouse
      support or BS/DEL key swap) were not reflected in the menu. Once
      logged in, the normal user defaults menu worked as expected. This
      is all because term_supports() keyed off of SS_USERON which isn't
      set during new user sign-up, so let's key off SS_USERON|SS_NEWUSER
      now.
      ee9c7223
  6. Jan 05, 2023
  7. Jan 04, 2023
    • Rob Swindell's avatar
      Publish some topics directly to topic levels · 066d6a8d
      Rob Swindell authored
      <server>/state is now published directly to the <sever> topic level (the "state" topic goes away).
      
      Moved <bbs-id>/node# topics to <bbs-id>/nodes/# (allows better wild-card subscription per MQTT standards).
      Publishing total node count to <bbs-id>/nodes rather than <bbs-id>/node_count
      
      Introduced "publish verbosity" control (defaults to "High") - if you want nice human readable (and sometimes redundant) topic messages, leave this set to "High". To reduce traffic, set to "Low". It's expected that purpose-built Synchronet/MQTT clients should work equally-well with either setting, but when using generic MQTT clients/browser, "high" verbosity is nice. The human-readable node status is only published when "high" verbosity is enabled.
      
      Publishing the BBS name to the <bbs-id> topic, the instance hostname (as configured in sbbs.ini) to the <host> topic. Makes the hierarchy much more clear when using an MQTT browser like MQTT Explorer.
      066d6a8d
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Over-overhaul of MQTT support · 916fdacb
      Rob Swindell authored
      Each Synchronet server is now its own MQTT client. This means there's no
      longer any MQTT logic in the Synchronet "hosts" (e.g. sbbscon.c, ctrl/*.cpp)
      and none needed for SBBS NT services (they'll "just work" with MQTT).
      
      This also means that just about everything (except for nodes, spam and hack)
      is now published per-server (in the sbbs/BBS-ID/hostname/server/ topic branch)
      and if you want aggregated totals or client lists, you'll have to do that in
      your own MQTT client or dashboard.
      
      I also removed the publishing of thread_count and socket_count topics as
      they weren't universally supported across all servers and are of questionable
      value. They can be added back later if determined to be useful.
      916fdacb
  8. Jan 02, 2023
    • Rob Swindell's avatar
      Second part of MQTT overhaul · d1c07811
      Rob Swindell authored
      Now support subscriptions (e.g. recycle topics, node input topics) in SBBSCTRL.
      This required a lot of search/replace and fun with circular struct pointers.
      d1c07811
  9. Dec 21, 2022
  10. Dec 12, 2022
  11. Dec 03, 2022
    • Rob Swindell's avatar
      Add output line pacing support (delay before sending LF) · 1166d9ff
      Rob Swindell authored
      New LINEDELAY and LINEDELAY:n @-codes
      Another way to pace the terminal output of long display (e.g. ANSI) files. LINEDELAY enables a 1/10th of a second delay before the sending of all LF chars. LINEDELAY:n sets the line_delay duration explicitly to a value in 1/100ths of a second units. So LINEDELAY and LINEDELAY:10 are equivalent. LINEDELAY:0 turns line-pacing off. The original line pacing value is always restored after a printfile/putmsg operation.
      
      New JS console.line_delay property (milliseconds) to control via JS. Setting this to a really high value would be bad. Some range enforcement should be added to this and many other console control values (TODO).
      1166d9ff
  12. Nov 12, 2022
    • Rob Swindell's avatar
      Change iniOpenFile() argument meaning from "create" and "for_modify" · f4d2e708
      Rob Swindell authored
      Now, if the BOOL argument value is FALSE, then the .ini file is opened read-only (and thus only read permissions are needed, resolving issue #455).
      
      If the BOOL argument value is TRUE, create-if-not-exist is implied. There are no use cases where we would want to open an .ini file for writing only if it already existed.
      f4d2e708
  13. Jul 05, 2022
  14. Jun 11, 2022
  15. Apr 28, 2022
  16. Feb 12, 2022
  17. Jan 20, 2022
  18. Jun 08, 2021
  19. May 14, 2021
    • Rob Swindell's avatar
      Fix-ups for the "continuous random tone" sysop chat pager · b03cb43f
      Rob Swindell authored
      I haven't played with this chat pager in *years*! The lowest tones were inaudible (raise the range from 0-800Hz to 400-1200Hz).
      Increase the msgabort() tone from 1 to 10ms, sounds like those computerized voice recognition phone systems now.
      
      Remove the redundant "<user> paged you to chat" notifications (and log message) when turning *off* the chat pager.
      b03cb43f
    • Rob Swindell's avatar
      Simplify the check-and-clear of console abort status · ab0f2107
      Rob Swindell authored
      by adding a 'clear' argument to msgabort() that defaults to false. Pass true to check-and-clear.
      checkline() is a NO-OP, so start eliminating "calls" to it.
      ab0f2107
  20. Apr 25, 2021
  21. Apr 24, 2021
  22. Apr 14, 2021
  23. Apr 04, 2021
    • Rob Swindell's avatar
      A poll() failure with EINTR does not mean a socket is closed. · 925e3b0a
      Rob Swindell authored
      This won't impact Synchronet as it has a separate signal handling
      thread, but we still need to behave properly for processes that
      don't.  I'm also saying that ENOMEM does not indicate a disconnection,
      though it may be better to pretend it was disconnected...
      925e3b0a
  24. Feb 22, 2021
  25. Feb 15, 2021
  26. Dec 12, 2020
  27. Nov 26, 2020
  28. Nov 07, 2020
    • Rob Swindell's avatar
      Store client terminal information in node#/terminal.ini · c1637082
      Rob Swindell authored
      In preparation for node-spy applications that can support multiple terminal sizes/types (none exist yet). The file is updated whenever there is new/updated information about the client's terminal.
      
      Exposed as JS method: console.term_updated().
      c1637082
  29. Nov 06, 2020
    • Rob Swindell's avatar
      Replace ctype.h function calls with new MSVC-safe XPDEV macros · ec20d959
      Rob Swindell authored
      I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values.
      
      This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service).
      
      The new macros names are bit more descriptive as well.
      ec20d959
  30. Oct 09, 2020
    • Rob Swindell's avatar
      Use an enum for ANSI output state · fa53e10a
      Rob Swindell authored
      No functional change with regard to the ANSI output state, just making the code easier to read.
      
      Removed the conversion of `[ and \xFA[ to \x1b[ in putmsg(). This unexplained output translation has been supported since at least v2.xx and I have no recollection of exactly why it was added. If I recall correctly, some BBS software at some point in time sent ANSI-encoded messages into message networks by translating the ESC (\x1b) character in the ANSI sequences to either ` or \xFA in the process. This "feature" seems like it would still work, but it's completely undocumented and I have no idea why it was added (and seriously doubt anyone relies on this behavior), so I'm removing it. If anyone misses this feature, I'll happily add it back, but I'm skeptical that'll happen.
      fa53e10a
  31. Aug 16, 2020
  32. Aug 04, 2020
    • rswindell's avatar
      Some users have complained about moue support being enabled by default, · 077eadbc
      rswindell authored
      so made it enabled/disabled per-user-terminal settings. This means that if
      you were already enjoying mouse support, you're going to have to turn it on
      to keep enjoying it. It also means there's currently no way to enable/use
      mouse support pre-logon, but I have ideas about how to support that for
      sysops that want that.
      077eadbc
  33. May 24, 2020
  34. May 12, 2020
Loading