1. 24 Feb, 2022 2 commits
  2. 23 Nov, 2020 1 commit
    • Rob Swindell's avatar
      The great C function dependency refactor of 2020 · c6808b3f
      Rob Swindell authored
      The goal of this commit is that: only modules that either are part-of sbbs.dll/libsbbs.so or need to link with/use that library, will #include "sbbs.h" and thus be dependent on its subsequent includes (e.g. cryptlib.h, jsapi.h). This should mean extdeps.mk can be trimmed way down.
      
      I also removed CVS keyword/comments and trimmed up the boilerplate copyright notice in modified and added source/header files in this commit.
      
      There is no functional change in behavior in this comment.
      c6808b3f
  3. 06 Nov, 2020 1 commit
    • Rob Swindell's avatar
      Replace ctype.h function calls with new MSVC-safe XPDEV macros · 8a7b7308
      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.
      8a7b7308
  4. 16 Aug, 2020 1 commit
  5. 14 May, 2020 1 commit
    • rswindell's avatar
      No longer dynamically allocate compiled access requirment (AR) strings for configuration items. · 110cc8ac
      rswindell authored
      SCFG for Win32 is linked against a load_cfg lib that builds withOUT SCFG defined, so these compiled AR elements were allocated and then many SCFG operations (e.g. copy/paste, create new) would copy the allocated ARs to another configuration and then be subjected to double-free upon exit/clean-up (resulting in exception or crash).
      Just get rid of this cruft and some other related RAM-byte-saving hold-overs from the MS-DOS days.
      110cc8ac
  6. 19 Mar, 2020 1 commit
  7. 22 Oct, 2018 1 commit
    • rswindell's avatar
      The big PETSCII commit: · 31303187
      rswindell authored
      So Omegix recently asked in the Synchronet Discussion group whether or not
      a PETSCII (Commodore) terminal could be used to access his Synchronet BBS.
      Now, the answer is "Yes". :-)
      The major issues addressed:
      
      - detecting a PETSCII terminal, solved by assigning specific (configurable):
        TCP ports to be used for incoming PETSCII connections, by default:
        port 64 is for 40-column PETSCII and port 128 is for 80-column PETSCII,
        but if the terminal sends a Telnet Window Size reply (e.g. SyncTERM), then
        either size terminal should fine on either port.
        The port numbers are configurable in the [BBS] section of your sbbs.ini
        file using the new keys: PET40Port (default value: 64) and PET80Port
        (default value: 128). Having these keys set doesn't make make the terminal
        server listen on that additional port - you'll need to add more
        IP:port combinations to one of Interfaces values, example:
          TelnetInterface=71.95.196.34,71.95.196.34:64,71.95.196.34:128
        And you don't have to use Telnet for the PETSCII connections - you could use
        RLogin or SSH instead (or in addition).
      
      - support for terminal widths < 80 columns:
        This was achieved through a combination of text.dat changes (numerous),
        new Ctrl-A and @-codes and new optional terminal-width-specific menu files
        (e.g. text/menu/main.40col.asc)
        A side effect of these changes is actually better support for terminals
        *wider* than 80 columns as well!
      
      - support for terminals that don't expand tabs to spaces (e.g. PETSCII):
        The terminal server now handles tab expansion with a run-time settable
        tab-size (default size: 8)
      
      - conditional access based on PETSCII (or small) terminal use (or not):
        + New PETSCII ARS keyword (boolean)
        + New COLS and ROWS ARS keywords (for terminal width and height requirements)
        + New TERM (string) ARS keyword
      
      New @-codes:
        - WORDWRAP, when placed at the top of a file, enables auto-wordwrap for
                    lines longer than the terminal width
        - CENTER, the text following before an end of line will be displayed centered
                  on the terminal (whatever the width, in columns)
        - CLEAR, like CLS, except it ignores (doesn't display) a CRLF that follows
        - COLS, current number of terminal columns (width)
        - ROWS, current number of terminal rows (height)
        - TERM, the auto-detected or reported terminal type (e.g. ANSI, TTY, etc.)
        - SYSONLY, toggles "echo" (display) off/back-on for non-sysops
                  similar to the Ctrl-A( and ) codes, but more convenient to use
                  (and PabloDraw won't strip the @-code from the file like it does
                   with Ctrl-A codes it doesn't support)
      
      New Ctrl-A codes:
        - \ conditional new-line/continuation when the terminal width is < 80 cols
            prints the new text.dat string LongLineContinuationPrefix
      
      yesno() will now return true if passed a blank string.
      noyes() will now return false if passed a blank string.
      getstr()'s input length limiting based on terminal width is more broadly
                 applied now (not just when using the K_LINE mode flag).
      
      New JS bbs object method: menu_exists(<base_filename>) returns Boolean
      New JS console object property: tabstop (Number)
      New JS console object methods: getbyte() and putbyte() to recv/send raw byte
          value with (very little) interpretation/intervention by the terminal server
      New JS console object method: creturn() - performs a carriage return
          (or equivalent)
      New JS (and C) printfile() mode flag: P_TRUNCATE, causes long lines to be
          truncated, rather than displaying causing a line-wrap.
      
      New text.dat strings:
        - NoAccessTerminal (for ARS check failures)
        - LongLineContinuationPrefix (for breaking long lines for 40col terminals)
        - Scanning (replaces a previously hard-coded "Scanning" string)
        - Done (replaces a previusly hard-coded "Done")
        - Scanned  (when finished scannning, clears the progress bar)
      31303187
  8. 20 Feb, 2018 1 commit
  9. 24 Oct, 2011 1 commit
  10. 22 Mar, 2009 1 commit
  11. 20 Mar, 2009 3 commits
    • rswindell's avatar
      6b8a5be3
    • rswindell's avatar
      ARS keywords with string arguments (e.g. PROT, SHELL, HOST, IP, SUB <code>, and · dbd4eb0c
      rswindell authored
      DIR <code>) are now handled correctly. The PROT (protocol) keyword never worked
      correctly.
      Some ambiguities (e.g. "PROT NOTIFY" and "PROT NOT IFY") are now handled more
      gracefully. White-space is now required after AND/OR/EQUAL/NOT if the next char
      is a letter. All the examples in http://synchro.net/docs/security.html
      still work as documented.
      dbd4eb0c
    • rswindell's avatar
      ARS improvements: · 1cdf2c10
      rswindell authored
      Added HOST and IP keywords to allow restricted access/privileges to/for
      specific remote hostnames or IP addresses (wildcards allowed).
      All string-argument type ARS keywords (e.g. SHELL, PROT, etc.) now support .can
      style wildcards.
      The current remote client is now used for protocol, host, and IP ARS checking,
      when available, so this requires passing the client pointer around (which
      explains why so many files are touched by this change) and takes care of a
      long standing to-do item (the user's 'modem' value was used for the PROT
      value checking, which was not always correct).
      1cdf2c10
  12. 30 Sep, 2007 1 commit
  13. 23 Sep, 2007 1 commit
    • rswindell's avatar
      Added new ARS keywords: · 2ad46e3a
      rswindell authored
      * ULS - uploaded files
      * ULB - uploaded bytes
      * DLS - downloaded files
      * DLB - downloaded bytes
      
      ... so now Phil can have a "true" 1:4 upload/download file ratio requirement by
      using an ARS of "DLS NOT 4 OR UDFR 25"
      2ad46e3a
  14. 29 Dec, 2006 1 commit
  15. 01 Nov, 2005 1 commit
  16. 02 Oct, 2005 1 commit
    • rswindell's avatar
      Bug-fixes in ARS compilation: · f3d85b15
      rswindell authored
      Wasn't accounting for correct lengths of keywords: WIN32, UNIX, LINUX, and PROT
      Didn't support >8 char internal codes in SUBCODE and DIRCODE values
      Would skip pass the line (null) terminator causing stack corruption or crash
      when parsing values for SUBCODE, DIRCODE, or SHELL keywords as the last
      keyword.
      f3d85b15
  17. 05 Sep, 2005 2 commits
  18. 17 Oct, 2004 1 commit
  19. 30 May, 2004 1 commit
  20. 27 Dec, 2001 1 commit
  21. 23 Jun, 2001 1 commit
  22. 30 Apr, 2001 1 commit
  23. 08 Nov, 2000 1 commit
  24. 29 Oct, 2000 1 commit
  25. 10 Oct, 2000 1 commit