Skip to content
Snippets Groups Projects
  1. Apr 15, 2025
  2. Apr 14, 2025
  3. Apr 13, 2025
  4. Apr 12, 2025
  5. Apr 11, 2025
    • Craig Hendricks's avatar
      Change List: · d5edd3c3
      Craig Hendricks authored
       Enhancements:
       
        - /q added as a shortcut for /quit
        - /? added as a shortcut for /quote help
       
      
       Fixes:
       
        - Incoming messages don't get added to the chat window while scrolling or reviewing mentions. Instead, they get pushed into a temporary buffer, and then added to the chat window when finished scrolling/reviewing. This fixes an issue with laggy scrolling with lots of activity in the room.
      
        - Fixed a typo in the twit help file.
       
       
       New Features:
       
        - Basic CTCP implemented. Syntax:
        
          /ctcp <target> <command>
        
          target:  Can be users or rooms. An asterisk specifies all users in the 
                   current room.
                   
          command: The CTCP command to be issued. Supported commands:
            
            - VERSION:    Returns the user's MRC client version information.
            - TIME:       Returns the client's (BBS's) current local date/time.
            - PING:       Doesn't seem fully implemented; most Mystic clients return 
                          an empty string.
            - CLIENTINFO: Returns list of commands supported by the remote client.
          
          Example usage:
          
            /ctcp * time
            
          Output returned:
          
            * [CTCP-REPLY] StackFault TIME 03/31/25 14:49     
            * [CTCP-REPLY] geekboy TIME 03/31/25 14:49        
            * [CTCP-REPLY] mafiath TIME 03/31/25 14:49        
            * [CTCP-REPLY] k9zw TIME 03/31/25 19:49           
            * [CTCP-REPLY] zharvek TIME 03/31/25 14:49
            
          User can hide/show incoming CTCP requests with /toggle_ctcp.
          They're shown by default.
          
       
       
        - User actions.
        
          User types /me to perform an action in the room.
          
          Example usage:
          
            /me sips coffee
          
          Message sent to chat room:
          
            * Codefenix sips coffee
       
       
       Housekeeping:
       
       - Updated help files. Moved some nonessential commands to /help more (noted in main /help).
       
      d5edd3c3
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Rename bbs.good_password() to bbs.check_password() for consistency · c011d987
      Rob Swindell authored
      ... with the system object and the underlying SBBS functions being called.
      
      Leave bbs.good_password() as an alias for backward compatibility.
      c011d987
    • Rob Swindell's avatar
      Add new methods: system.check_realname() and system.check_password() · 7f9b4c1b
      Rob Swindell authored
      These are wrappers around the userdat API functions, suitable for servers
      to do prospective new user string validation.
      7f9b4c1b
    • Rob Swindell's avatar
      Move password quality check logic to new userdat.c function: check_pass() · 1fbb1743
      Rob Swindell authored
      sbbs_t::chkpass() now becomes just a thin wrapper around check_pass() and it
      prints the reason for the failure or calls sbbs_t::trashcan().
      
      I also refactored the code quite a bit: no more copying and uppercasing
      (we have strcasestr() now!) and supports calling with a NULL user_t* as I
      expect will be a use case.
      
      This will allow us to expose the password quality checking algorithm to other
      servers (e.g. the web server) that can be used to create new user accounts
      with passwords that meet our quality bar.
      e.g. via a newly created JS method: system.check_password()
      
      Yes, we have bbs.good_password() already (and that still works fine), but
      can't be used by non-terminal server code.
      1fbb1743
    • Rob Swindell's avatar
      Rework part of the "good password" checking algorithm · a81e6457
      Rob Swindell authored
      Require that a good password contain a sequence of unique characters
      (not repeating, incrementing, or decrementing in ASCII code value) of at least
      half the configured minimum password length. By default, the minimum password
      length is 4 chars, so this means a sequence of at least 2 unique characters
      is required. If the minimum password length is increased by the sysop, so is
      the minimum required unique sequence length. The "PasswordInvalid" text.dat
      string is printed when passwords are rejected by this criteria.
      
      Previously, the following would be rejected by this portion of the algo,
      this logic has been replaced by the above:
      - all chars the same (would print the "PasswordInvalid" text.dat string)
      - first 4 chars are incrementing ("PasswordObvious" string printed)
      - first 4 chars are decrementing ("PasswordObvious" string printed)
      
      but now, a password that starts with "1234" or "abcd" is fine so long as it's
      longer than that and contains the minimum unique sequence length. This will
      prevent SBBS from rejecting high quality (e.g. randomly generated or
      crypto-hashed) passwords that just happen to begin with an incrementing
      sequence of 4 digits or alpha-characters.
      a81e6457
    • Rob Swindell's avatar
      Beautify the "help" output · e8aaecc6
      Rob Swindell authored
      Both the and the output are not prettier.
      
      This fixes issue #901
      e8aaecc6
    • Deucе's avatar
      Fix test in last commit · b55f8621
      Deucе authored
      b55f8621
    • Deucе's avatar
      Clear line counter when clearing SS_ABORT · 366e662d
      Deucе authored
      Also, always use clearabort() to clear SS_ABORT now, and move the
      method body into con_out.cpp (where msgabort() is) since it actually
      does a thing now.
      
      Fixes issue #907
      366e662d
    • Rob Swindell's avatar
      Update JSDOC descriptions for md5_calc() and sha1_calc() · 99b8b33b
      Rob Swindell authored
      to clarify how many hex digits will be included in the returned (hex) strings
      99b8b33b
    • Rob Swindell's avatar
      Typo in comment · 1155fa8a
      Rob Swindell authored
      1155fa8a
    • Rob Swindell's avatar
      Use term->cond_newline() for brevity · 54985c55
      Rob Swindell authored
      No functional change
      54985c55
    • Rob Swindell's avatar
      When a new RLogin-user's password is rejected, log a message indicating so · 46506ad6
      Rob Swindell authored
      Replace the CRLFs with direct term->newline() calls.
      46506ad6
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      e3faf8e6
    • Rob Swindell's avatar
      Fix going to a msg number from viewing/reading msgs mode · 7d9bec6d
      Rob Swindell authored
      In some uses (depending on the list order), typing a message number didn't
      take you to the intended message.
      
      Reported by Nelgin in IRC.
      7d9bec6d
    • Rob Swindell's avatar
      Merge branch 'dd_area_choosers_altDesc_fix_and_start_of_name_collapsing_enhancement' into 'master' · d9608b6d
      Rob Swindell authored
      DD Area Choosers: Fix for altName missing (reported by nelgin) and start of name collapsing enhancement (no empty names)
      
      See merge request !524
      d9608b6d
    • Eric Oulashin's avatar
      DD Area Choosers: Fix for altName missing (reported by nelgin) and start of... · 6a3a946e
      Eric Oulashin authored
      DD Area Choosers: Fix for altName missing (reported by nelgin) and start of name collapsing enhancement (no empty names)
      6a3a946e
  6. Apr 10, 2025
    • Rob Swindell's avatar
      Allow optional pepper to be specified with '-h' (hashed password) option · a54caff6
      Rob Swindell authored
      e.g. '-hSEVERNAME'
      
      This allows server-unique hashing so that if one BBS auto-registers
      /authenticates its users with *multiple* Rlogin servers, the credentials
      stored on of the rlogin servers may not be used to authenticate on the others.
      a54caff6
    • Deucе's avatar
      Fix typo (thrad->thread) · f218ad1f
      Deucе authored
      f218ad1f
    • Deucе's avatar
      Initialize Terminal in global sbbs when answering · aea882a8
      Deucе authored
      Should fix issue where extra pauses occur on connection.
      aea882a8
    • Rob Swindell's avatar
      Add '-h' option to send a salted and hashed password to the server · 0b011cc8
      Rob Swindell authored
      Like the -p option, except the server won't get a copy of the client BBS
      user's password or be able to decode it.
      
      The user's password, user number and account creation date are used to generate
      the password hash (along with the salt), so changing any of these will change
      the resulting hashed password sent (and presumably logged/stored) on the
      server. The resulting SHA-1 hash is sent as 40 hexadecimal digits.
      
      The default salt is the system's QWK-ID, but the sysop can specify their own
      salt (e.g. random number or secret passphrase) via the "salt" key in the
      [rlogin] section of modopts.ini or root section of ctrl/modopts/rlogin.ini
      0b011cc8
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Fix default mode value (should *not* be 10, i.e TG_NODESYNC|TG_CRLF) · dbbdd109
      Rob Swindell authored
      Bug introduced in commit 49053f31
      
      the 'mode' value was by default, undefined.
      the 'timeout' value is by default, 10.
      
      When mode value/flags was not provided on the command-line, undefined
      was passed to bbs.rlogin_gate() as the 5th parameter, but the number 10
      is passed as the 6th parameter (for time-out). The problem is, the first
      Number parameter passed to bbs.rlogin_gate() is interpretted as the mode
      value and so that becomes 10 (0x0A) which includes TG_NODESYNC thus enabling
      all node messages/activity being displayed to the rlogin user and interrupting
      their rlogin session (e.g. game play).
      
      Just make the 0 the default value for mode, like we did in telgate.js.
      dbbdd109
    • Deucе's avatar
      Fix felicity IGM and readfile · f6457b46
      Deucе authored
      Readfile does not log an error when the file does not exist.
      
      In felicity.ref, `s04 and `s05 were left unchanged from whatever
      they happened to be previously, displaying junk when someone looked
      at the message. Now, `s04 and `s05 are explicitly set to zero-length
      strings first so they just display nothing.
      
      Fixes #906
      f6457b46
  7. Apr 09, 2025
  8. Apr 08, 2025
Loading