Skip to content
Snippets Groups Projects
  1. Jun 04, 2017
  2. Nov 28, 2016
  3. Nov 21, 2016
  4. Nov 19, 2016
    • sbbs's avatar
      pthread thread names are limited to 15 chars (not including nul terminator) · f3da24f7
      sbbs authored
      so use shorter thread names.
      f3da24f7
    • rswindell's avatar
      Fix the root-cause of the high-CPU utlization on server recycle problem: · cdef2d33
      rswindell authored
      How did startup->sem_chk_freq get set (back) to 0 in the first place?
      The reason: the startup struct sanitization only occured when the various
      server threads were first started. When recycled, the server would call back to
      the original caller (e.g. sbbscon) which may (and did) re-read the sbbs.ini
      file, which could have SemCheckFrequency set to 0 (or missing) and the
      sanitization did not happen again (so a 0 value was used in select() calls,
      resuilting in high CPU utilization for several threads).
      
      So now, all startup struct sanitization occurs inside the init/recycle loop
      and sem_chk_freq should never revert to 0 again. This was the main bug.
      cdef2d33
    • sbbs's avatar
      Fixed high-CPU utilization after server recycling issue: if the sem_chk_freq · 324c41ba
      sbbs authored
      value is missing or set to 0 in the sbbs.ini file, the sanity checking this
      value (setting it to 2 seconds) will not occur after a server recycle and the
      sbbs.ini is re-parsed. So if for any reason, the sem_chk_freq value becomes
      0, these server threads won't hog the CPU because they all YIELD at the
      top of thier main loops.
      
      Also, changed all the thread names (e.g. adding "sbbs/" prefix), so they're
      more sensible in the Linux 'top' output.
      
      Also, started adding 'vi' modelines to auto-set tabstops when using vi/vim.
      324c41ba
  5. Oct 17, 2016
  6. May 27, 2016
    • rswindell's avatar
      Update the temp ban (loginBanned): · e0e5279f
      rswindell authored
      - Never ban the server's own address
      - Log the login attempt and last name attempted
      - Use a compressed version of the HH:MM:SS "time remaining" portion of the log
        message
      e0e5279f
  7. May 18, 2016
    • rswindell's avatar
      Implement IP temporary ban: · 7da4af1b
      rswindell authored
      By default, after 20 consecutive (unique) failed login attempts, *or*
      a failed login attempt wtih a name from the name.can filter file.
      The default temporary ban duration is 10 minutes.
      The temporary ban thershold is configurable via LoginAttemptTempBanThreshold
      in sbbs.ini and the ban duration is configurable via LoginAttemptTempBanDuration
      (in seconds).
      7da4af1b
  8. Jan 21, 2016
  9. Dec 04, 2015
  10. Aug 22, 2015
  11. Aug 21, 2015
  12. Aug 20, 2015
    • deuce's avatar
      Use correct addr_len values. · 4ace0e8b
      deuce authored
      4ace0e8b
    • deuce's avatar
      Terminate IPv4 address before calling inet_addr(). On at least FreeBSD, · 48b07e59
      deuce authored
      leaving the |<port>| in the string causes inet_addr() to fail, breaking
      active FTP transfers.
      48b07e59
    • 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
  13. Aug 18, 2015
  14. Apr 25, 2015
    • deuce's avatar
      Fix exit() behaviour by introducing the new js.scope value which is the · f3256d81
      deuce authored
      scripts global scope (as opposed to js.global which is the instance global
      scope), and having exit() define exit_code in js.scope instead of js.global.
      
      This also sets exit_code in js.scope to null when preparing to execute a new
      script.  If a new script starts in the same scope as an old one, the old
      exit_code value will be destroyed.
      
      This should only impact scripts where js.global != js.scope (bbs.exec()ed,
      and mailsrvr)
      f3256d81
  15. Dec 11, 2014
    • rswindell's avatar
      Bug-fix: daily statistics and free-credits-per-day were not reset when the user · 43b6084e
      rswindell authored
      logged in via FTP. This affected: posts_today, emails_today, free_credits,
      timeon_today, and extra time values (e.g. posts_today would contnue to
      accumulate potentially affecting the users ability to post via FTP-uploaded REP
      packet). getuserdat() does the necessary value resets, we just needed to write
      the entire user record back to disk upon successfull login, rather than just
      updating specific fields in the user record on disk. The HTTP server looks like
      it might have the same/similar bug.
      43b6084e
  16. Nov 20, 2014
  17. Oct 30, 2014
  18. Oct 29, 2014
  19. Apr 20, 2014
  20. Jan 08, 2014
  21. Jan 07, 2014
  22. Feb 07, 2013
  23. Oct 24, 2012
  24. Aug 22, 2012
    • rswindell's avatar
      Fix race-condition during shutdown or recycle that could cause crash: · 21dcf57b
      rswindell authored
      active_clients (protected integer) could be 0 at the time of recycle because
      there can be delay at the beginning of the FTP ctrl thread (e.g. looking up
      filtered IPs/hostnames) before the active_clients is incremented which could
      be during/after it was destroyed by the cleanup() function. Now tracking
      number of threads using protected integer which increments immediately upon
      child thread creation and is not destroyed until the main thread terminates.
      There is currently *not* timeout while waiting for child threads to terminate
      upon shutdown/recycle, so this could result in a hung server thread if a child
      thread is indefinitely hung - consider using a timeout.
      21dcf57b
  25. Jul 04, 2012
    • deuce's avatar
      Fix Chrome solution. · 11dfec1b
      deuce authored
      Per RFC3659, the correct response for "Good command, but no size for you" is
      550, not 500 or 501 (these indicate an inability to parse the command).
      
      This works with Chrome.
      11dfec1b
  26. Mar 06, 2012
  27. Oct 29, 2011
    • deuce's avatar
      Fix format-related warnings. · 8563ad46
      deuce authored
      This is *likely* to break the Win32 build and even when the macros are
      specified in xpdev, I doubt Microsoft has added support for the 'z' size
      specifier used in smblib/smbadd.c we'll likely need a SIZE_T_SIZE macro
      that is "z" on C99 systems and "ll" or "64" or whatever it is on Win32.
      
      Or maybe a whole slew of complete SIZE_T macros since the 32/64 but thing
      and the max file size thing may actually need the full format specification
      to be in the macro... "zu" on C99 platforms and whatever magic Microsoft
      needs there.
      8563ad46
  28. Oct 28, 2011
Loading