- Oct 25, 2018
-
-
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.
-
- Oct 22, 2018
-
-
rswindell authored
-
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)
-
- Jul 25, 2018
-
-
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.
-
- Jul 07, 2018
-
-
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
-
- Apr 24, 2018
-
-
rswindell authored
- Using NOTCICE (not INFO) log level. - Move the protocol name after Node X and remove the colon.
-
- Apr 01, 2018
-
-
rswindell authored
new user signup process with that name (just fall-through to a normal login prompt).
-
- Feb 03, 2018
-
-
rswindell authored
Over-hauled the ANSI detection a bit too.
-
- Jan 22, 2018
-
-
rswindell authored
code included. As far as I know, no one is using one.
-
- Oct 06, 2016
-
-
rswindell authored
-
- Dec 19, 2015
-
-
rswindell authored
-
- Dec 16, 2015
-
-
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().
-
- Dec 03, 2015
-
-
rswindell authored
logging in a user. Apparently it's possible to disconnect during an SSH login and have this function return with useron.number set to a valid user number even though there was no successful login, leading to undesireable things happening in logout().
-
- Aug 27, 2015
-
-
rswindell authored
-
- Aug 23, 2015
-
-
deuce authored
This means moving ssl.o into libsbbs.so and out of libwebsrvr.so. I'll fix Windows in a minute (?).
-
- Aug 20, 2015
-
-
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.
-
- Jan 19, 2015
-
-
rswindell authored
by msvc debug build and reported via assertion.
-
- Oct 29, 2014
-
-
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)
-
- Oct 28, 2014
-
-
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.
-
- Mar 08, 2014
-
-
rswindell authored
not match database and beginning new user sing-up.
-
rswindell authored
the login process a bit (e.g. using Unix 'telnet -a <host>'). Treat login name provided via RLogin, SSH, or Telnet equally (e.g. use in new user signup by default). Disable the hard-coded bypassing of netmail address prompts for RLogin users (there are other ways to accomplish this, e.g. using JS if desired).
-
- Mar 07, 2014
-
-
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.
-
- Feb 28, 2014
- Jun 19, 2012
-
-
deuce authored
ssh session.
-
- Jun 13, 2012
-
-
rswindell authored
Improved Telnet option processing and event execution log output.
-
- Feb 08, 2012
-
-
rswindell authored
string formatting/copy functions and macros. text/answer.* filenames are now case insensitive on *nix (now consistent with all other menu files).
-
- Oct 19, 2011
-
-
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. :-)
-
- Sep 14, 2011
-
-
rswindell authored
-
- Sep 08, 2011
-
-
deuce authored
-
- Mar 01, 2011
- Mar 27, 2010
-
-
deuce authored
new ZuulTerm protocol and add an autodetection.
-
- Nov 09, 2009
-
-
rswindell authored
-
- Feb 19, 2009
- Feb 18, 2009
-
-
rswindell authored
\e255;255H. Had the row/col sane-range checking reversed.
-
rswindell authored
response) - using c_escape_str() to convert the response to a log/print format.
-
rswindell authored
place to do it, but may need some special handling for HTMLterm mode. Parse columns from ANSI cursor position reports. Request Telnet "Negotiate Window Size" option during answer since this is more reliable than ANSI cursor position reporting (especially with terminals that wrap cursor positioning requests). Improve validation of ANSI cursor position reports.
-
- Feb 16, 2009
-
-
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.
-