
ssh-chat in C moderno

Software BBS Generale
SSH-Chatter è nato da una reimplementazione in C del server Go ssh-chat. Rispecchia/estende il comportamento originale utilizzando pattern C moderni e un core piccolo e testabile. Il server ascolta connessioni SSH/TELNET e colloca ogni utente autenticato in una chat room condivisa che espone la stessa superficie di comandi dell'implementazione di riferimento in Go.
Sai perché ci vuole così tanto per capire il C? Perché è un istinto.
/rss list, /rss read <tag>, più /rss add <url> <tag> e /rss del <tag> (solo operatori) così la stanza può navigare i titoli insieme./delete-msg per la pulizia mirata della cronologia chat./bbs che sblocca un sistema di bacheca retrò immersivo con tag, commenti, bumping e un compositore multi-linea.
bumped (attività recente), hot (trend per punteggio e commenti), top (punteggio netto più alto di upvote) o new (data di creazione) usando list [hot|top|new|bumped|all].search <query>.▲ 12 💬 5) direttamente negli elenchi./bbs nella modalità BBS./asciiart con limite di 640 righe, un cooldown di dieci minuti per IP, output multi-linea e scorciatoie da tastiera per annullare con Ctrl+A e inviare con Ctrl+S o il predefinito >/__ARTWORK_END> sensibile alla locale./birthday per registrare compleanni, /grant <ip> così gli operatori LAN possono delegare privilegi per indirizzo, e /revoke <ip> così gli amministratori LAN principali possono reclamarli./ban che accettano indirizzi IP grezzi insieme ai nomi utente./weather <città> per previsioni globali rapide.

Il codice è intenzionalmente compatto in modo che i nuovi contributori possano navigarlo rapidamente:
| Percorso | Descrizione |
|---|---|
src/main.c | Analisi della riga di comando e bootstrap del processo (indirizzo di bind, porta, MOTD, directory delle chiavi host). |
src/host_aggregate.c, include/ssh_chatter/host.h | Implementazione dell'host chat – ciclo di vita della sessione, gestione MOTD e hook per la futura logica di broadcast dei messaggi. |
src/host | Sottosistemi host modulari che compilano in una singola unità di traduzione tramite src/host_aggregate.c. |
include/ssh_chatter | Header condivisi per il demone, strumenti di stress e il backend di traduzione. |
include/ssh_chatter/contexts | Definizioni per session_ctx_t e strutture correlate che incapsulano lo stato per connessione. |
data/banner/banner | Banner di benvenuto di esempio a cui si può puntare con CHATTER_WELCOME_BANNER. |
scripts/install_chatter_service.sh | Installer di comodo che compila il binario, lo installa in /usr/local/bin e configura un'unità systemd (chatter.service). |
scripts/install_dependencies.sh | Installer di pacchetti minimo per i prerequisiti di build su sistemi Debian/Ubuntu. |

mainIl branch work diverge regolarmente dallo sviluppo upstream in modo che funzionalità più grandi possano incubare senza interrompere il traffico di produzione. Quando è il momento di sincronizzarsi con main, esegui il pull dell'albero più recente e uniscilo localmente prima di aprire una pull request:```bash
git fetch origin main
git checkout work
git merge --no-ff origin/main
Risolvi eventuali conflitti sul posto (le routine helper in `src/host_aggregate.c` rispecchiano già la struttura usata su `main`, quindi i merge sono generalmente semplici) ed esegui `make` per confermare che la build abbia ancora successo prima di inviare il risultato.
## Hooks di automazione
- `host_snapshot_last_captcha` espone il prompt e la risposta del captcha generato più di recente insieme a un timestamp, in modo che i client esterni possano superare le sfide per conto di automazione non presidiata.
## Rafforzamento della sicurezza