AmendHub

Download: |

jcs

/

subtext

 

(View History)


BBS server for classic Mac OS

jcs   Rez: 4.0

Name Last Commit Last Modified
AddressXlation.h *: Lots of little cleanup 2 years ago
GUIDE GUIDE+README: Final 4.0 changes 8 months ago
LICENSE LICENSE: Add 1 year ago
MacTCP.h *: Lots of little cleanup 2 years ago
README GUIDE+README: Final 4.0 changes 8 months ago
ansi.c ansi: Fix panic message 1 year ago
ansi.h session: Don't run all session_printf formats through expand_template 2 years ago
bile.c bile: Sync with upstream 1 year ago
bile.h bile: Cope with malloc/realloc failures gracefully when possible 1 year ago
binkp.c *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
binkp.h *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
board.c board: free post_ids in board_index_sorted_post_ids 8 months ago
board.h board: For new FTN messages posted locally, just toss them 11 months ago
chat.c session+chat: Finally implement sysop paging/answering 1 year ago
chat.h session+chat: Finally implement sysop paging/answering 1 year ago
console.c user: Add user_first_sysop_id() 11 months ago
console.h focusable: Introduce focusable objects 2 years ago
crc.c crc: Fix UpdateCRC32 macro, move tables into C file 2 years ago
crc.h crc: Add explicit casting to UpdateCRC like UpdateCRC32 2 years ago
db.c db: Free bile object in db_cache_boards 8 months ago
db.h logger: Add RFC3164 (BSD) syslog support 8 months ago
dnr.c dnr: Don't require a pointer to a pointer for DNSResolveName 1 year ago
fidopkt.c fidopkt: Fix return value when aborting parse early 11 months ago
fidopkt.h fidopkt: A single packet can have multiple messages in it 1 year ago
focusable.c focusable: Allow add_focusable to fail 1 year ago
focusable.h focusable: Allow add_focusable to fail 1 year ago
folder.c *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
folder.h *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
ipdb.c ipdb: Log when the database has been loaded 11 months ago
ipdb.h ipdb: Add IP geolocation database lookup module 1 year ago
logger.c logger: syslog doesn't need the hostname on the wire after all 8 months ago
logger.h logger: Add RFC3164 (BSD) syslog support 8 months ago
mail.c *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
mail.h mail: Add mail_to_sysop() 11 months ago
main.c main: When MALLOC_DEBUG is defined, add a Debug menu to dump allocs 8 months ago
main_menu.c *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
main_menu.h *: Move views out of database to flat files 11 months ago
nomodem.c nomodem: Read upload data from ibuf in chunks to speed it up a little 1 year ago
nomodem.h nomodem: Read upload data from ibuf in chunks to speed it up a little 1 year ago
puff.c puff: Add small inflate module from zlib 1 year ago
puff.h puff: Add small inflate module from zlib 1 year ago
serial.c serial: Use fallback rate of 9600 to match the default db rate 9 months ago
serial_local.h *: Do config changes on the fly, restarting modules as needed 12 months ago
session.c session: Avoid having to use strlen, check for null byte while walking 8 months ago
session.h *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
settings.c *: Minor cleanups, remove dead variables, fix some error paths 9 months ago
settings.h logger: Add RFC3164 (BSD) syslog support 8 months ago
sha1.c *: Move some big char buffers from the stack to the heap 2 years ago
sha1.h sha1: Import from OpenBSD 2 years ago
sha2.c sha1: Import from OpenBSD 2 years ago
sha2.h sha1: Import from OpenBSD 2 years ago
signup.c session: Fix 'new'/'signup' login going straight to signup 11 months ago
signup.h signup: Add interactive user account creation 2 years ago
strcasecmp.c strcasecmp: Add from OpenBSD 2 years ago
subtext.h *: Move views out of database to flat files 11 months ago
subtext.π.r Rez: 4.0 8 months ago
sysop.c logger: Add RFC3164 (BSD) syslog support 8 months ago
sysop.h session: Add session_menu, use it everywhere 2 years ago
tcp.c tcp: Add copyright header 1 year ago
tcp.h dnr: Don't require a pointer to a pointer for DNSResolveName 1 year ago
telnet.c telnet: Static init nit 8 months ago
telnet.h *: Do config changes on the fly, restarting modules as needed 12 months ago
user.c user: Add user_first_sysop_id() 11 months ago
user.h user: Add user_first_sysop_id() 11 months ago
user_settings.c user_settings: Accept capital X in terminal cols/lines response 9 months ago
user_settings.h session: Don't set default terminal type, if node doesn't, prompt user 2 years ago
uthread.c uthread: Add uthread_wakeup 1 year ago
uthread.h uthread: Add uthread_wakeup 1 year ago
util.c util: Make xalloc tables dynamically allocated 8 months ago
util.h util: Add dynamic malloc tracking 8 months ago
zip.c zip: Make zip_read_file return an error code depending on failure 1 year ago
zip.h zip: Make zip_read_file return an error code depending on failure 1 year ago
zmodem.c zmodem: Set ZP0 to something in ZRINIT 1 year ago
zmodem.h *: Move some big char buffers from the stack to the heap 2 years ago
tetab.c tetab: Remove, no longer needed 11 months ago
tetab.h tetab: Remove, no longer needed 11 months ago

README
Subtext: a multi-user BBS server for Macintosh
Written by joshua stein <jcs@jcs.org> - http://jcs.org/subtext

Subtext is free software; see the LICENSE file for copyright/licensing.

Introduction
==================================================================
Subtext is a multi-user BBS server that is developed and runs on Macintosh
System 6 and above. It supports dialin access through a serial modem and
Telnet access through MacTCP. For full documentation, see the GUIDE file.

