
आधुनिक c में ssh-chat

सामान्य बीबीएस सॉफ्टवेयर
SSH-Chatter, Go ssh-chat सर्वर के C पुनर्कार्यान्वयन से शुरू हुआ है। यह मूल व्यवहार को दर्पण/विस्तारित करता है, जबकि आधुनिक C पैटर्न और एक छोटा, परीक्षण योग्य कोर का उपयोग करता है। सर्वर SSH/TELNET कनेक्शन सुनता है और प्रत्येक प्रमाणित उपयोगकर्ता को एक साझा चैट कक्ष में रखता है जो Go संदर्भ कार्यान्वयन के समान कमांड सतह प्रस्तुत करता है।
क्या आप जानते हैं कि C को समझने में इतना समय क्यों लगता है? क्योंकि यह एक वृत्ति है।
/rss list, /rss read <tag>, साथ ही /rss add <url> <tag> और /rss del <tag> (केवल संचालकों के लिए) से सुलभ है, ताकि कक्ष एक साथ शीर्षक ब्राउज़ कर सके।/delete-msg।/bbs कमांड एक इमर्सिव रेट्रो बुलेटिन बोर्ड सिस्टम को अनलॉक करता है जिसमें टैग, टिप्पणियाँ, बम्पिंग और एक मल्टी-लाइन कम्पोज़र है।
bumped (हालिया गतिविधि), hot (स्कोर और टिप्पणियों द्वारा ट्रेंडिंग), top (उच्चतम शुद्ध अपवोट स्कोर), या new (निर्माण तिथि) द्वारा क्रमबद्ध देखने के लिए list [hot|top|new|bumped|all] का उपयोग करें।search <query> के साथ पोस्ट शीर्षकों, मुख्य भागों, लेखकों या टैग को केस-असंवेदनशील रूप से तुरंत खोजें।▲ 12 💬 5) में शुद्ध अपवोट स्कोर और टिप्पणी गणना प्रदर्शित करता है।/bbs उपसर्ग की आवश्यकता के बिना स्वचालित रूप से कमांड रूट करता है।/asciiart लाइव कम्पोज़र जिसमें 640-लाइन सीमा, प्रति-आईपी दस मिनट का कूलडाउन, मल्टी-लाइन आउटपुट, और Ctrl+A से रद्द करने और Ctrl+S या स्थानीय जागरूक >/__ARTWORK_END> डिफ़ॉल्ट के साथ सबमिट करने के लिए कीबोर्ड शॉर्टकट।/birthday जन्मदिन पंजीकृत करने के लिए, /grant <ip> ताकि LAN संचालक पते द्वारा विशेषाधिकार प्रदान कर सकें, और /revoke <ip> ताकि शीर्ष LAN प्रशासक उन्हें वापस ले सकें।/ban अपग्रेड जो उपयोगकर्ता नामों के साथ-साथ कच्चे IP पतों को भी स्वीकार करते हैं।/weather <city> त्वरित वैश्विक पूर्वानुमानों के लिए।

कोडबेस जानबूझकर कॉम्पैक्ट है ताकि नए योगदानकर्ता इसे जल्दी से नेविगेट कर सकें:
| पथ | विवरण |
|---|---|
src/main.c | कमांड-लाइन पार्सिंग और प्रक्रिया बूटस्ट्रैप (बाइंड पता, पोर्ट, MOTD, होस्ट की निर्देशिका)। |
src/host_aggregate.c, include/ssh_chatter/host.h | चैट होस्ट कार्यान्वयन – सत्र जीवनचक्र, MOTD हैंडलिंग, और भविष्य के संदेश प्रसारण तर्क के लिए हुक। |
src/host | मॉड्यूलर होस्ट उपप्रणालियाँ जो src/host_aggregate.c के माध्यम से एकल अनुवाद इकाई में संकलित होती हैं। |
include/ssh_chatter | डेमॉन, स्ट्रेस टूल्स और अनुवाद बैकएंड के लिए साझा हेडर। |
include/ssh_chatter/contexts | session_ctx_t और संबंधित संरचनाओं की परिभाषाएँ जो प्रति-कनेक्शन स्थिति को समाहित करती हैं। |
data/banner/banner | नमूना स्वागत बैनर जिसे CHATTER_WELCOME_BANNER से इंगित किया जा सकता है। |
scripts/install_chatter_service.sh | सुविधाजनक इंस्टॉलर जो बाइनरी बनाता है, इसे /usr/local/bin के अंतर्गत स्थापित करता है, और एक systemd यूनिट (chatter.service) से जोड़ता है। |
scripts/install_dependencies.sh | Debian/Ubuntu सिस्टम पर बिल्ड पूर्वापेक्षाओं के लिए न्यूनतम पैकेज इंस्टॉलर। |

