Skip to content
Snippets Groups Projects
  1. Oct 25, 2018
    • rswindell's avatar
      Update display/menu file selection logic based current terminal capabilities. · 68e52292
      rswindell authored
      Newly supported files: text/menu/*.msg (higher priority than .asc when the
      terminal supports IBM extened ASCII, aka CP437). These are the same format
      as .asc files (and supported more readily by PabloDraw).
      Newly supported files: text/menu/*.seq - native PETSCII files for PETSCII
      terminals only. Support in the underlying putmsg() function is still
      pending.
      Also, the text/*.msg files now supports alternative file formats for
      RIP/ANSI/PETSCII, if the files exist.
      WIP menu support removal.
      The new menu/display file selection priority will be detailed on
      wiki.synchro.net, but rest assured, it's backwards compatible with
      the previous/old priority with the exception of the removal of WIP support
      and HTML support.
      68e52292
  2. Oct 22, 2018
    • rswindell's avatar
      Address new GCC printf warnings. · 30e31922
      rswindell authored
      30e31922
    • 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
  3. Jul 25, 2018
    • rswindell's avatar
      sbbs_t::lputs() now handles the adding of the log message prefixes · 9e0fcab8
      rswindell authored
      ("Node X", user alias, etc.) - so removing a lot of the redundancies.
      Also, logging the current timed event code and other prefixes in the
      event thread log messages - something I've wanted for a while now.
      There might be some redundant "Node X" strings, so if you see some funny
      looking log message, please let me know.
      9e0fcab8
  4. Jul 07, 2018
    • rswindell's avatar
      For SSH and RLogin 'logins', use the mastchuser() function rather than · 385261e4
      rswindell authored
      userdatdupe() to match the passed login-id (username):
      *  This allows more permissive username matching, e.g. if your user name
         is "Analog Kid", you could login with "analogkid", "analog.kid" or
         "analog_kid", which is handy when passing a user name on the command
         line (e.g. to an ssh client) for example.
      *  This is the same function used for Telnet logins via exec/login.js
      385261e4
  5. Apr 24, 2018
  6. Apr 01, 2018
  7. Feb 03, 2018
  8. Jan 22, 2018
  9. Oct 06, 2016
  10. Dec 19, 2015
  11. Dec 16, 2015
    • rswindell's avatar
      Fix bug reported by KenDB3: · 2d9f13ba
      rswindell authored
      The JS-modeled user object's ip_address and host_name property values did not
      reflect the current connection during logon events (JS modules executed during
      logon, e.g. logon.js). Moved the initialization of the current user
      (sbbs_t::useron) ipaddr and comp field to sbbs_t::logon() rather than when
      control returns to sbbs_t::answer(). Removed the (now) redundant saves of these
      user fields from answer().
      2d9f13ba
  12. Dec 03, 2015
  13. Aug 27, 2015
  14. Aug 23, 2015
  15. Aug 20, 2015
    • deuce's avatar
      Update to 3.17a · dbbfabf1
      deuce authored
      New Features:
      - Multiple bindings for each service
        Use comma-separated interfaces on Interface= lines in the ini file.
        Default is now "0.0.0.0,::"
      - IPv6 support
      - TLS support for the webserver and (non-static) services
        New TLS option in services.ini (ie: Options=TLS)
      - Decrease LEN_SCAN_CMD to 35 chars, increase the CID field to 45 chars,
        and rename the MAIL_CMD string to IPADDR.  I think this frees up the
        note field for SysOp use.
      dbbfabf1
  16. Jan 19, 2015
  17. Oct 29, 2014
    • rswindell's avatar
      Bug-fix: when SSH or RLogin supplied username is not a valid user, the new user · 01ea9701
      rswindell authored
      signup process would be started without the current client IP address being
      added to the 'failed login attempt' list. This means that brute force login
      attempts using SSH or RLogin would usually not be subject to the loginAttempt
      delays and logging/filtering settings (in sbbs.ini), since the usernames
      attempted (e.g. root, admin) are usually not valid usernames.
      
      More:
      - Log failed password attempts before calling badlogin() -which can delay.
      - Stop RLogin and SSH password prompt loop immediately if disconnected.
      - Log RLogin and SSH passwords used for invalid usernames (when password
        logging is enabled in SCFG).
      - Log attempted usernames in quotes (so prepenned or trailing whitespace is more
        obvious)
      01ea9701
  18. Oct 28, 2014
    • rswindell's avatar
      Fix node hang (infinite loop) possible when input_thread() is terminated before · f18856a8
      rswindell authored
      answer() set online to ON_REMOTE. This should resolve the issue with SSH brute
      force password attackers hanging nodes in "new user applying for access".
      The actual fix was to remove the set of the online variable to ON_REMOTE
      in answer() (it's initialized to this value in the sbbs_t constructor), the
      check in getkey() is just for extra paranoia and should not be necessary.
      f18856a8
  19. Mar 08, 2014
  20. Mar 07, 2014
    • rswindell's avatar
      * Eliminated the sbbs.ini [BBS] Options flag: USE_2ND_RLOGIN · b45af31d
      rswindell authored
      - this option has been a default option flag for 10 years
      - this option was introduced *before* the RLogin password capability
      - Synchronet now always expects the login-ID (alias) to be the 2nd string
      received during RLogin connections (called 'server-user-name' in RFC 1282.
      * Now storing the complete terminal type/speed string received during RLogin
      connection in the bbs.rlogin_terminal property (sbbs_t.rlogin_term in C++).
      * bbs.rlogin_gate() is over-hauled:
      - arguments are: address, client-user-name, server-user-name, terminal, mode
      - if existing JS module assumes this to be: address, server-user-name, password
        those scripts will need to be updated to reflect the correct argument order
      - all arguments beyond the first are now optional
      - the terminal string can now be passed-in
      * Deprecated the telnet gateway option: TG_SENDPASS (the 'password' if desired
      to be sent as the 'client-user-name' can be specified as an argument and this
      option sent the password as the *second* RLogin string ('server-user-name'),
      which was always wrong.
      * sbbs_t::telnet() can now accept the terminal string as an optional argument.
      b45af31d
  21. Feb 28, 2014
  22. Jun 19, 2012
  23. Jun 13, 2012
  24. Feb 08, 2012
  25. Oct 19, 2011
    • rswindell's avatar
      Resolve warning: · 5d80e1fc
      rswindell authored
      answer.cpp:271:15: warning: "/*" within comment
      and restore "normal" attributes during ANSI detection (unintentionally
      removed by Deuce in rev 1.69). Oh, and -Wall is good. :-)
      5d80e1fc
  26. Sep 14, 2011
  27. Sep 08, 2011
  28. Mar 01, 2011
  29. Mar 27, 2010
  30. Nov 09, 2009
  31. Feb 19, 2009
  32. Feb 18, 2009
  33. Feb 16, 2009
    • rswindell's avatar
      Major over-haul of smb_util.c and most everything that uses it: · 17ab641b
      rswindell authored
      Constified the arguments.
      Created exascii_to_ascii_char().
      Created ctrl_a_to_ascii_char().
      strip_ctrl() and prep_file_desc() now takes 2 args.
      strip_ctrl(), strip_exascii() and prep_file_desc() now strdup() the input
      string and if the dest arg is NULL, returns the allocated and modified copy.
      sbbs_t::bputs() now handles ^AZ.
      Change Ctrl-A code message network exporting:
      1. ^AL, ^A<, ^A[, and ^A] are always translated to ASCII equivalents.
      2. ^AZ will terminate the message body prematurely if found.
      3. Ex-ASCII (CP437) chars will be translated to ASCII equivalents (rather than
      '*') for "ASCII Only" subs.
      For import, don't allow Ctrl-AP or Ctrl-AL.
      For SBBSecho:
      Added support for specifying a link's address on the command-line (e.g. for
      use with -h).
      Mail server now strips Ctrl-A codes from message bodies for sending via POP3
      or SMTP.
      17ab641b
Loading