✨ Add missing features: HIDDEN_HOST_QUIT, EXTENDED_ACCOUNTS
✅ Adăugate 4 features lipsă în template ircd.conf: 1. HIDDEN_HOST_QUIT = TRUE - Mesaje clare când utilizatorii setează/resetează +x - Afișează 'Registered'/'UnRegistered' în loc de quit generic 2. HIDDEN_HOST_SET_MESSAGE = 'Registered' - Mesaj personalizabil când user setează +x (activează hidden host) 3. HIDDEN_HOST_UNSET_MESSAGE = 'UnRegistered' - Mesaj personalizabil când user resetează -x (dezactivează hidden host) 4. EXTENDED_ACCOUNTS = TRUE - Suport pentru sintaxa extinsă AC (X3, Anope 2.x, Atheme) - Permite operații avansate: rename, merge, unregister accounts - Compatibilitate cu servicii IRC moderne 📚 Documentație completă în FEATURES_ADAUGATE_HOST_HIDING.md 🎯 Impact: - User experience îmbunătățită (feedback clar pentru +x/-x) - Compatibilitate completă cu X3 și servicii moderne - Suport pentru operații avansate pe conturi 🔧 Locații modificate: - install.sh linia ~999: EXTENDED_ACCOUNTS - install.sh linia ~1010-1012: HIDDEN_HOST_* features ✅ Testing: bash -n install.sh PASSED ✅ Backwards compatible: DA
This commit is contained in:
parent
775ee410db
commit
a88b06c300
|
|
@ -0,0 +1,502 @@
|
|||
# 📝 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! 🎉**
|
||||
|
||||
|
|
@ -994,6 +994,9 @@ features {
|
|||
"TARGET_LIMITING" = "TRUE";
|
||||
"IDLE_FROM_MSG" = "TRUE";
|
||||
|
||||
# Extended Accounts Support (pentru servicii X3/IRC Services)
|
||||
"EXTENDED_ACCOUNTS" = "TRUE";
|
||||
|
||||
# Host hiding
|
||||
"HOST_HIDING" = "TRUE";
|
||||
"HOST_HIDING_STYLE" = "3";
|
||||
|
|
@ -1005,6 +1008,11 @@ features {
|
|||
"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";
|
||||
|
||||
# Channels
|
||||
"MAXCHANNELSPERUSER" = "60";
|
||||
"CHANNELLEN" = "200";
|
||||
|
|
|
|||
Loading…
Reference in New Issue