Support
==================================================================
Updates to Subtext are published on the Kludge BBS and can be downloaded
on the World Wide Web at http://jcs.org/subtext

For questions and support running a Subtext BBS, connect to the
Kludge BBS by Telnet/Web at klud.ge, or modem at +1-312-654-0090.

The source code for Subtext can also be found on AmendHub at
http://amendhub.com/jcs/subtext

Release History
==================================================================
4.0 - 2024-02-19
  - Move views out of database to flat files in a "views" directory, allowing
    them to be edited by other text editors and backed up; views are cached
    at startup and can be reloaded through the sysop menu
  - Speed up telnet IAC negotiation to avoid delay after connect, avoid doing
    NEWENV unless talking to the trusted proxy
  - Add BSD Syslog (RFC3164) support, sending all logged events to a
    configured syslog server
  - When opening the last-opened database at startup, if the Command key
    is held down, do not open it and prompt for a different one
  - Add support for {{center_XX}} template variable
  - Remove ATQ0 from default modem init string to be able to handle when
    the modem responds to init with an error
  - When tossing FTN packets, log failures and move files to the "bad"
    directory, then send local mail to sysop
  - Add page number to prompt in boards menus
  - Prevent running daily pruning jobs if system clock year is less than 2024,
    to avoid pruning all mail and sessions if the clock gets reset
  - Fix 'new'/'signup' logins not going directly to the signup menu
  - Fix bug in modem handling where a session wasn't properly disassociated
    when the session was forcefully closed
  - Fix location lookup when connecting through the trusted proxy

3.1 - 2023-11-21
  - In "who" command, show which area of the BBS each user is currently in
  - Add a "logged_in_time" template variable, helpful for signoff template
    showing how long the user was logged in for
  - Find proper per-message originating and destination net/zone numbers
    from FTN messages when different than FTN packet header
  - Properly handle skip commands received from binkp servers to end the
    session and retry later
  - Abort idle binkp connections in case of server issues
  - Set the software major version in outgoing FTN packets and use the
    proper code for software that has not been assigned an id such as Subtext
  - Include the actual timestamp of FTN packet files when sending through
    binkp
  - Fix a bug encoding FTN packets with the wrong termination
  - Fix a bug where tossing FTN packets was adding messages for areas
    not subscribed to into the previously used board
  - Fix a bug in the console where an assertion was erroneously triggered
    when the cursor was at the far corner but in bounds

3.0 - 2023-11-11
  - Add support for using an IP geolocation database to lookup connecting
    telnet IP addresses and log their location, storing it in the session
    log and making it available in 'who' and 'last' menus
  - Dynamically apply config changes made from the sysop menu without
    requiring a restart
  - Add a config setting to change the number of rings to wait before
    answering the modem, possibly to allow for caller ID information to
    come through after the first ring which will get logged
  - Add '&D2' (hangup on DTR flash) to default modem initialization string
    to make it clear we need it for proper hangup
  - Do faster sorting in many places
  - Allow "guest", "new", and "signup" logins to be made in mixed-case
  - Add 'l' key in post view in boards to list posts, and 's' to show the post
    again
  - In sysop settings menu, make 'q' stop pagination at the 'more' prompt
  - Fix a bug in sysop settings editor that could have caused config
    corruption if the sesion was disconnected before exiting/saving the
    editor
  - Do more TCP connection status checks during binkp connections to detect
    dropped connections
  - Fix a bug in pagination that caused extra newlines to be shown in certain
    terminals, and a bug that caused incorrect wrapping when the first
    character of a post was a newline
  - Fix a bug in boards that was causing '>' not to work in some cases
  - Fix text selection and copying in the logger window

2.0.1 - 2023-05-02
  - Fix corrupted default menu options that prevented first launch
  - Minor telnet and ZMODEM compatibility fixes

2.0 - 2023-05-01
  - Add support for FTN (FidoNet) EchoMail and NetMail, with support for
    fetching from and sending to a Binkp hub, including PKZIP archives
    of packets
  - Move mail to a separate database file for easier backup and less
    chance of corrupting the user database
  - Implement sysop paging/answering, which displays the user's message
    on the screen with a beep
  - Implement custom "NoModem" protocol for file transfers, used when a
    host is connecting through the trusted host assuming this is a web
    gateway
  - List more items per screen in boards, files, and sysop, and change
    input handler to collect multiple digits
  - List newest mail first and a global setting to automatically prune
    mail after a configurable amount of days
  - Add option to sysop menu to forcefully hangup/reset the modem, and
    an option to reboot the system
  - Add timezone UTC offset setting, use to convert timestamps in FTN
    messages to local timezone, and add a "timezone" template variable
  - Add setting for separate maximum idle time for sysops (which can be
    set to 0 to disable idling out sysop sessions)
  - Mask password fields in sysop settings menu
  - Add BOARD_LIST_BOARDS command for main menu, which lists all local
    boards
  - Faster session log pruning, and fix a bug where failed logins were
    still being written to the session log
  - Fix SHA1 checksum calculation for uploaded files and show occasional
    progress during calculation
  - Implement folder file description/notes editing and add an option for
    sysop to recalculate SHA1 checksum before saving
  - Try to handle malloc failures gracefully everywhere rather than exiting
  
1.1 - 2022-12-01
  - Fix crash that could occur when more than one user is in chat, one user
    quits chat, and then remaining users continue to chat
  - Fix problem when running under non-MultiFinder where subsequent
    runs would fail with errors opening board and folder databases because
    they were not properly closed on the first run

1.0 - 2022-11-22
  - Initial release!