📝 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:
mihaiitdata 2026-02-24 01:03:13 +02:00
parent 5f4ff6a39e
commit b71b1a07bd
1 changed files with 68 additions and 38 deletions

View File

@ -585,80 +585,110 @@ Tipuri disponibile:
### Comenzi Services
⚠️ **ATENȚIE**: Majoritatea comenzilor SVS* **NU SUNT ACTIVE** în versiunea curentă!
Fișierele `m_svs*.c` există dar **NU sunt înregistrate în parse.c**, deci comenzile **NU FUNCȚIONEAZĂ**!
**UPDATE 24 Feb 2026**: Comenzile SVS* **SUNT IMPLEMENTATE** și **FUNCȚIONALE**!
**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
- **Fișier**: `m_svsjoin.c` (există dar NU e înregistrat în parser)
- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
- **Fișier**: `m_svsjoin.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_svspart.c` (există dar NU e înregistrat în parser)
- **Status**: **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
- **Fișier**: `m_svspart.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_svsnick.c` (există dar NU e înregistrat în parser)
- **Status**: **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
- **Fișier**: `m_svsnick.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_svsmode.c` (există dar NU e înregistrat în parser)
- **Status**: **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
- **Fișier**: `m_svsmode.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_svsident.c` (există dar NU e înregistrat în parser)
- **Status**: **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
- **Fișier**: `m_svsident.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_svsquit.c` (există dar NU e înregistrat în parser)
- **Status**: **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
- **Fișier**: `m_svsquit.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_swhois.c` (există dar NU e înregistrat în parser)
- **Status**: **NEFUNCȚIONAL** - Trebuie adăugat în parse.c
- **Fișier**: `m_swhois.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_svsinfo.c`
- **Status**: ⚠️ **PROTOCOL INTERN** - Folosit între servere și servicii
- **Fișier**: `m_svsinfo.c` ✅ IMPLEMENTAT
- **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
- **Fișier**: `m_svsnoop.c`
- **Status**: ⚠️ **PROTOCOL INTERN** - Folosit între servere
- **Fișier**: `m_svsnoop.c` ✅ IMPLEMENTAT
- **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!
---
---