Skip to content
Snippets Groups Projects
  1. Sep 21, 2024
  2. Sep 13, 2024
    • Rob Swindell's avatar
      Add keyboard shortcuts to Clients list view: Ctrl-A, Ctrl-F and Del · c31203fc
      Rob Swindell authored
      Ctrl-A - Select All
      Ctrl-F - Filter IP address
      DEL - Close Socket
      
      Also, use Begin/EndUpdate() calls to batch updates to the ListView in Timer
      tick (no visible difference, but it's the right thing to do).
      
      I don't know why C++Builder increased the TextHeight value of this form from
      13 to 15, but doesn't seem to really matter (or at least, I couldn't tell).
      c31203fc
    • Rob Swindell's avatar
      Change the height of the horizontal splitter to the minimum (1 pixel) · 513715f0
      Rob Swindell authored
      I don't know why this was set so wide (10 pixels), but that did help to easily
      see that it was being placed in the wrong spot in the form (between the tool
      button bar and the top panel). But we don't need it to be that thick. 1 pixel
      is still enough to be able to grab it with the mouse and resize the top/bottom
      panels.
      513715f0
    • Rob Swindell's avatar
      Display horizontal splitter in the correct spot. · 89637f0d
      Rob Swindell authored
      For who knows how long now, the horizontal splitter that allows the sysop
      to control the size of the top 2 panels (server forms), was displayed above
      the top panel, not between the top and bottom panel, thus making the panel
      heights not controllable. Weird. Change the order of making the controls
      visible to insure that the splitter is displayed below the top panel and
      on top of the bottom panel.
      
      Also (non-functional changes):
      Remove redunant mutex from client_on() - makes no difference.
      Use try/catch in client_on() to try to catch VCL exceptions - doesn't catch
      the "invalid index" error popups that we see on occasion. <shrug>
      89637f0d
  3. Mar 29, 2024
  4. Mar 24, 2024
  5. Mar 19, 2024
  6. Mar 03, 2024
  7. Feb 27, 2024
  8. Feb 25, 2024
  9. Feb 24, 2024
    • Rob Swindell's avatar
      Increase size of spy ring buffer from 10K to 100K bytes · b1e29afd
      Rob Swindell authored
      This eliviates the issue of partial/corrupted UTF-8 sequences when spying on a
      node serving a UTF-8 terminal.
      b1e29afd
    • Rob Swindell's avatar
      Support UTF-8 translation to CP437 and non 80x25 terminals · d8420633
      Rob Swindell authored
      Reads the new(ish) node*/terminal.ini file when it's changed to determine
      the connected-client's terminal type/dimensions. Now reports the terminal
      details in the spy form title/caption and if it's UTF-8, does a real-time
      translation to CP437 (since F. Piette's terminal lib only supports CP437).
      There is a bug here where if the data read from the RingBuffer is a
      partial UTF-8 sequence, it isn't decoded correctly. Fix that later (?) if it
      actually bugs anyone.
      
      There's no PETSCII conversion/support added here. I expect to someday replace
      this entirely (likely with something that uses cterm), so didn't want to
      invest too much time into this.
      
      But at least now spying on non-traditional ANSI-BBS clients isn't so terrible
      to look at.
      d8420633
  10. Jan 23, 2024
  11. Jan 20, 2024
    • Rob Swindell's avatar
      The great BOOL->bool conversion in xpdev · 118984e9
      Rob Swindell authored
      Still using BOOL where we need Win32 API compatibility.
      Using JSBool instead of BOOL or bool where it matters.
      Changed most relevant TRUE/FALSE to true/false too (though it's not as critical).
      
      You shouldn't need to #include <stdbool.h> anywhere now - gen_defs.h should do that automatically/correctly based on the language/version/tool. In C23, stdbool.h isn't even needed for bool/true/false definitions (they're keywords), so we don't bother including stdbool.h in that case.
      Microsoft didn't define __STDC_VERSION__ in their older tool chains (even though they were C99 compatible and had stdbool.h), so we use a _MSC_VER check to know that there's a stdbool.h we should use in that case.
      
      For other/old compilers (e.g. Borland C) we #define bool/true/false following the pattern of stdbool.h (doesn't use a typedef).
      
      I didn't convert UIFC yet.
      
      This addresses issue #698
      118984e9
  12. Jan 13, 2024
    • Rob Swindell's avatar
      Check for shutdown and recycle semaphores even while clients are connected · 75c5c9e5
      Rob Swindell authored
      We have checks/loops/timeouts waiting for active clients to disconnect and
      child thread threads to terminate whenever shutting down or recycling already,
      so this should be safe. This pretty simple change fixes issue #236 (can't
      terminate server under heavy load).
      
      Also as part of this commit, introduced the ability to "pause" a server
      (prevent it from accepting new connections) with the ctrl/pause semaphore
      file or via the MQTT server/pause (and resume) topics. This feature is useful
      when debugging server issues where you don't necessarily want to fully
      shutdown/terminate the server, but don't want any new connections to be
      accepted (the listen backlog will fill up with incoming connections though).
      Unlike a server shutdown, a server pause can be "undone" via MQTT (by
      publishing a message to the "resume" topic).
      
      The "pause" semaphore file is just an "existence" semaphore file - its
      date/time stamp doesn't matter. If the file exists, the server will enter
      a paused state (and periodically log messages to that fact) until the semfile
      is deleted.
      
      This server pause feature is not the same as the pause button function in
      sbbsctrl, which just pauses server log output.
      75c5c9e5
  13. Dec 26, 2023
  14. Dec 21, 2023
  15. Dec 20, 2023
  16. Dec 19, 2023
  17. Dec 18, 2023
  18. Sep 28, 2023
    • Rob Swindell's avatar
      Fun (not) with fonts · 5aa3e5c5
      Rob Swindell authored
      Running SBBSCTRL on Windows 11 with a 4K monitor looked horrible.
      The default font sizes varied widely - I'm not sure why this wasn't
      apparent before now. And the default font ("MS Sans Serif") is no longer
      included in modern Windows versions, so when choosing a Log font, the
      pre-selected font was just blank. So change use of "MS Sans Serif"
      everywhere to "Microsoft Sans Serif" which appears to have been around since
      Win95 and be the preferred alternative. I would consider Segoe, but that
      wasn't introduced into Windows until Vista and I'm not sure (yet) what
      troubles that might introduce. I'll experiment with a WinXP VM maybe
      and find out.
      5aa3e5c5
    • Rob Swindell's avatar
      Don't read/write or import/export Font "Height" property, redundant with "Size" · 7724052c
      Rob Swindell authored
      Also:
      For log message styles (e.g. colorization) based on log level, don't apply
      a different font (Name) or size. This just looks terrible when this is done
      and I don't think any sysops want that. Keep each log window using the same
      font face (name) and size, just allow the color and style (e.g. bold, italics)
      to change based on log severity.
      
      This does increase the confusion with the Properties->Customize->Log Fonts
      as the "Change Font" dialog still allows the sysop to select/change a font
      face and size, they're just not saved/used. I coudln't find a way to remove
      or disable these from the displayed TFontDialog form.
      7724052c
  19. Apr 06, 2023
  20. Apr 05, 2023
  21. Apr 02, 2023
    • Rob Swindell's avatar
      Eliminate node_sem_check and node_stat_check settings · d2436b7f
      Rob Swindell authored
      Use the terminal server sem file check interval instead of node_sem_check
      (it was only used in the event thread) and node_stat_check was only used in
      the control panel, so just support a registry over-ride, but default to 5 sec.
      
      These settings were artifacts from SBBS v2 (WFC mode), and not really relevant
      or in the proper configuration place.
      d2436b7f
  22. Feb 17, 2023
  23. Feb 15, 2023
  24. Jan 04, 2023
    • 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
  25. 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
Loading