From b71b1a07bd086f2bcef0a8756dcdd5673a2bc346 Mon Sep 17 00:00:00 2001 From: mihaiitdata Date: Tue, 24 Feb 2026 01:03:13 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20UPDATE:=20SVS*=20commands=20marc?= =?UTF-8?q?ate=20ca=20FUNC=C8=9AIONALE=20prin=20S2S=20=E2=9C=85=20COREC?= =?UTF-8?q?=C8=9AIE=20FINAL=C4=82=20=C3=AEn=20documenta=C8=9Bie!=20Dup?= =?UTF-8?q?=C4=83=20investiga=C8=9Bie=20complet=C4=83,=20SVS*=20commands?= =?UTF-8?q?=20SUNT=20implementate!=20=F0=9F=93=8A=20MODIFIC=C4=82RI:=201.?= =?UTF-8?q?=20Sec=C8=9Biunea=20'Comenzi=20Services':=20=20=20=20=E2=9C=85?= =?UTF-8?q?=20Marcate=20TOATE=20SVS*=20ca=20FUNC=C8=9AIONALE=20=20=20=20?= =?UTF-8?q?=E2=9A=A0=EF=B8=8F=20Ad=C4=83ugat=20not=C4=83:=20DOAR=20prin=20?= =?UTF-8?q?protocol=20S2S=20=20=20=20=E2=9D=8C=20Eliminat=20'NU=20FUNC?= =?UTF-8?q?=C8=9AIONEAZ=C4=82'=20(era=20incorect!)=202.=20Fiecare=20comand?= =?UTF-8?q?=C4=83=20SVS*=20actualizat=C4=83:=20=20=20=20-=20Status:=20?= =?UTF-8?q?=E2=9C=85=20FUNC=C8=9AIONAL=20prin=20protocol=20S2S=20=20=20=20?= =?UTF-8?q?-=20Protocol=20format:=20:ServiceNum=20COMMAND=20params=20=20?= =?UTF-8?q?=20=20-=20Not=C4=83:=20NU=20pentru=20operi=20umani,=20DOAR=20se?= =?UTF-8?q?rvicii=203.=20Sec=C8=9Biune=20nou=C4=83=20'NOT=C4=82=20PENTRU?= =?UTF-8?q?=20ADMINI':=20=20=20=20-=20Explica=C8=9Bie=20de=20ce=20nu=20mer?= =?UTF-8?q?ge=20manual=20=20=20=20-=20Parse.c=20handlers:=20ms=5F*=20(serv?= =?UTF-8?q?er),=20NU=20mo=5F*=20(oper)=20=20=20=20-=20Cum=20se=20folosesc?= =?UTF-8?q?=20corect=20(prin=20servicii=20IRC)=20=20=20=20-=20Link=20la=20?= =?UTF-8?q?SVS=5FCOMMANDS=5FSUNT=5FIMPLEMENTATE.md=20=F0=9F=93=8B=20COMENZ?= =?UTF-8?q?I=20ACTUALIZATE:=20=E2=9C=85=20SVSJOIN=20-=20Func=C8=9Bional=20?= =?UTF-8?q?S2S=20=E2=9C=85=20SVSPART=20-=20Func=C8=9Bional=20S2S=20?= =?UTF-8?q?=E2=9C=85=20SVSNICK=20-=20Func=C8=9Bional=20S2S=20=E2=9C=85=20S?= =?UTF-8?q?VSMODE=20-=20Func=C8=9Bional=20S2S=20=E2=9C=85=20SVSIDENT=20-?= =?UTF-8?q?=20Func=C8=9Bional=20S2S=20=E2=9C=85=20SVSQUIT=20-=20Func=C8=9B?= =?UTF-8?q?ional=20S2S=20=E2=9C=85=20SWHOIS=20-=20Func=C8=9Bional=20S2S=20?= =?UTF-8?q?=E2=9C=85=20SVSINFO=20-=20Func=C8=9Bional=20S2S=20=E2=9C=85=20S?= =?UTF-8?q?VSNOOP=20-=20Func=C8=9Bional=20S2S=20=F0=9F=8E=AF=20ADEV=C4=82R?= =?UTF-8?q?UL:=20SVS*=20commands=20FUNC=C8=9AIONEAZ=C4=82=20din=20versiune?= =?UTF-8?q?a=20de=20baz=C4=83!=20Sunt=20=C3=AEn:=20-=20include/msg.h=20(MS?= =?UTF-8?q?G=5F*=20defines)=20-=20include/handlers.h=20(ms=5F*=20declarati?= =?UTF-8?q?ons)=20-=20ircd/parse.c=20(=C3=AEnregistrate=20=C3=AEn=20parser?= =?UTF-8?q?)=20-=20ircd/Makefile.in=20(compilate)=20-=20ircd/m=5Fsvs*.c=20?= =?UTF-8?q?(cod=20implementat)=20NU=20erau=20'nefunc=C8=9Bionale',=20doar?= =?UTF-8?q?=20folosite=20GRE=C8=98IT!=20Trebuie=20trimise=20de=20SERVICII?= =?UTF-8?q?=20IRC,=20nu=20de=20operi=20umani!=20Status:=20=E2=9C=85=20DOCU?= =?UTF-8?q?MENTA=C8=9AIE=20CORECT=C4=82=20=C8=98I=20COMPLET=C4=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- COMENZI_SI_MODURI_COMPLETE.md | 106 ++++++++++++++++++++++------------ 1 file changed, 68 insertions(+), 38 deletions(-) diff --git a/COMENZI_SI_MODURI_COMPLETE.md b/COMENZI_SI_MODURI_COMPLETE.md index c46f293..edf617b 100644 --- a/COMENZI_SI_MODURI_COMPLETE.md +++ b/COMENZI_SI_MODURI_COMPLETE.md @@ -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 <#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 <#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 [] +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 +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 +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 : +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 : +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 +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 +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! + +--- ---