
ssh-chat in modernem C

Allgemeine BBS-Software
SSH-Chatter entstand aus einer C-Neuimplementierung des Go ssh-chat Servers. Es spiegelt das ursprüngliche Verhalten wider bzw. erweitert es, verwendet dabei moderne C-Muster und einen kleinen, testbaren Kern. Der Server wartet auf SSH-/TELNET-Verbindungen und platziert jeden authentifizierten Benutzer in einem gemeinsamen Chatraum, der dieselbe Befehlsoberfläche wie die Go-Referenzimplementierung bereitstellt.
Weißt du, warum es so lange dauert, C zu verstehen? Weil es ein Instinkt ist.
/rss list, /rss read <tag>, plus /rss add <url> <tag> und /rss del <tag> (nur für Operatoren), damit der Raum gemeinsam Schlagzeilen durchstöbern kann./delete-msg für gezielte Bereinigung des Chatverlaufs./bbs-Befehl, der ein immersives Retro-Bulletin-Board-System mit Tags, Kommentaren, Bumping und einem mehrzeiligen Editor freischaltet.
bumped (letzte Aktivität), hot (Trending nach Bewertung & Kommentaren), top (höchste Netto-Upvotes) oder new (Erstellungsdatum) anzeigen mit list [hot|top|new|bumped|all].search <query>.▲ 12 💬 5)./bbs-Präfix nötig ist./asciiart Live-Editor mit einem 640-Zeilen-Limit, einer zehnminütigen Abkühlzeit pro IP, mehrzeiliger Ausgabe und Tastaturkürzeln zum Abbrechen mit Strg+A sowie zum Absenden mit Strg+S oder dem gebietsschemaabhängigen Standard >/__ARTWORK_END>./birthday zum Registrieren von Geburtstagen, /grant <ip> damit LAN-Operatoren Berechtigungen per Adresse delegieren können, und /revoke <ip> damit obere LAN-Administratoren sie zurücknehmen können./ban, das jetzt auch rohe IP-Adressen neben Benutzernamen akzeptiert./weather <city> für schnelle globale Wettervorhersagen.

Die Codebasis ist absichtlich kompakt gehalten, damit neue Mitwirkende sich schnell zurechtfinden können:
| Pfad | Beschreibung |
|---|---|
src/main.c | Kommandozeilenanalyse und Prozess-Bootstrap (Bind-Adresse, Port, MOTD, Host-Key-Verzeichnis). |
src/host_aggregate.c, include/ssh_chatter/host.h | Chat-Host-Implementierung – Sitzungslebenszyklus, MOTD-Handling und Hooks für zukünftige Nachrichten-Broadcast-Logik. |
src/host | Modulare Host-Subsysteme, die über src/host_aggregate.c zu einer einzigen Übersetzungseinheit zusammengefasst werden. |
include/ssh_chatter | Gemeinsame Header für den Daemon, die Stresstools und das Übersetzungs-Backend. |
include/ssh_chatter/contexts | Definitionen für session_ctx_t und verwandte Strukturen, die den pro-Verbindungs-Zustand kapseln. |
data/banner/banner | Beispiel-Willkommensbanner, auf das mit CHATTER_WELCOME_BANNER verwiesen werden kann. |
scripts/install_chatter_service.sh | Bequemer Installer, der das Binary erstellt, unter /usr/local/bin installiert und eine systemd-Unit (chatter.service) einrichtet. |
scripts/install_dependencies.sh | Minimales Paket-Installer-Skript für Build-Voraussetzungen auf Debian/Ubuntu-Systemen. |

main bleibenDer work-Zweig weicht regelmäßig von der upstream-Entwicklung ab, damit größere Funktionen
reifen können, ohne den Produktionsverkehr zu unterbrechen. Wenn es an der Zeit ist, sich mit
main zu synchronisieren, holen Sie den aktuellen Baum und führen Sie ihn lokal zusammen, bevor Sie einen Pull-Request eröffnen:```bash
git fetch origin main
git checkout work
git merge --no-ff origin/main
Lösen Sie alle Konflikte direkt (die Hilfsroutinen in `src/host_aggregate.c` spiegeln bereits das Layout von `main` wider, daher sind Merges in der Regel unkompliziert) und führen Sie `make` aus, um zu bestätigen, dass der Build noch erfolgreich ist, bevor Sie das Ergebnis pushen.
## Automation hooks
- `host_snapshot_last_captcha` gibt die zuletzt generierte Captcha-Aufforderung und -Antwort zusammen mit einem Zeitstempel aus, sodass externe Clients im Namen unbeaufsichtigter Automatisierung Herausforderungen bestehen können.
## Security hardening