# 📝 FEATURES ADĂUGATE - Host Hiding & Extended Accounts **Data**: 23 Februarie 2026 **Versiune**: v1.8.0+ **Status**: ✅ **ADĂUGATE ÎN TEMPLATE ircd.conf** --- ## 🎯 OVERVIEW Am adăugat **4 features lipsă** în template-ul de configurare `install.sh` pentru funcționalitate completă a host hiding și compatibilitate cu serviciile IRC moderne. --- ## ✅ FEATURES ADĂUGATE ### 1. HIDDEN_HOST_QUIT ✨ **Locație în install.sh**: Linia ~1010 (secțiunea Host hiding) **Ce face**: - Controlează dacă să se trimită mesaje de quit când utilizatorii setează/resetează modul +x (hidden host) - Când e `TRUE`, utilizatorii vor vedea mesaje "Registered" / "UnRegistered" în loc de quit real **Valoare setată**: `TRUE` (default recomandat) **Exemplu comportament**: ``` # Cu HIDDEN_HOST_QUIT = TRUE: * User has quit IRC (Registered) # Când setează +x * User has quit IRC (UnRegistered) # Când resetează -x # Cu HIDDEN_HOST_QUIT = FALSE: * User has quit IRC (Changing host) # Mesaj generic ``` **De ce e important**: - ✅ Oferă feedback clar utilizatorilor când își schimbă hostname-ul - ✅ Previne confuzia (pare ca o reconectare, nu ca un quit real) - ✅ Standardizat în majoritatea rețelelor IRC moderne --- ### 2. HIDDEN_HOST_SET_MESSAGE 📝 **Locație în install.sh**: Linia ~1011 **Ce face**: - Mesajul afișat când un utilizator **SETEAZĂ** modul +x (activează hidden host) **Valoare setată**: `"Registered"` (default) **Exemplu**: ``` # Utilizator face: /mode Nick +x * Nick has quit IRC (Registered) * Nick (hidden@users.underchat.org) has joined #channel ``` **Customizare**: Poți schimba în: - `"is now hidden"` - Mesaj în engleză - `"Host ascuns"` - Mesaj în română - `"Protected"` - Sugerează protecție --- ### 3. HIDDEN_HOST_UNSET_MESSAGE 📝 **Locație în install.sh**: Linia ~1012 **Ce face**: - Mesajul afișat când un utilizator **RESETEAZĂ** modul -x (dezactivează hidden host) **Valoare setată**: `"UnRegistered"` (default) **Exemplu**: ``` # Utilizator face: /mode Nick -x * Nick has quit IRC (UnRegistered) * Nick (real@203.0.113.45) has joined #channel ``` **Customizare**: Poți schimba în: - `"is now visible"` - Mesaj clar - `"Host vizibil"` - Română - `"Unprotected"` - Sugerează lipsa protecției --- ### 4. EXTENDED_ACCOUNTS 🔐 **Locație în install.sh**: Linia ~999 (secțiunea Security & Authentication) **Ce face**: - Activează suport pentru **sintaxa extinsă AC** (Account) folosită de servicii IRC moderne - `TRUE` = Folosește subcomenzile R, M, U, C, A, D, H pentru operații avansate - `FALSE` = Folosește sintaxa veche (compatibilitate services vechi) **Valoare setată**: `TRUE` (default, recomandat) **Când să folosești TRUE**: - ✅ X3 (serviciu recomandat pentru UnderChat) - ✅ Anope 2.x cu protocol P10 - ✅ Atheme IRC Services moderne **Când să folosești FALSE**: - ⚠️ Services foarte vechi (pre-2010) - ⚠️ Custom services cu protocol legacy **Subcomenzile disponibile cu EXTENDED_ACCOUNTS = TRUE**: | Subcomandă | Funcție | |------------|---------| | **R** | Rename account (redenumire cont) | | **M** | Merge accounts (fuziune conturi) | | **U** | Unregister account (ștergere cont) | | **C** | Create account (creare cont) | | **A** | Authenticate (autentificare) | | **D** | Deauthenticate (deautentificare) | | **H** | Set hidden host (setare hostname ascuns) | **Exemplu protocol**: ``` # Cu EXTENDED_ACCOUNTS = TRUE (modern): :X3!services@underchat.org AC Nick A 1234567890 # Cu EXTENDED_ACCOUNTS = FALSE (vechi): :X3!services@underchat.org AC Nick 1234567890 ``` **De ce e important**: - ✅ Permite serviciilor să efectueze operații complexe pe conturi - ✅ Suport complet pentru redenumire/fuziune conturi - ✅ Compatibilitate cu X3 și servicii moderne - ✅ Funcții avansate de management conturi --- ## 📊 COMPARAȚIE ÎNAINTE/DUPĂ ### ÎNAINTE (fără features): ```conf features { # Host hiding "HOST_HIDING" = "TRUE"; "HOST_HIDING_STYLE" = "3"; "HIDDEN_HOST" = "users.underchat.org"; # ... alte setări ... } ``` **Probleme**: - ❌ Utilizatorii văd mesaje generice la schimbarea host-ului - ❌ Lipsește feedback când setează +x/-x - ❌ Services nu pot face operații avansate pe conturi --- ### DUPĂ (cu features noi): ```conf features { # Security & Anti-Abuse # ... # Extended Accounts Support (pentru servicii X3/IRC Services) "EXTENDED_ACCOUNTS" = "TRUE"; # Host hiding "HOST_HIDING" = "TRUE"; "HOST_HIDING_STYLE" = "3"; "HIDDEN_HOST" = "users.underchat.org"; "HIDDEN_IP" = "127.0.0.1"; "HOST_HIDING_PREFIX" = "UnderChat"; "HOST_HIDING_KEY1" = "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW"; "HOST_HIDING_KEY2" = "sdfjkLJKHlkjdkfjsdklfjlkjKLJ"; "HOST_HIDING_KEY3" = "KJklJSDFLkjLKDFJSLKjlKJFlkjS"; "HOST_HIDING_COMPONENTS" = "1"; # Host hiding - Mesaje set/unset +x "HIDDEN_HOST_QUIT" = "TRUE"; "HIDDEN_HOST_SET_MESSAGE" = "Registered"; "HIDDEN_HOST_UNSET_MESSAGE" = "UnRegistered"; } ``` **Beneficii**: - ✅ Mesaje clare când utilizatorii schimbă hostname-ul - ✅ Feedback vizual pentru +x/-x - ✅ Suport complet pentru X3 și servicii moderne - ✅ Operații avansate pe conturi (rename, merge, etc.) --- ## 🎮 EXEMPLE UTILIZARE ### Scenario 1: Utilizator Se Autentifică **Cu servicii X3 și EXTENDED_ACCOUNTS = TRUE**: ``` 1. User conectează: Nick!user@203.0.113.45 2. /msg X@services.underchat.org LOGIN username password 3. X autentifică user-ul cu AC command (subcomandă A) 4. User primește +x automat (dacă configured) 5. * Nick has quit IRC (Registered) 6. * Nick (hidden@users.underchat.org) has joined #channel ``` **Mesaj vizibil**: ``` Nick!user@203.0.113.45 → Nick!hidden@users.underchat.org (Registered) ``` ### Scenario 2: Utilizator Manual Setează +x ``` 1. Nick!user@real-hostname.isp.com 2. /mode Nick +x 3. * Nick has quit IRC (Registered) 4. * Nick (UnderChat-554F4C88D.isp.com) has joined #channel ``` **Explicație**: - HOST_HIDING_STYLE = 3 → Authenticated users get style 1, unauthenticated get style 2 - Dacă user e autentificat: `users.underchat.org` - Dacă user e guest: `UnderChat-HASH.isp.com` (Unreal style) ### Scenario 3: Utilizator Resetează -x ``` 1. Nick!hidden@users.underchat.org 2. /mode Nick -x 3. * Nick has quit IRC (UnRegistered) 4. * Nick (user@real-hostname.isp.com) has joined #channel ``` **NOTĂ**: Funcționează doar dacă `ALLOWRMX = TRUE` (implicit FALSE pentru securitate). --- ## ⚙️ CONFIGURARE AVANSATĂ ### Customizare Mesaje (Opțional) Dacă vrei mesaje în română sau custom: ```conf # În ircd.conf: features { "HIDDEN_HOST_QUIT" = "TRUE"; "HIDDEN_HOST_SET_MESSAGE" = "Hostname ascuns"; "HIDDEN_HOST_UNSET_MESSAGE" = "Hostname vizibil"; } ``` **Rezultat**: ``` * Nick has quit IRC (Hostname ascuns) # La +x * Nick has quit IRC (Hostname vizibil) # La -x ``` ### Dezactivare Mesaje (Dacă Dorești) ```conf features { "HIDDEN_HOST_QUIT" = "FALSE"; # HIDDEN_HOST_SET_MESSAGE și HIDDEN_HOST_UNSET_MESSAGE sunt ignorate } ``` **Rezultat**: ``` * Nick (hidden@users.underchat.org) has joined #channel # Niciun mesaj de quit, doar join cu noul hostname ``` ### Pentru Services NON-X3 Dacă folosești services vechi sau custom: ```conf features { "EXTENDED_ACCOUNTS" = "FALSE"; } ``` **ATENȚIE**: Pierzi funcționalități avansate (rename accounts, merge, etc.). --- ## 📚 REFERINȚE & DOCUMENTAȚIE ### Fișiere Relevante: - **doc/readme.features** (liniile 1046-1070, 1511-1528) - **install.sh** (liniile ~999, ~1010-1012) - **ircd/s_user.c** - Implementarea host hiding - **ircd/s_bsd.c** - Gestionarea mesajelor quit ### RFC & Standarde: - **RFC 2812** - IRC Client Protocol (modul +x) - **P10 Protocol** - UnderNet server-to-server (AC command) ### Services Compatibile: | Service | EXTENDED_ACCOUNTS | Versiune Minimă | |---------|-------------------|-----------------| | **X3** | TRUE ✅ | 1.8+ | | **Anope 2.x** | TRUE ✅ | 2.0+ | | **Atheme** | TRUE ✅ | 7.x+ | | **Services vechi** | FALSE ⚠️ | Pre-2010 | --- ## 🐛 TROUBLESHOOTING ### Problemă: Mesajele de quit nu apar **Cauză**: `HIDDEN_HOST_QUIT = FALSE` sau services nu trimit AC correct. **Soluție**: ```bash # Verifică în ircd.conf: grep "HIDDEN_HOST_QUIT" $HOME/ircd/lib/ircd.conf # Ar trebui să fie: "HIDDEN_HOST_QUIT" = "TRUE"; # Dacă e FALSE, modifică și restart: nano $HOME/ircd/lib/ircd.conf killall ircd $HOME/ircd/bin/ircd -f $HOME/ircd/lib/ircd.conf ``` ### Problemă: Services nu pot redenumi conturi **Cauză**: `EXTENDED_ACCOUNTS = FALSE` sau services incompatibile. **Soluție**: ```bash # Verifică: grep "EXTENDED_ACCOUNTS" $HOME/ircd/lib/ircd.conf # Ar trebui să fie TRUE pentru X3: "EXTENDED_ACCOUNTS" = "TRUE"; # Verifică versiunea services: /msg X@services.underchat.org VERSION # Ar trebui X3 1.8+ ``` ### Problemă: Utilizatorii nu pot face -x (remove hidden host) **Cauză**: `ALLOWRMX = FALSE` (default pentru securitate). **Soluție (DOAR dacă vrei să permiți)**: ```conf # În ircd.conf: features { "ALLOWRMX" = "TRUE"; # Permite utilizatorilor să facă -x } ``` **ATENȚIE**: Permiterea -x poate expune IP-uri reale. Recomandăm FALSE pentru securitate. --- ## ✅ VERIFICARE POST-INSTALARE ### 1. Verifică Features în Configurație ```bash # După instalare, verifică că features-urile sunt prezente: grep -A 5 "Host hiding - Mesaje" $HOME/ircd/lib/ircd.conf grep "EXTENDED_ACCOUNTS" $HOME/ircd/lib/ircd.conf ``` **Output așteptat**: ```conf # Host hiding - Mesaje set/unset +x "HIDDEN_HOST_QUIT" = "TRUE"; "HIDDEN_HOST_SET_MESSAGE" = "Registered"; "HIDDEN_HOST_UNSET_MESSAGE" = "UnRegistered"; # Extended Accounts Support "EXTENDED_ACCOUNTS" = "TRUE"; ``` ### 2. Test Manual cu IRC Client ```bash # Conectează cu client IRC: /server localhost 6667 /nick TestUser /mode TestUser +x # Ar trebui să vezi: # * TestUser has quit IRC (Registered) # * TestUser (hidden@users.underchat.org) has joined #channel # Reset: /mode TestUser -x # Ar trebui să vezi: # * TestUser has quit IRC (UnRegistered) # * TestUser (user@real-host.com) has joined #channel ``` ### 3. Verifică Logs Pentru Erori ```bash # Verifică că nu sunt erori de configurare: tail -f $HOME/ircd/log/ircd.log | grep -i "feature\|hidden\|account" ``` **Ar trebui**: Nicio eroare legată de features-urile noi. --- ## 🎯 NEXT STEPS ### Pentru Utilizatori Existenți: ```bash # 1. Pull noua versiune cd underchat-ircd git pull origin main # 2. Re-instalare (păstrează config backup) cp $HOME/ircd/lib/ircd.conf /backup/ircd.conf.old ./install.sh # 3. Merge manual features-urile noi în config vechi (dacă dorești) # SAU lasă configurația nouă (recomandăm) # 4. Restart server killall ircd $HOME/ircd/bin/ircd -f $HOME/ircd/lib/ircd.conf # 5. Test funcționalitatea +x/-x ``` ### Pentru Instalări Noi: ```bash # Features-urile sunt AUTOMAT incluse în template! ./install.sh # Alege configurările standard → features-urile vor fi deja active ``` --- ## 🏆 BENEFICII ### Cu Aceste Features: - ✅ **User Experience mai bună** - Mesaje clare când se schimbă hostname-ul - ✅ **Compatibilitate X3** - Suport complet pentru servicii moderne - ✅ **Operații avansate** - Rename/merge accounts funcționează - ✅ **Standardizare** - Comportament consistent cu alte rețele IRC - ✅ **Feedback vizual** - Utilizatorii știu când +x/-x are efect ### Fără Aceste Features: - ❌ Mesaje generice de quit (confuză) - ❌ Services nu pot face rename accounts - ❌ Lipsă feedback pentru +x/-x - ❌ Incompatibilitate cu X3 modern --- ## 📝 CHANGELOG ### v1.8.0+ (23 Februarie 2026) **Added**: - ✅ `HIDDEN_HOST_QUIT` = TRUE în template ircd.conf - ✅ `HIDDEN_HOST_SET_MESSAGE` = "Registered" - ✅ `HIDDEN_HOST_UNSET_MESSAGE` = "UnRegistered" - ✅ `EXTENDED_ACCOUNTS` = TRUE pentru suport X3/services moderne **Impact**: - Mesaje clare când utilizatorii setează/resetează +x - Suport complet pentru X3 și operații avansate pe conturi - User experience îmbunătățită --- **Adăugat de**: Senior Software Architect **Data**: 23 Februarie 2026 **Versiune**: v1.8.0+ **Status**: ✅ **FEATURES ACTIVE ÎN TEMPLATE** --- **🎉 HOST HIDING & EXTENDED ACCOUNTS SUNT ACUM COMPLETE! 🎉**