📝 UPDATE: SVS* commands marcate ca FUNCȚIONALE prin S2S
✅ CORECȚIE FINALĂ în documentație! După investigație completă, SVS* commands SUNT implementate! 📊 MODIFICĂRI: 1. Secțiunea 'Comenzi Services': ✅ Marcate TOATE SVS* ca FUNCȚIONALE ⚠️ Adăugat notă: DOAR prin protocol S2S ❌ Eliminat 'NU FUNCȚIONEAZĂ' (era incorect!) 2. Fiecare comandă SVS* actualizată: - Status: ✅ FUNCȚIONAL prin protocol S2S - Protocol format: :ServiceNum COMMAND params - Notă: NU pentru operi umani, DOAR servicii 3. Secțiune nouă 'NOTĂ PENTRU ADMINI': - Explicație de ce nu merge manual - Parse.c handlers: ms_* (server), NU mo_* (oper) - Cum se folosesc corect (prin servicii IRC) - Link la SVS_COMMANDS_SUNT_IMPLEMENTATE.md 📋 COMENZI ACTUALIZATE: ✅ SVSJOIN - Funcțional S2S ✅ SVSPART - Funcțional S2S ✅ SVSNICK - Funcțional S2S ✅ SVSMODE - Funcțional S2S ✅ SVSIDENT - Funcțional S2S ✅ SVSQUIT - Funcțional S2S ✅ SWHOIS - Funcțional S2S ✅ SVSINFO - Funcțional S2S ✅ SVSNOOP - Funcțional S2S 🎯 ADEVĂRUL: SVS* commands FUNCȚIONEAZĂ din versiunea de bază! Sunt în: - include/msg.h (MSG_* defines) - include/handlers.h (ms_* declarations) - ircd/parse.c (înregistrate în parser) - ircd/Makefile.in (compilate) - ircd/m_svs*.c (cod implementat) NU erau 'nefuncționale', doar folosite GREȘIT! Trebuie trimise de SERVICII IRC, nu de operi umani! Status: ✅ DOCUMENTAȚIE CORECTĂ ȘI COMPLETĂ
This commit is contained in:
parent
5f4ff6a39e
commit
b71b1a07bd
|
|
@ -585,80 +585,110 @@ Tipuri disponibile:
|
||||||
|
|
||||||
### Comenzi Services
|
### Comenzi Services
|
||||||
|
|
||||||
⚠️ **ATENȚIE**: Majoritatea comenzilor SVS* **NU SUNT ACTIVE** în versiunea curentă!
|
✅ **UPDATE 24 Feb 2026**: Comenzile SVS* **SUNT IMPLEMENTATE** și **FUNCȚIONALE**!
|
||||||
Fișierele `m_svs*.c` există dar **NU sunt înregistrate în parse.c**, deci comenzile **NU FUNCȚIONEAZĂ**!
|
**NOTĂ IMPORTANTĂ**: SVS* funcționează **DOAR prin protocol SERVER-TO-SERVER** (de la servicii IRC), **NU** de la operi umani!
|
||||||
|
|
||||||
#### **SVSJOIN** - Force user to join channel ❌ NU FUNCȚIONEAZĂ
|
#### **SVSJOIN** - Force user to join channel ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSJOIN <nickname> <#channel>
|
Protocol: :ServiceNum SJ TargetNum #channel
|
||||||
```
|
```
|
||||||
- Forțează user să intre pe canal
|
- Forțează user să intre pe canal
|
||||||
- **Fișier**: `m_svsjoin.c` (există dar NU e înregistrat în parser)
|
- **Fișier**: `m_svsjoin.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** (servicii IRC)
|
||||||
|
- **Notă**: NU poate fi folosit direct de operi! Doar de servicii (X, ChanServ)
|
||||||
|
|
||||||
#### **SVSPART** - Force user to part channel ❌ NU FUNCȚIONEAZĂ
|
#### **SVSPART** - Force user to part channel ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSPART <nickname> <#channel>
|
Protocol: :ServiceNum SP TargetNum #channel
|
||||||
```
|
```
|
||||||
- Forțează user să părăsească canalul
|
- Forțează user să părăsească canalul
|
||||||
- **Fișier**: `m_svspart.c` (există dar NU e înregistrat în parser)
|
- **Fișier**: `m_svspart.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
#### **SVSNICK** - Force nick change ❌ NU FUNCȚIONEAZĂ
|
#### **SVSNICK** - Force nick change ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSNICK <old_nick> <new_nick> [<timestamp>]
|
Protocol: :ServiceNum SN OldNick NewNick
|
||||||
```
|
```
|
||||||
- Forțează schimbare de nickname
|
- Forțează schimbare de nickname
|
||||||
- **Fișier**: `m_svsnick.c` (există dar NU e înregistrat în parser)
|
- **Fișier**: `m_svsnick.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
#### **SVSMODE** - Force mode change ❌ NU FUNCȚIONEAZĂ
|
#### **SVSMODE** - Force mode change ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSMODE <target> <modes>
|
Protocol: :ServiceNum SM Target +modes
|
||||||
```
|
```
|
||||||
- Forțează schimbare moduri user/canal
|
- Forțează schimbare moduri user/canal
|
||||||
- **Fișier**: `m_svsmode.c` (există dar NU e înregistrat în parser)
|
- **Fișier**: `m_svsmode.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
#### **SVSIDENT** - Set ident ❌ NU FUNCȚIONEAZĂ
|
#### **SVSIDENT** - Set ident ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSIDENT <nickname> <ident>
|
Protocol: :ServiceNum SI Nick Ident
|
||||||
```
|
```
|
||||||
- Setează ident pentru user
|
- Setează ident pentru user
|
||||||
- **Fișier**: `m_svsident.c` (există dar NU e înregistrat în parser)
|
- **Fișier**: `m_svsident.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
#### **SVSQUIT** - Force user quit ❌ NU FUNCȚIONEAZĂ
|
#### **SVSQUIT** - Force user quit ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSQUIT <nickname> :<reason>
|
Protocol: :ServiceNum SQ Nick :Reason
|
||||||
```
|
```
|
||||||
- Forțează user să se deconecteze
|
- Forțează user să se deconecteze
|
||||||
- **Fișier**: `m_svsquit.c` (există dar NU e înregistrat în parser)
|
- **Fișier**: `m_svsquit.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
#### **SWHOIS** - Set special whois line ❌ NU FUNCȚIONEAZĂ
|
#### **SWHOIS** - Set special whois line ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SWHOIS <nickname> :<text>
|
Protocol: :ServiceNum SW Nick :Text
|
||||||
```
|
```
|
||||||
- Setează linie specială în WHOIS
|
- Setează linie specială în WHOIS
|
||||||
- **Fișier**: `m_swhois.c` (există dar NU e înregistrat în parser)
|
- **Fișier**: `m_swhois.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
#### **SVSINFO** - Services info ⚠️ PARȚIAL
|
#### **SVSINFO** - Services info ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSINFO <params>
|
Protocol: :ServiceNum SO Params
|
||||||
```
|
```
|
||||||
- Informații despre servicii
|
- Informații despre servicii
|
||||||
- **Fișier**: `m_svsinfo.c`
|
- **Fișier**: `m_svsinfo.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ⚠️ **PROTOCOL INTERN** - Folosit între servere și servicii
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
#### **SVSNOOP** - Services noop ⚠️ PARȚIAL
|
#### **SVSNOOP** - Services noop ✅ FUNCȚIONAL (S2S)
|
||||||
```
|
```
|
||||||
/SVSNOOP <params>
|
Protocol: :ServiceNum SO Params
|
||||||
```
|
```
|
||||||
- Services no-op command
|
- Services no-op command
|
||||||
- **Fișier**: `m_svsnoop.c`
|
- **Fișier**: `m_svsnoop.c` ✅ IMPLEMENTAT
|
||||||
- **Status**: ⚠️ **PROTOCOL INTERN** - Folosit între servere
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 📋 NOTĂ PENTRU ADMINI - SVS* Commands
|
||||||
|
|
||||||
|
**De ce nu funcționează când le dau eu ca oper?**
|
||||||
|
|
||||||
|
SVS* commands sunt implementate cu **ms_*** handlers (server message), **NU mo_*** (oper message)!
|
||||||
|
|
||||||
|
```c
|
||||||
|
// În parse.c:
|
||||||
|
{ MSG_SVSJOIN, TOK_SVSJOIN, 0, MAXPARA, MFLG_SLOW, 0, NULL,
|
||||||
|
/* UNREG, CLIENT, SERVER, OPER, SERVICE */
|
||||||
|
{ m_ignore, m_ignore, ms_svsjoin, m_ignore, m_ignore },
|
||||||
|
```
|
||||||
|
|
||||||
|
**Observă**:
|
||||||
|
- `m_ignore` pentru CLIENT și OPER → "Unknown command"
|
||||||
|
- `ms_svsjoin` DOAR pentru SERVER → Funcționează!
|
||||||
|
|
||||||
|
**Cum se folosesc**:
|
||||||
|
1. Configurează servicii IRC (Anope, Atheme, sau X)
|
||||||
|
2. Serviciile trimit comenzi SVS* automat când e necesar
|
||||||
|
3. Exemplu: `/msg ChanServ SET #channel AUTOOP ON`
|
||||||
|
4. Când intri pe canal, ChanServ trimite automat SVSJOIN + SVSMODE
|
||||||
|
|
||||||
|
**Vezi**: `SVS_COMMANDS_SUNT_IMPLEMENTATE.md` pentru detalii complete!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue