1. 04 Jul, 2015 1 commit
    • rswindell's avatar
      Create a 7-line MSGINF file which includes the full path to the tag file, · 8814273d
      rswindell authored
      in scenarios where the tagfile may be used (e.g. not editing extended file
      descriptions). This should allow SlyEdit and other extenal message editors
      to detect the support for the editor.tag file dynamically rather than by
      using the Synchronet version number. If the 7th line is blank or non-existent,
      then the external editor tag file is not supported.
      Overhauled editor_inf() to use a file stream/fprintf.
      8814273d
  2. 02 May, 2015 1 commit
    • rswindell's avatar
      Implemented the SCAN_UNREAD mode bit for scansubs(), scanallsubs(), · 0d51d960
      rswindell authored
      scanposts(), and listsub(). These functions are exposed in the JS 'bbs' object
      as scan_subs(), scan_msgs(), and list_msgs().
      Wherease previously, all of "your messages" (messages addressed to you)
      would be found/displayed if the user answered (Y)es to the "Subjects Only?"
      prompt, and only un-read message (to you) would be displayed if they answered
      (N)o to the "Subjects Only?", providing long-standing confusion about the
      different behavior, now the user is prompted whether to display un-read
      messages only (in scansubs/scanallsubs), and in the case of the logon
      question to "Search all subs for un-read messages to you?", only un-read
      messages are listed/displayed, regardless of how the user answers the
      "Subjects Only?" question.
      SCAN_UNREAD is only applicable when combined with SCAN_TOYOU.
      
      Added new commands to the msg reading prompt: 'N' (list new messages), 'U'
      list un-read messages to-you.
      
      2 new text.dat entries: DisplayUnreadMessagesOnlyQ and NoMessagesFound
      0d51d960
  3. 27 Apr, 2015 1 commit
    • rswindell's avatar
      Enhancement at the request of Nightfox: · d57c3830
      rswindell authored
      Optionally, external modules may be executed in place of "built-in" operations
      for:
      - reading mail (email or netmail)
      - scanning posts (searching/scanning/reading a single sub-board)
      - scanning sub-boards (all, one, or a group)
      
      Each of these may be configured (in SCFG->System->Loadable Modules)
      with command-line options for a total length of up to 63 characters.
      
      Note to module programmers: each module here will be passed additional
      command-line arguments to indicate how or why the user operation was invoked.
      
      For the Reading Mail module, the 'which' value (in decimal) and the user-number
      is passed (in decimal). Usually the user-number will be the current user logged
      in, but not always (e.g. if the user is a sysop and reading other user's mail).
      The 'which' values (defined in load/sbbsdefs.js) of MAIL_YOUR, MAIL_SENT,
      and MAIL_ALL must be handled (MAIL_ANY won't be used).
      
      For the Scan Posts module, the sub-board number and scan mode (both in decimal)
      and the 'find' string (text being searched for) are passed as arguments
      (in that order). The scan mode values (defined in sbbsdefs.js) are the same as
      those supported by bbs.scan_posts(). All of the values should be supported
      and they can be combined (e.g. SCAN_CONST|SCAN_NEW
      and SCAN_NEW|SCAN_TOYOU). The 'find' string is only used if the SCAN_FIND mode
      bit is set. It is the responsibilty of the module (if configured) to enforce
      sub-board read access restrictions.
      
      For the Scan Subs module, the first argument is 1 if "all subs" are being
      scanned, 0 otherwise (normally the user is prompted for the breadth of the
      scan in this case, but that's up to the module author), and the scan 'mode' is
      passed in decimal, in that order. If the SCAN_FIND mode flag is passed in, this
      module should prompt the user for the text string to search for. If this module
      is not configured, the Scan Posts module will be executed for each sub-board
      scanned.
      
      Recursion protection was added, so it is actually possible for the Read Mail
      module, for example, to call bbs.read_mail() and it'll work, but why would you?
      
      If any of these user operations are initiated during logon, at the request of
      Baja or JavaScript module, or whatever, and if the module is actually
      configured (and not already executing to handle the operation), the module
      will be executed in-place-of the built-in functionality. Feedback welcome,
      d57c3830
  4. 25 Apr, 2015 1 commit
    • 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
  5. 18 Nov, 2014 1 commit
  6. 01 Sep, 2014 1 commit
  7. 01 May, 2014 1 commit
  8. 07 Mar, 2014 1 commit
    • 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
  9. 06 Aug, 2013 1 commit
  10. 07 May, 2013 1 commit
    • mcmlxxix's avatar
      removed TG_SENDPASS flag from bbs.telnet_gate/sbbsdefs.h · 04d2b5d4
      mcmlxxix authored
      added bbs.rlogin_gate method: bbs.rlogin(addr,user,pass,mode);
      disable "raw input" mode for rlogin_gate connections. not sure why this is the fix or why it was the problem, but no side effects are noted at this time.
      04d2b5d4
  11. 29 Apr, 2013 1 commit
  12. 10 Feb, 2013 1 commit
  13. 08 Feb, 2013 3 commits
  14. 07 Feb, 2013 4 commits
  15. 19 Dec, 2012 1 commit
    • rswindell's avatar
      Fix a (very) long-standing bug in sbbs_t::update_qwkroute(): was using static · 9a4cd7ee
      rswindell authored
      realloced variables for tracking QWKnet nodes discovered while importing msgs,
      but multiple terminal server nodes/events calling this function concurrently
      could clearly corrupt these variables and cause realloc errors and crashes.
      Now using members of sbbs_t for node/event instance specific QWKnet
      node tracking for the route.dat updates (a rarely used feature nowadays).
      9a4cd7ee
  16. 24 Oct, 2012 1 commit
  17. 11 Jul, 2012 1 commit
  18. 19 Jun, 2012 1 commit
  19. 17 Jun, 2012 1 commit
  20. 15 Mar, 2012 1 commit
    • deuce's avatar
      Make the on_exit() evals happen when the scope exits rather than when the · 385ee4e9
      deuce authored
      global object exits.
      
      This fixes a problem where the terminal server reuses the same global object
      for all JS scripts, and they uses nested exec()s.  When the innermost script
      would exit, the on_exit evals would occure in IT'S scope rather than in the
      scope it was defined in, resulting in incorrect behaviour.
      385ee4e9
  21. 07 Nov, 2011 1 commit
    • deuce's avatar
      Add exception throwing function for functions which require arguments · 8406cad5
      deuce authored
      (throws an "Error: Insufficient Arguments" exception) in js_global.c so
      all JSNative functions call call it.
      
      Also add a function which calls JS_GetContextPrivate and throws an exception
      if it returns NULL.
      
      Previously, when either of these happened, the function silently did
      nothing.
      8406cad5
  22. 02 Nov, 2011 1 commit
  23. 28 Oct, 2011 2 commits
  24. 26 Oct, 2011 1 commit
    • deuce's avatar
      "Fix" problem as a result of the change to JSVAL_IS_NUM() · b2d7cf7e
      deuce authored
      Perviously, if the argument to a number of bbs.* functions was not a valid
      number, Synchronet would silently ignore the parameter and treat it as though
      it was not specified.
      
      The new behaviour was to use the value as a number.  However, the old code
      caused the exception triggered by an inability to convert the number to
      be pending until after the return (the JS_Native didn't return JS_FALSE) so
      a try/catch block aorund it would not catch the exception.
      
      The new new behaviour is to throw the exception immediately so it can be
      caught and handled correctly.
      b2d7cf7e
  25. 25 Oct, 2011 1 commit
  26. 24 Oct, 2011 2 commits
  27. 19 Oct, 2011 1 commit
  28. 16 Oct, 2011 2 commits
  29. 13 Oct, 2011 2 commits
  30. 11 Oct, 2011 2 commits