main के साथ अद्यतन रहनाwork शाखा नियमित रूप से अपस्ट्रीम विकास से अलग होती है ताकि बड़ी सुविधाएँ उत्पादन ट्रैफ़िक को बाधित किए बिना विकसित हो सकें। जब main के साथ सिंक्रोनाइज़ करने का समय हो, तो नवीनतम ट्री खींचें और इसे स्थानीय रूप से मर्ज करें, फिर एक पुल अनुरोध खोलें:```bash
git fetch origin main
git checkout work
git merge --no-ff origin/main
किसी भी विरोध को स्थान पर हल करें ( `src/host_aggregate.c` हेल्पर रूटीन पहले से ही `main` पर उपयोग किए जाने वाले लेआउट को दर्पण करते हैं, इसलिए मर्ज आमतौर पर सीधे होते हैं) और परिणाम को पुश करने से पहले बिल्ड अभी भी सफल होता है यह सुनिश्चित करने के लिए `make` चलाएँ।
## स्वचालन हुक
- `host_snapshot_last_captcha` सबसे हाल ही में उत्पन्न कैप्चा प्रॉम्प्ट और उत्तर को एक टाइमस्टैम्प के साथ उजागर करता है ताकि बाहरी क्लाइंट बिना ध्यान दिए स्वचालन की ओर से चुनौतियों को पार कर सकें।
## सुरक्षा सुदृढ़ीकरण
- `scripts/safe_permission.sh` रनटाइम डेटा फ़ाइलों (BBS स्थिति, वोट स्थिति, कूलडाउन स्नैपशॉट और सामान्य चैटर स्थिति) पर स्वामित्व और मोड को कसता है। इसे तैनाती के बाद चलाएं ताकि डेटा निर्देशिका को `ssh-chatter` तक सीमित किया जा सके और यह सुनिश्चित किया जा सके कि प्रत्येक फ़ाइल `0600` पर सेट है। स्पष्ट पथ पास करके या निष्पादन से पहले `STATE_ROOT` या संबंधित `CHATTER_*_FILE` पर्यावरण चर निर्यात करके लक्ष्यों को ओवरराइड करें।
- एक पृष्ठभूमि BBS वॉचडॉग समय-समय पर पोस्ट और टिप्पणियों को AI मॉडरेशन पाइपलाइन (Gemini प्राथमिक, Ollama बैकअप) के माध्यम से फीड करता है। चिह्नित पोस्ट स्वचालित रूप से हटा दी जाती हैं और कमरे में एक सूचना प्रसारित की जाती है।
- चैट संदेश, ASCII कला, और BBS पोस्ट/टिप्पणियाँ AI मॉडरेशन पाइपलाइन से गुज़रती हैं। इसे `CHATTER_SECURITY_AI=on` से सक्षम करें (Gemini के लिए `GEMINI_API_KEY` सेट करें; डेमॉन स्वचालित रूप से `http://127.0.0.1:11434` पर स्थानीय Ollama एंडपॉइंट पर वापस आ जाता है)। `CHATTER_SECURITY_FILTER=off` से सब कुछ अक्षम करें। यदि सभी प्रदाता विफल हो जाते हैं, तो फ़िल्टर स्वचालित रूप से स्वयं को अक्षम कर देता है ताकि बातचीत जारी रखी जा सके, बजाय चुपचाप सामग्री को गिराने के।
- SSH ट्रांसपोर्ट आधुनिक कुंजी विनिमय, सिफर और MAC पर पिन किया गया है, और प्रत्येक ब्रिज पेलोड को ट्रिपल AES-256-GCM प्याज में लपेटा गया है ताकि रिले केवल सिफरटेक्स्ट देख सकें।
- स्तरित फ़िल्टर को ट्रिगर करने वाले संदिग्ध सबमिशन अब प्रति-IP ट्रैक किए जाते हैं; बार-बार हिट होने पर सक्षम होने पर स्वचालित किक और बैन ट्रिगर होता है, जबकि तेज़ पुन: कनेक्ट डिटेक्टर लंबी रिकवरी विंडो की अनुमति देता है ताकि अस्थिर नेटवर्क सत्र बिना दंडित हुए फिर से जुड़ सकें। स्वचालित बैन प्रविष्टियाँ **डिफ़ॉल्ट रूप से बंद** हैं; उन्हें सक्षम करने के लिए `CHATTER_AUTO_BAN=on` (या `true`/`1`) सेट करें, या चेतावनियों और थ्रॉटलिंग को बनाए रखने के लिए वेरिएबल को अनसेट छोड़ दें बिना स्वचालित बैन प्रविष्टियाँ लिखे।
- ऑपरेटर `CHATTER_PROTECTED_IPS` (अल्पविराम से अलग, डिफ़ॉल्ट `127.0.0.1,::1,192.168.0.1`) के साथ भरोसेमंद इनग्रेस पॉइंट (VPN एक्ज़िट, रिवर्स प्रॉक्सी, लोकलहोस्ट) को चिह्नित कर सकते हैं ताकि आपातकालीन प्रतिबंध कभी भी डेमॉन को अपने नियंत्रण विमान से बाहर न लॉक कर दें।
## फ़ाइल भंडारण और स्थानांतरण