mirror of
https://github.com/m1ngsama/TNT.git
synced 2026-02-08 00:54:03 +00:00
TNT's Not Tunnel
- Convert message_load() file position array from fixed 1000 to dynamic: * Start with capacity of 1000, grow by 2x when needed * Use malloc/realloc for flexible memory management * Proper cleanup with free() after use * Graceful handling of memory allocation failures - Enhance setup_host_key() error handling: * Validate key file size (reject 0 bytes and >10MB) * Automatically regenerate if key file is empty * Verify and fix insecure permissions (must be 0600) * Better error messages with file size reporting - Improve client thread resource cleanup: * Use pthread_attr for explicit detached thread creation * Add pthread_mutex_destroy on thread creation failure * Proper cleanup order: mutex -> channel -> session -> memory * Add error logging with strerror() for thread failures These changes address: - Fixed 1000-line limit causing message truncation - Corrupted/empty key file handling - Permission race conditions - Resource leaks on thread creation failure Prevents: - DoS via large log files - Service startup failures from bad key files - Memory/handle leaks under error conditions |
||
|---|---|---|
| .github/workflows | ||
| include | ||
| src | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CICD.md | ||
| DEPLOYMENT.md | ||
| HACKING | ||
| install.sh | ||
| LICENSE | ||
| Makefile | ||
| QUICKREF | ||
| README | ||
| README.md | ||
| test_basic.sh | ||
| test_stress.sh | ||
| tnt.service | ||
TNT
Terminal chat server. Vim-style interface. SSH-based.
Install
curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh
Or download from releases.
Run
tnt # port 2222
tnt -p 3333 # custom port
PORT=3333 tnt # env var
Connect: ssh -p 2222 localhost
Keys
INSERT (default)
ESC→ NORMALEnter→ sendBackspace→ delete
NORMAL
i→ INSERT:→ COMMANDj/k→ scrollg/G→ top/bottom?→ help
COMMAND
:list→ users:help→ commandsESC→ back
Build
make # normal
make debug # with symbols
make asan # sanitizer
make check # static analysis
Requires: libssh
Deploy
See DEPLOYMENT.md for systemd setup.
Files
messages.log chat history
host_key SSH key (auto-gen)
tnt.service systemd unit
Test
./test_basic.sh # functional
./test_stress.sh 50 # 50 clients
Docs
README- man page styleHACKING- dev guideDEPLOYMENT.md- productionCICD.md- automationQUICKREF- cheat sheet
License
MIT