1601 lines
35 KiB
Markdown
1601 lines
35 KiB
Markdown
# 📋 COMENZI ȘI MODURI IRC - UnderChat IRCd v2.0.1
|
|
|
|
**Data**: 23 Februarie 2026
|
|
**Base**: u2.10.12.19+UnderChat(2.0.1)
|
|
**Status**: ✅ DOCUMENTAȚIE COMPLETĂ
|
|
|
|
---
|
|
|
|
## 📚 CUPRINS
|
|
|
|
1. [Comenzi User (Disponibile tuturor)](#comenzi-user)
|
|
2. [Comenzi Oper (Doar pentru operatori)](#comenzi-oper)
|
|
3. [Comenzi Server-to-Server](#comenzi-server-to-server)
|
|
4. [Moduri User (+modes)](#moduri-user)
|
|
5. [Moduri Channel (#modes)](#moduri-channel)
|
|
6. [Comenzi VIITOARE (Pot fi adăugate)](#comenzi-viitoare)
|
|
7. [Features Speciale](#features-speciale)
|
|
|
|
---
|
|
|
|
## 🔷 COMENZI USER (Disponibile tuturor)
|
|
|
|
### Comenzi de Conectare
|
|
|
|
#### **PASS** - Set connection password
|
|
```
|
|
/PASS <password>
|
|
```
|
|
- Setează parola de conectare (înainte de USER/NICK)
|
|
- Necesară pentru servere protejate cu parolă
|
|
- **Fișier**: `m_pass.c`
|
|
|
|
#### **NICK** - Change nickname
|
|
```
|
|
/NICK <new_nickname>
|
|
```
|
|
- Schimbă nickname-ul curent
|
|
- Limită: 12 caractere (configurabil)
|
|
- **Fișier**: `m_nick.c`
|
|
|
|
#### **USER** - Set username
|
|
```
|
|
/USER <username> <hostname> <servername> :<realname>
|
|
```
|
|
- Setează username și realname la conectare
|
|
- Trimis automat de client
|
|
- **Fișier**: `m_user.c`
|
|
|
|
#### **QUIT** - Disconnect from server
|
|
```
|
|
/QUIT :<reason>
|
|
```
|
|
- Deconectare de la server cu motiv opțional
|
|
- **Fișier**: `m_quit.c`
|
|
|
|
---
|
|
|
|
### Comenzi de Comunicare
|
|
|
|
#### **PRIVMSG** - Send private message
|
|
```
|
|
/MSG <target> :<message>
|
|
/PRIVMSG <target> :<message>
|
|
```
|
|
- Trimite mesaj către user sau channel
|
|
- Target poate fi: nick, #channel, @#channel (ops only)
|
|
- **Fișier**: `m_privmsg.c`
|
|
|
|
#### **NOTICE** - Send notice
|
|
```
|
|
/NOTICE <target> :<message>
|
|
```
|
|
- Similar cu PRIVMSG dar nu generează răspuns automat
|
|
- Folosit pentru bots și servicii
|
|
- **Fișier**: `m_notice.c`
|
|
|
|
#### **CPRIVMSG** - Channel private message
|
|
```
|
|
/CPRIVMSG <nickname> <channel> :<message>
|
|
```
|
|
- Mesaj privat către user pe un channel specific
|
|
- **Fișier**: `m_cprivmsg.c`
|
|
|
|
---
|
|
|
|
### Comenzi Channel
|
|
|
|
#### **JOIN** - Join channel
|
|
```
|
|
/JOIN <#channel>[,<#channel2>,...] [<key>[,<key2>,...]]
|
|
/JOIN 0 (părăsește toate canalele)
|
|
```
|
|
- Intră pe canal(e)
|
|
- Suportă chei (parole) pentru canale +k
|
|
- **Fișier**: `m_join.c`
|
|
|
|
#### **PART** - Leave channel
|
|
```
|
|
/PART <#channel>[,<#channel2>,...] [:<reason>]
|
|
```
|
|
- Părăsește canal(e) cu motiv opțional
|
|
- **Fișier**: `m_part.c`
|
|
|
|
#### **TOPIC** - Set/view channel topic
|
|
```
|
|
/TOPIC <#channel> [:<new topic>]
|
|
```
|
|
- Fără parametru: Afișează topic-ul
|
|
- Cu parametru: Setează topic nou (dacă ai permisiuni)
|
|
- **Fișier**: `m_topic.c`
|
|
|
|
#### **NAMES** - List users on channel
|
|
```
|
|
/NAMES [<#channel>[,<#channel2>,...]]
|
|
```
|
|
- Listează userii de pe canal(e)
|
|
- Fără parametru: Toate canalele vizibile
|
|
- **Fișier**: `m_names.c`
|
|
|
|
#### **LIST** - List channels
|
|
```
|
|
/LIST [<#channel>] [<options>]
|
|
```
|
|
- Listează canale disponibile cu număr de useri și topic
|
|
- Opțiuni: >50 (peste 50 useri), <10 (sub 10 useri)
|
|
- **Fișier**: `m_list.c`
|
|
|
|
#### **INVITE** - Invite user to channel
|
|
```
|
|
/INVITE <nickname> <#channel>
|
|
```
|
|
- Invită user pe canal
|
|
- Bypass +i (invite-only) și +l (limit)
|
|
- **Fișier**: `m_invite.c`
|
|
|
|
#### **KICK** - Kick user from channel
|
|
```
|
|
/KICK <#channel> <nickname> [:<reason>]
|
|
```
|
|
- Scoate user de pe canal (necesită @op sau %halfop)
|
|
- **Fișier**: `m_kick.c`
|
|
|
|
#### **MODE** - Change channel/user modes
|
|
```
|
|
/MODE <#channel> [+/-modes] [parameters]
|
|
/MODE <nickname> [+/-modes]
|
|
```
|
|
- Schimbă moduri canal sau user
|
|
- Vezi secțiunile [Moduri User](#moduri-user) și [Moduri Channel](#moduri-channel)
|
|
- **Fișier**: `m_mode.c`
|
|
|
|
---
|
|
|
|
### Comenzi de Informații
|
|
|
|
#### **WHOIS** - Get user information
|
|
```
|
|
/WHOIS <nickname>[,<nickname2>,...]
|
|
/WHOIS <server> <nickname> (remote whois)
|
|
```
|
|
- Afișează informații despre user(i)
|
|
- Informații: realname, hostname, channels, oper status, idle time
|
|
- **Fișier**: `m_whois.c`
|
|
- **✨ Modificat în v2.0.1**: Suport stealth oper (hide_oper)
|
|
|
|
#### **WHOWAS** - Get information about disconnected user
|
|
```
|
|
/WHOWAS <nickname> [<count> [<server>]]
|
|
```
|
|
- Istoric pentru useri deconectați
|
|
- **Fișier**: `m_whowas.c`
|
|
|
|
#### **WHO** - List users matching criteria
|
|
```
|
|
/WHO <mask> [options]
|
|
```
|
|
- Caută useri după criterii
|
|
- Opțiuni: o (opers only), n (match nick), h (match host)
|
|
- **Fișier**: `m_who.c`
|
|
|
|
#### **USERHOST** - Get user@host info
|
|
```
|
|
/USERHOST <nickname> [<nickname2> ...]
|
|
```
|
|
- Returnează user@host pentru nickname(s)
|
|
- **Fișier**: `m_userhost.c`
|
|
|
|
#### **USERIP** - Get IP addresses
|
|
```
|
|
/USERIP <nickname> [<nickname2> ...]
|
|
```
|
|
- Returnează IP-uri pentru nickname(s)
|
|
- Doar pentru operi sau self
|
|
- **Fișier**: `m_userip.c`
|
|
|
|
#### **ISON** - Check if users are online
|
|
```
|
|
/ISON <nickname> [<nickname2> ...]
|
|
```
|
|
- Verifică dacă userii sunt online
|
|
- Folosit de clienti pentru buddy lists
|
|
- **Fișier**: `m_ison.c`
|
|
|
|
---
|
|
|
|
### Comenzi Server Info
|
|
|
|
#### **VERSION** - Get server version
|
|
```
|
|
/VERSION [<server>]
|
|
```
|
|
- Afișează versiunea serverului
|
|
- **Output**: `u2.10.12.19+UnderChat(2.0.1)`
|
|
- **Fișier**: `m_version.c`
|
|
|
|
#### **TIME** - Get server time
|
|
```
|
|
/TIME [<server>]
|
|
```
|
|
- Afișează ora serverului
|
|
- **Fișier**: `m_time.c`
|
|
|
|
#### **ADMIN** - Get server admin info
|
|
```
|
|
/ADMIN [<server>]
|
|
```
|
|
- Informații despre administratorul serverului
|
|
- **Fișier**: `m_admin.c`
|
|
|
|
#### **INFO** - Get server info
|
|
```
|
|
/INFO [<server>]
|
|
```
|
|
- Informații despre server, versiune, autori
|
|
- **Fișier**: `m_info.c`
|
|
|
|
#### **MOTD** - Get Message of the Day
|
|
```
|
|
/MOTD [<server>]
|
|
```
|
|
- Afișează MOTD (mesajul zilei)
|
|
- **Fișier**: `m_motd.c`
|
|
|
|
#### **RULES** - Get server rules
|
|
```
|
|
/RULES [<server>]
|
|
```
|
|
- Afișează regulile serverului
|
|
- **Fișier**: `m_rules.c`
|
|
|
|
#### **LUSERS** - Get network statistics
|
|
```
|
|
/LUSERS [<mask> [<server>]]
|
|
```
|
|
- Statistici: useri, operi, canale, servere
|
|
- **Fișier**: `m_lusers.c`
|
|
|
|
#### **LINKS** - List servers
|
|
```
|
|
/LINKS [[<remote server>] <mask>]
|
|
```
|
|
- Listează servere din network
|
|
- **Fișier**: `m_links.c`
|
|
|
|
#### **MAP** - Network map
|
|
```
|
|
/MAP
|
|
```
|
|
- Hartă vizuală a network-ului
|
|
- **Fișier**: `m_map.c`
|
|
|
|
---
|
|
|
|
### Comenzi Speciale
|
|
|
|
#### **AWAY** - Set away message
|
|
```
|
|
/AWAY [:<message>]
|
|
```
|
|
- Setează mesaj de absent
|
|
- Fără parametru: Elimină away
|
|
- **Fișier**: `m_away.c`
|
|
|
|
#### **SILENCE** - Ignore users
|
|
```
|
|
/SILENCE [+/-<mask>]
|
|
```
|
|
- Adaugă/șterge useri în/din ignore list
|
|
- **Fișier**: `m_silence.c`
|
|
|
|
#### **WATCH** - Notify when users connect
|
|
```
|
|
/WATCH [+/-<nickname>]
|
|
/WATCH l (list)
|
|
/WATCH s (stats)
|
|
```
|
|
- Notificare când useri specifici se conectează/deconectează
|
|
- **Fișier**: `m_watch.c`
|
|
|
|
#### **HELP** - Get help
|
|
```
|
|
/HELP [<topic>]
|
|
```
|
|
- Afișează help pentru comenzi
|
|
- **Fișier**: `m_help.c`
|
|
|
|
#### **PING** - Test connection
|
|
```
|
|
/PING <server>
|
|
```
|
|
- Test latență la server
|
|
- **Fișier**: `m_ping.c`
|
|
|
|
#### **CAP** - Client capabilities
|
|
```
|
|
/CAP LS
|
|
/CAP REQ :<capability>
|
|
/CAP END
|
|
```
|
|
- Negociază capabilități client-server
|
|
- **Fișier**: `m_cap.c`
|
|
|
|
#### **AUTHENTICATE** - SASL authentication
|
|
```
|
|
/AUTHENTICATE <data>
|
|
```
|
|
- Autentificare SASL
|
|
- **Fișier**: `m_authenticate.c`
|
|
|
|
#### **STARTTLS** - Start TLS encryption
|
|
```
|
|
/STARTTLS
|
|
```
|
|
- Inițiază conexiune TLS
|
|
- **Fișier**: `m_starttls.c`
|
|
|
|
---
|
|
|
|
## 🔶 COMENZI OPER (Doar pentru operatori)
|
|
|
|
### Comenzi de Administrare User
|
|
|
|
#### **KILL** - Disconnect user
|
|
```
|
|
/KILL <nickname> :<reason>
|
|
```
|
|
- Deconectează forțat un user
|
|
- **✨ Modificat în v2.0.1**: Stealth mode - arată `*.UnderChat.org` pentru operi cu `hide_oper = yes`
|
|
- **Fișier**: `m_kill.c`
|
|
- **Privilegiu**: PRIV_LOCAL_KILL sau PRIV_KILL
|
|
|
|
#### **GLINE** - Global ban
|
|
```
|
|
/GLINE [+/-]<user@host> [<duration> [:<reason>]]
|
|
/GLINE * +<user@host> <duration> :<reason> (propagate)
|
|
```
|
|
- Ban global pe toate serverele
|
|
- Durată: secondele sau 0 pentru permanent
|
|
- **Fișier**: `m_gline.c`
|
|
- **Privilegiu**: PRIV_LOCAL_GLINE sau PRIV_GLINE
|
|
|
|
#### **SHUN** - Silent ignore
|
|
```
|
|
/SHUN [+/-]<user@host> [<duration> [:<reason>]]
|
|
```
|
|
- User poate conecta dar toate comenzile sunt ignorate (silent)
|
|
- **Fișier**: `m_shun.c`
|
|
- **Privilegiu**: PRIV_LOCAL_SHUN sau PRIV_SHUN
|
|
|
|
#### **ZLINE** - IP ban
|
|
```
|
|
/ZLINE [+/-]<IP> [<duration> [:<reason>]]
|
|
```
|
|
- Ban pe adresă IP
|
|
- **Fișier**: `m_zline.c`
|
|
- **Privilegiu**: PRIV_LOCAL_ZLINE sau PRIV_ZLINE
|
|
|
|
#### **TEMPSHUN** - Temporary shun
|
|
```
|
|
/TEMPSHUN <nickname> [<duration>]
|
|
```
|
|
- Shun temporar pentru user specific
|
|
- **Fișier**: `m_tempshun.c`
|
|
- **Privilegiu**: PRIV_LOCAL_SHUN
|
|
|
|
---
|
|
|
|
### Comenzi Channel Management
|
|
|
|
#### **OPMODE** - Override channel modes
|
|
```
|
|
/OPMODE <#channel> [+/-modes] [parameters]
|
|
```
|
|
- Schimbă moduri canal fără să fii op
|
|
- Bypass toate restricțiile
|
|
- **Fișier**: `m_opmode.c`
|
|
- **Privilegiu**: PRIV_LOCAL_OPMODE sau PRIV_OPMODE
|
|
|
|
#### **CLEARMODE** - Clear channel modes
|
|
```
|
|
/CLEARMODE <#channel> [<flags>]
|
|
```
|
|
- Șterge moduri de pe canal
|
|
- Flags: o (ops), v (voices), b (bans), k (key), l (limit)
|
|
- **Fișier**: `m_clearmode.c`
|
|
- **Privilegiu**: PRIV_LOCAL_OPMODE
|
|
|
|
---
|
|
|
|
### Comenzi Server Management
|
|
|
|
#### **REHASH** - Reload configuration
|
|
```
|
|
/REHASH
|
|
```
|
|
- Reîncarcă fișierul de configurare
|
|
- **Fișier**: `m_rehash.c`
|
|
- **Privilegiu**: PRIV_REHASH
|
|
|
|
#### **RESTART** - Restart server
|
|
```
|
|
/RESTART
|
|
```
|
|
- Restart complet al serverului
|
|
- **Fișier**: `m_restart.c`
|
|
- **Privilegiu**: PRIV_RESTART
|
|
|
|
#### **DIE** - Shutdown server
|
|
```
|
|
/DIE [<server>]
|
|
```
|
|
- Oprește serverul complet
|
|
- **Fișier**: `m_die.c`
|
|
- **Privilegiu**: PRIV_DIE
|
|
|
|
#### **CONNECT** - Connect to another server
|
|
```
|
|
/CONNECT <target server> [<port> [<remote server>]]
|
|
```
|
|
- Conectează server la alt server
|
|
- **Fișier**: `m_connect.c`
|
|
- **Privilegiu**: PRIV_LOCAL_OPMODE
|
|
|
|
#### **SQUIT** - Disconnect server
|
|
```
|
|
/SQUIT <server> :<reason>
|
|
```
|
|
- Deconectează un server din network
|
|
- **Fișier**: `m_squit.c`
|
|
- **Privilegiu**: PRIV_LOCAL_OPMODE
|
|
|
|
#### **JUPE** - Fake server (prevent connections)
|
|
```
|
|
/JUPE [+/-]<server> [:<reason>]
|
|
```
|
|
- Creează server "fake" pentru a preveni conectări
|
|
- **Fișier**: `m_jupe.c`
|
|
- **Privilegiu**: PRIV_LOCAL_JUPE sau PRIV_JUPE
|
|
|
|
---
|
|
|
|
### Comenzi de Monitorizare
|
|
|
|
#### **STATS** - Server statistics
|
|
```
|
|
/STATS <type> [<server>]
|
|
```
|
|
Tipuri disponibile:
|
|
- **c**: Connect blocks (server links)
|
|
- **g**: G-lines (global bans)
|
|
- **h**: Hub/Leaf configuration
|
|
- **i**: I-lines (client auth)
|
|
- **k**: K-lines (local bans)
|
|
- **l**: Connection info și stats
|
|
- **m**: Command usage statistics
|
|
- **o**: Operator blocks
|
|
- **p**: Port listeners
|
|
- **r**: Resource usage
|
|
- **s**: Service bans (shuns)
|
|
- **u**: Server uptime
|
|
- **v**: Version info detaliată
|
|
- **w**: Who was statistics
|
|
- **z**: Z-lines (IP bans)
|
|
- **f**: Features (F-lines)
|
|
- **t**: Timing statistics
|
|
- **T**: MOTD/RULES files
|
|
- **U**: Uptime și stats
|
|
- **?**: Help pentru stats
|
|
|
|
**Fișier**: `m_stats.c`
|
|
**Privilegiu**: Varies by type
|
|
|
|
#### **TRACE** - Trace connections
|
|
```
|
|
/TRACE [<target>]
|
|
```
|
|
- Afișează traceroute la server/user
|
|
- **Fișier**: `m_trace.c`
|
|
- **Privilegiu**: PRIV_SEE_OPERS (pentru info completă)
|
|
|
|
#### **CHECK** - Check user/channel/server
|
|
```
|
|
/CHECK <nickname|#channel|server>
|
|
```
|
|
- Informații detaliate despre target
|
|
- **Fișier**: `m_check.c`
|
|
- **Privilegiu**: PRIV_SEE_CHAN
|
|
|
|
#### **IRCOPS** - List IRC operators
|
|
```
|
|
/IRCOPS [<server>]
|
|
```
|
|
- Listează toți operatorii online
|
|
- **Fișier**: `m_ircops.c`
|
|
|
|
---
|
|
|
|
### Comenzi de Configurare
|
|
|
|
#### **SET** - Change runtime settings
|
|
```
|
|
/SET <option> <value>
|
|
```
|
|
- Modifică setări în runtime
|
|
- **Fișier**: `m_set.c`
|
|
- **Privilegiu**: PRIV_SET
|
|
|
|
#### **GET** - Get runtime settings
|
|
```
|
|
/GET <option>
|
|
```
|
|
- Afișează setări curente
|
|
- **Fișier**: `m_get.c`
|
|
|
|
#### **RESET** - Reset settings
|
|
```
|
|
/RESET <option>
|
|
```
|
|
- Resetează setări la valori default
|
|
- **Fișier**: `m_reset.c`
|
|
- **Privilegiu**: PRIV_SET
|
|
|
|
---
|
|
|
|
### Comenzi Speciale Oper
|
|
|
|
#### **WALLOPS** - Send to all operators
|
|
```
|
|
/WALLOPS :<message>
|
|
```
|
|
- Mesaj către toți operatorii cu +w
|
|
- **Fișier**: `m_wallops.c`
|
|
- **Privilegiu**: PRIV_WALLOPS
|
|
|
|
#### **WALLUSERS** - Send to all users
|
|
```
|
|
/WALLUSERS :<message>
|
|
```
|
|
- Mesaj către toți userii conectați
|
|
- **Fișier**: `m_wallusers.c`
|
|
- **Privilegiu**: PRIV_WALLOPS
|
|
|
|
#### **WALLCHOPS** - Send to channel ops
|
|
```
|
|
/WALLCHOPS <#channel> :<message>
|
|
```
|
|
- Mesaj către toți ops de pe canal
|
|
- **Fișier**: `m_wallchops.c`
|
|
|
|
#### **WALLHOPS** - Send to channel halfops
|
|
```
|
|
/WALLHOPS <#channel> :<message>
|
|
```
|
|
- Mesaj către toți halfops de pe canal
|
|
- **Fișier**: `m_wallhops.c`
|
|
|
|
#### **WALLVOICES** - Send to voiced users
|
|
```
|
|
/WALLVOICES <#channel> :<message>
|
|
```
|
|
- Mesaj către toți userii cu voice
|
|
- **Fișier**: `m_wallvoices.c`
|
|
|
|
---
|
|
|
|
### Comenzi Services
|
|
|
|
✅ **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 ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SJ TargetNum #channel
|
|
```
|
|
- Forțează user să intre pe canal
|
|
- **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 ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SP TargetNum #channel
|
|
```
|
|
- Forțează user să părăsească canalul
|
|
- **Fișier**: `m_svspart.c` ✅ IMPLEMENTAT
|
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
|
|
|
#### **SVSNICK** - Force nick change ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SN OldNick NewNick
|
|
```
|
|
- Forțează schimbare de nickname
|
|
- **Fișier**: `m_svsnick.c` ✅ IMPLEMENTAT
|
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
|
|
|
#### **SVSMODE** - Force mode change ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SM Target +modes
|
|
```
|
|
- Forțează schimbare moduri user/canal
|
|
- **Fișier**: `m_svsmode.c` ✅ IMPLEMENTAT
|
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
|
|
|
#### **SVSIDENT** - Set ident ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SI Nick Ident
|
|
```
|
|
- Setează ident pentru user
|
|
- **Fișier**: `m_svsident.c` ✅ IMPLEMENTAT
|
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
|
|
|
#### **SVSQUIT** - Force user quit ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SQ Nick :Reason
|
|
```
|
|
- Forțează user să se deconecteze
|
|
- **Fișier**: `m_svsquit.c` ✅ IMPLEMENTAT
|
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
|
|
|
#### **SWHOIS** - Set special whois line ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SW Nick :Text
|
|
```
|
|
- Setează linie specială în WHOIS
|
|
- **Fișier**: `m_swhois.c` ✅ IMPLEMENTAT
|
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
|
|
|
#### **SVSINFO** - Services info ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SO Params
|
|
```
|
|
- Informații despre servicii
|
|
- **Fișier**: `m_svsinfo.c` ✅ IMPLEMENTAT
|
|
- **Status**: ✅ **FUNCȚIONAL prin protocol S2S**
|
|
|
|
#### **SVSNOOP** - Services noop ✅ FUNCȚIONAL (S2S)
|
|
```
|
|
Protocol: :ServiceNum SO Params
|
|
```
|
|
- Services no-op command
|
|
- **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!
|
|
|
|
---
|
|
|
|
---
|
|
|
|
### Comenzi Administrative (FUNCȚIONALE)
|
|
|
|
#### **SETHOST** - Set virtual host ✅ FUNCȚIONEAZĂ
|
|
```
|
|
/SETHOST <new_host>
|
|
```
|
|
- Schimbă hostname-ul virtual
|
|
- **Fișier**: `m_sethost.c`
|
|
- **Privilegiu**: PRIV_FREEFORM
|
|
- **Status**: ✅ **FUNCȚIONAL**
|
|
|
|
---
|
|
|
|
### Comenzi de Debug
|
|
|
|
#### **DEFAULTS** - Show compiled defaults
|
|
```
|
|
/DEFAULTS
|
|
```
|
|
- Afișează setările compilate default
|
|
- **Fișier**: `m_defaults.c`
|
|
|
|
#### **PRIVS** - Show privileges
|
|
```
|
|
/PRIVS [<nickname>]
|
|
```
|
|
- Afișează privilegiile operului
|
|
- **Fișier**: `m_privs.c`
|
|
|
|
#### **ISNEF** - Check Nefarious features
|
|
```
|
|
/ISNEF
|
|
```
|
|
- Verifică features Nefarious disponibile
|
|
- **Fișier**: `m_isnef.c`
|
|
|
|
#### **UPING** - UDP ping test
|
|
```
|
|
/UPING <server> [<port>]
|
|
```
|
|
- Test UDP ping către server
|
|
- **Fișier**: `m_uping.c`
|
|
- **Privilegiu**: PRIV_LOCAL_OPMODE
|
|
|
|
#### **RPING** - Remote ping test
|
|
```
|
|
/RPING <server1> <server2>
|
|
```
|
|
- Test ping între două servere
|
|
- **Fișier**: `m_rping.c`
|
|
|
|
---
|
|
|
|
## 🔷 COMENZI SERVER-TO-SERVER
|
|
|
|
Acestea sunt comenzi interne folosite între servere în protocol:
|
|
|
|
- **SERVER**: Server introduction
|
|
- **BURST**: Channel/user burst la link
|
|
- **ENDBURST**: Finish burst
|
|
- **CREATE**: Channel creation sync
|
|
- **DESTRUCT**: Channel destruction
|
|
- **ACCOUNT**: User account sync (services)
|
|
- **FAKE**: Fake direction message
|
|
- **PROTO**: Protocol negotiation
|
|
- **PROTOCTL**: Protocol control
|
|
- **XQUERY**: Cross-server query
|
|
- **XREPLY**: Cross-server reply
|
|
- **ASLL**: ASL lookup
|
|
- **PASS**: Server password
|
|
- **ERROR**: Error message
|
|
- **DESYNCH**: Desynch notification
|
|
- **MARK**: Channel/user mark
|
|
- **CLOSE**: Close connections
|
|
- **SVSINFO**: Services info
|
|
- **SVSNOOP**: Services noop
|
|
- **FINGERPRINT**: SSL fingerprint
|
|
|
|
**Note**: Aceste comenzi NU sunt disponibile pentru useri!
|
|
|
|
---
|
|
|
|
## 👤 MODURI USER (+modes)
|
|
|
|
### Moduri Disponibile
|
|
|
|
#### **+i** - Invisible
|
|
- User invizibil în /WHO (doar pe canale comune)
|
|
- Setat automat de majoritatea clienților
|
|
|
|
#### **+w** - Wallops
|
|
- Primește mesaje WALLOPS de la operi
|
|
- Recomandat pentru staff
|
|
|
|
#### **+o** - IRC Operator
|
|
- User e operator IRC
|
|
- Setat automat la /OPER
|
|
- NU poate fi setat manual
|
|
|
|
#### **+O** - Local Operator
|
|
- Operator local (nu global)
|
|
- Privilegii limitate la serverul curent
|
|
|
|
#### **+s** - Server Notices
|
|
- Primește server notices (snomask)
|
|
- Format: +s +<snomask>
|
|
|
|
#### **+d** - Deaf
|
|
- Nu primește mesaje de canal
|
|
- Useful pentru bots care nu procesează mesaje
|
|
|
|
#### **+k** - Service
|
|
- User e un service bot (protecție specială)
|
|
- Setat doar de servicii
|
|
|
|
#### **+g** - Caller ID / Ignore
|
|
- Doar userii din accept list pot trimite MSG
|
|
- Anti-spam protection
|
|
|
|
#### **+n** - NoChan
|
|
- Ascunde canalele în /WHOIS
|
|
- Doar pentru operi sau useri special
|
|
|
|
#### **+x** - Hidden host
|
|
- Activează host masking (cloaking)
|
|
- Format: user.users.network.org
|
|
|
|
#### **+h** - Hide oper
|
|
- **✨ NOU în v2.0.1**: Ascunde status oper din /WHOIS
|
|
- Doar pentru operi cu `hide_oper = yes` în config
|
|
- **Stealth mode!**
|
|
|
|
#### **+r** - Registered
|
|
- User e autentificat la servicii
|
|
- Setat automat de servicii (X, NickServ)
|
|
|
|
#### **+R** - Registered only
|
|
- Doar useri autentificați pot trimite MSG
|
|
- Anti-spam de la useri neautentificați
|
|
|
|
#### **+I** - Invisible joins
|
|
- Join-urile pe canale nu sunt anunțate
|
|
- Pentru staff investigations
|
|
|
|
---
|
|
|
|
## 📺 MODURI CHANNEL (#modes)
|
|
|
|
### Moduri de Acces
|
|
|
|
#### **+o** - Channel Operator (Op)
|
|
```
|
|
/MODE #channel +o <nickname>
|
|
```
|
|
- Control complet asupra canalului
|
|
- Poate da kick, ban, schimba topic, modes
|
|
|
|
#### **+h** - Halfop
|
|
```
|
|
/MODE #channel +h <nickname>
|
|
```
|
|
- Operator parțial
|
|
- Poate da kick, voice, dar NU ban sau modes
|
|
|
|
#### **+v** - Voice
|
|
```
|
|
/MODE #channel +v <nickname>
|
|
```
|
|
- Poate vorbi pe canal +m (moderated)
|
|
|
|
---
|
|
|
|
### Moduri de Restricții
|
|
|
|
#### **+i** - Invite only
|
|
```
|
|
/MODE #channel +i
|
|
```
|
|
- Doar useri invitați pot intra
|
|
- Bypass cu /INVITE
|
|
|
|
#### **+k** - Key (Password)
|
|
```
|
|
/MODE #channel +k <password>
|
|
```
|
|
- Necesită parolă pentru /JOIN
|
|
- `/JOIN #channel password`
|
|
|
|
#### **+l** - User limit
|
|
```
|
|
/MODE #channel +l <number>
|
|
```
|
|
- Limită maximă de useri
|
|
- Bypass cu /INVITE
|
|
|
|
#### **+m** - Moderated
|
|
```
|
|
/MODE #channel +m
|
|
```
|
|
- Doar ops, halfops, și voiced pot vorbi
|
|
|
|
#### **+n** - No external messages
|
|
```
|
|
/MODE #channel +n
|
|
```
|
|
- Doar userii de pe canal pot trimite mesaje
|
|
- Default pe majoritatea canalelor
|
|
|
|
#### **+t** - Topic protection
|
|
```
|
|
/MODE #channel +t
|
|
```
|
|
- Doar ops pot schimba topic-ul
|
|
- Recomandat pentru canale publice
|
|
|
|
#### **+s** - Secret
|
|
```
|
|
/MODE #channel +s
|
|
```
|
|
- Canalul NU apare în /LIST sau /WHOIS
|
|
- Invizibil pentru useri externi
|
|
|
|
#### **+p** - Private
|
|
```
|
|
/MODE #channel +p
|
|
```
|
|
- Canalul apare ca "*" în /WHOIS
|
|
- Parțial ascuns
|
|
|
|
#### **+r** - Registered
|
|
```
|
|
/MODE #channel +r
|
|
```
|
|
- Canalul e înregistrat la servicii
|
|
- Setat automat de ChanServ
|
|
|
|
#### **+R** - Registered users only
|
|
```
|
|
/MODE #channel +R
|
|
```
|
|
- Doar useri autentificați (+r) pot intra
|
|
- Anti-spam și securitate
|
|
|
|
#### **+M** - Moderated (registered)
|
|
```
|
|
/MODE #channel +M
|
|
```
|
|
- Doar useri autentificați (+r) pot vorbi
|
|
- Combinat cu +m pentru securitate maximă
|
|
|
|
#### **+c** - No colors
|
|
```
|
|
/MODE #channel +c
|
|
```
|
|
- Blochează mesaje cu color codes
|
|
- Util pentru canale serioase/business
|
|
|
|
#### **+C** - No CTCPs
|
|
```
|
|
/MODE #channel +C
|
|
```
|
|
- Blochează CTCP-uri (VERSION, PING, etc.)
|
|
- Anti-flood protection
|
|
|
|
#### **+u** - Auditorium
|
|
```
|
|
/MODE #channel +u
|
|
```
|
|
- Userii normali văd doar ops în /NAMES
|
|
- Util pentru canale mari (announcements)
|
|
|
|
#### **+N** - No nick changes
|
|
```
|
|
/MODE #channel +N
|
|
```
|
|
- Nu se pot schimba nickname-uri pe canal
|
|
- Anti-confusion în discuții
|
|
|
|
#### **+Q** - No kicks
|
|
```
|
|
/MODE #channel +Q
|
|
```
|
|
- Halfops nu pot da kick
|
|
- Doar ops pot da kick
|
|
|
|
#### **+S** - Strip colors
|
|
```
|
|
/MODE #channel +S
|
|
```
|
|
- Șterge color codes din mesaje
|
|
- Similar cu +c dar NU blochează mesajul
|
|
|
|
#### **+T** - No notices
|
|
```
|
|
/MODE #channel +T
|
|
```
|
|
- Blochează NOTICE pe canal
|
|
- Doar PRIVMSG permis
|
|
|
|
#### **+z** - Secure only (SSL)
|
|
```
|
|
/MODE #channel +z
|
|
```
|
|
- Doar useri cu conexiune SSL pot intra
|
|
- Securitate maximă
|
|
|
|
---
|
|
|
|
### Moduri Liste (Bans/Exceptions)
|
|
|
|
#### **+b** - Ban
|
|
```
|
|
/MODE #channel +b <mask>
|
|
/MODE #channel +b (listă bans)
|
|
```
|
|
- Interzice accesul pentru mask
|
|
- Format: nick!user@host
|
|
|
|
#### **+e** - Exception (Ban exempt)
|
|
```
|
|
/MODE #channel +e <mask>
|
|
```
|
|
- Except de la bans
|
|
- Useful pentru admini sau trusted users
|
|
|
|
#### **+I** - Invite exception
|
|
```
|
|
/MODE #channel +I <mask>
|
|
```
|
|
- Bypass +i (invite-only)
|
|
- Auto-invite pentru mask
|
|
|
|
---
|
|
|
|
### Moduri Speciale
|
|
|
|
#### **+D** - Delayed join
|
|
```
|
|
/MODE #channel +D
|
|
```
|
|
- Userii fără voice apar ca invizibili până vorbesc
|
|
- Reduce join/part spam
|
|
|
|
#### **+d** - Delayed join user
|
|
- Setat automat pentru useri în canal +D
|
|
- Dispar la primul mesaj
|
|
|
|
#### **+A** - Admin only
|
|
```
|
|
/MODE #channel +A
|
|
```
|
|
- Doar admini IRC pot intra
|
|
- Canale speciale pentru staff
|
|
|
|
#### **+O** - Opers only
|
|
```
|
|
/MODE #channel +O
|
|
```
|
|
- Doar operatori IRC pot intra
|
|
- Canale pentru operi
|
|
|
|
---
|
|
|
|
## 🔮 COMENZI VIITOARE (Pot fi adăugate)
|
|
|
|
### Comenzi User
|
|
|
|
#### **KNOCK** - Request invite
|
|
```
|
|
/KNOCK #channel [:<reason>]
|
|
```
|
|
- Cere invitație pe canal +i
|
|
- Notifică ops-ii
|
|
- **Status**: NU IMPLEMENTAT (poate fi adăugat)
|
|
|
|
#### **ACCEPT** - Manage accept list
|
|
```
|
|
/ACCEPT +<nick> (add)
|
|
/ACCEPT -<nick> (remove)
|
|
/ACCEPT * (list)
|
|
```
|
|
- Gestionează lista pentru +g mode
|
|
- **Status**: PARȚIAL (există în alte IRCd-uri)
|
|
|
|
#### **VHOST** - Request virtual host
|
|
```
|
|
/VHOST <username> <password>
|
|
```
|
|
- Activează vhost pre-aprobat
|
|
- **Status**: NU IMPLEMENTAT (poate fi adăugat)
|
|
|
|
#### **DCCALLOW** - DCC whitelist
|
|
```
|
|
/DCCALLOW +<nick>
|
|
```
|
|
- Permite DCC de la user specific
|
|
- **Status**: NU IMPLEMENTAT
|
|
|
|
---
|
|
|
|
### Comenzi Oper
|
|
|
|
#### **KLINE** - Local ban
|
|
```
|
|
/KLINE [+/-]<user@host> [<duration> [:<reason>]]
|
|
```
|
|
- Ban local (doar serverul curent)
|
|
- Similar cu GLINE dar local
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
#### **DLINE** - IP line ban
|
|
```
|
|
/DLINE [+/-]<IP> [<duration> [:<reason>]]
|
|
```
|
|
- Ban pe IP direct
|
|
- Similar cu ZLINE
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
#### **SPAMFILTER** - Spam detection
|
|
```
|
|
/SPAMFILTER add <type> <action> <regex> :<reason>
|
|
```
|
|
- Filtrare automată spam
|
|
- Actions: kill, gline, block, warn
|
|
- **Status**: NU IMPLEMENTAT (complex)
|
|
|
|
---
|
|
|
|
### Comenzi Services (SVS*) - PRIORITATE ÎNALTĂ! ⚠️
|
|
|
|
⚠️ **CRITICAL**: Aceste comenzi **EXISTĂ în cod** (`m_svs*.c`) dar **NU sunt activate**!
|
|
Trebuie **înregistrate în parse.c** pentru a funcționa!
|
|
|
|
#### **SVSJOIN** - Force user to join channel
|
|
```
|
|
/SVSJOIN <nickname> <#channel>
|
|
```
|
|
- Forțează user să intre pe canal
|
|
- **Fișier**: `m_svsjoin.c` ✅ EXISTĂ
|
|
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
|
|
- **Fix**: Adaugă în parse.c tabel MSG
|
|
|
|
#### **SVSPART** - Force user to part channel
|
|
```
|
|
/SVSPART <nickname> <#channel>
|
|
```
|
|
- Forțează user să părăsească canalul
|
|
- **Fișier**: `m_svspart.c` ✅ EXISTĂ
|
|
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
|
|
|
|
#### **SVSNICK** - Force nick change
|
|
```
|
|
/SVSNICK <old_nick> <new_nick> [<timestamp>]
|
|
```
|
|
- Forțează schimbare de nickname
|
|
- **Fișier**: `m_svsnick.c` ✅ EXISTĂ
|
|
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
|
|
|
|
#### **SVSMODE** - Force mode change
|
|
```
|
|
/SVSMODE <target> <modes>
|
|
```
|
|
- Forțează schimbare moduri user/canal
|
|
- **Fișier**: `m_svsmode.c` ✅ EXISTĂ
|
|
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
|
|
|
|
#### **SVSIDENT** - Set ident
|
|
```
|
|
/SVSIDENT <nickname> <ident>
|
|
```
|
|
- Setează ident pentru user
|
|
- **Fișier**: `m_svsident.c` ✅ EXISTĂ
|
|
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
|
|
|
|
#### **SVSQUIT** - Force user quit
|
|
```
|
|
/SVSQUIT <nickname> :<reason>
|
|
```
|
|
- Forțează user să se deconecteze
|
|
- **Fișier**: `m_svsquit.c` ✅ EXISTĂ
|
|
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
|
|
|
|
#### **SWHOIS** - Set special whois line
|
|
```
|
|
/SWHOIS <nickname> :<text>
|
|
```
|
|
- Setează linie specială în WHOIS
|
|
- **Fișier**: `m_swhois.c` ✅ EXISTĂ
|
|
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
|
|
|
|
**📝 NOTĂ**: Pentru a activa comenzile SVS*, trebuie:
|
|
1. Verificat că fișierele m_svs*.c sunt compilate în Makefile
|
|
2. Adăugat entries în parse.c (MSG table)
|
|
3. Recompilat IRCd
|
|
|
|
---
|
|
|
|
### Aliasuri Simple
|
|
|
|
#### **SAJOIN** - Force join (alias)
|
|
```
|
|
/SAJOIN <nickname> <#channel>
|
|
```
|
|
- Alias pentru SVSJOIN
|
|
- **Status**: DEPINDE DE SVSJOIN
|
|
|
|
#### **SAPART** - Force part (alias)
|
|
```
|
|
/SAPART <nickname> <#channel>
|
|
```
|
|
- Alias pentru SVSPART
|
|
- **Status**: DEPINDE DE SVSPART
|
|
|
|
#### **SANICK** - Force nick change (alias)
|
|
```
|
|
/SANICK <old_nick> <new_nick>
|
|
```
|
|
- Alias pentru SVSNICK
|
|
- **Status**: DEPINDE DE SVSNICK
|
|
|
|
#### **SAMODE** - Force mode (alias)
|
|
```
|
|
/SAMODE <target> <modes>
|
|
```
|
|
- Alias pentru SVSMODE
|
|
- **Status**: DEPINDE DE SVSMODE
|
|
|
|
---
|
|
|
|
### Moduri User Viitoare
|
|
|
|
#### **+B** - Bot
|
|
- Marchează user ca bot
|
|
- Apare în /WHOIS
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
#### **+W** - Whois notification
|
|
- Notificare când primești /WHOIS
|
|
- **Status**: EXISTĂ (whois_notice în config)
|
|
|
|
#### **+H** - Hide oper (alternative)
|
|
- Alternativă pentru +h
|
|
- **Status**: IMPLEMENTAT în v2.0.1 ca hide_oper
|
|
|
|
#### **+S** - Network service
|
|
- User e network service
|
|
- Protecție specială
|
|
- **Status**: EXISTĂ PARȚIAL (+k)
|
|
|
|
#### **+Z** - Secure connection
|
|
- User conectat prin SSL/TLS
|
|
- Automat detectat
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
---
|
|
|
|
### Moduri Channel Viitoare
|
|
|
|
#### **+f** - Flood protection
|
|
```
|
|
/MODE #channel +f [5j#i1,4k#K,3n#N]:10
|
|
```
|
|
- Protecție automată împotriva flood
|
|
- Actions: lock canal, ban user, etc.
|
|
- **Status**: NU IMPLEMENTAT (complex)
|
|
|
|
#### **+F** - Free nickchange
|
|
```
|
|
/MODE #channel +F
|
|
```
|
|
- Permite nick changes (opposite of +N)
|
|
- **Status**: DEFAULT (NU trebuie mode special)
|
|
|
|
#### **+G** - Filter bad words
|
|
```
|
|
/MODE #channel +G
|
|
```
|
|
- Filtrare cuvinte obscene
|
|
- Necesită badwords.conf
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
#### **+j** - Join throttle
|
|
```
|
|
/MODE #channel +j 5:10
|
|
```
|
|
- Limită 5 join-uri în 10 secunde
|
|
- Anti-flood bots
|
|
- **Status**: NU IMPLEMENTAT
|
|
|
|
#### **+J** - Kick rejoin delay
|
|
```
|
|
/MODE #channel +J 10
|
|
```
|
|
- User kicked nu poate re-join 10 secunde
|
|
- Anti-troll protection
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
#### **+K** - No knock
|
|
```
|
|
/MODE #channel +K
|
|
```
|
|
- Blochează /KNOCK (request invite)
|
|
- **Status**: DEPINDE DE /KNOCK
|
|
|
|
#### **+L** - Redirect on full
|
|
```
|
|
/MODE #channel +L #overflow
|
|
```
|
|
- Redirecționează useri când canalul e plin
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
#### **+P** - Permanent
|
|
```
|
|
/MODE #channel +P
|
|
```
|
|
- Canalul nu dispare când e gol
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
#### **+V** - No invites
|
|
```
|
|
/MODE #channel +V
|
|
```
|
|
- Blochează /INVITE pe canal
|
|
- **Status**: POATE FI ADĂUGAT
|
|
|
|
---
|
|
|
|
## ⚡ FEATURES SPECIALE
|
|
|
|
### Features Implementate
|
|
|
|
#### **WEBIRC** - Web gateway authentication
|
|
```
|
|
WEBIRC <password> <gateway> <hostname> <IP>
|
|
```
|
|
- Autentificare pentru web-to-IRC gateways
|
|
- Păstrează IP real al userului web
|
|
- **Config**: WebIRC blocks în ircd.conf
|
|
- **Documentație**: WEBIRC_EXPLAINED.md
|
|
|
|
#### **SASL** - SASL authentication
|
|
```
|
|
CAP REQ :sasl
|
|
AUTHENTICATE PLAIN
|
|
```
|
|
- Autentificare înainte de conectare
|
|
- Suport PLAIN, EXTERNAL
|
|
- **Fișiere**: m_authenticate.c, m_sasl.c
|
|
|
|
#### **Account Tracking** - Services integration
|
|
```
|
|
ACCOUNT <nickname> <account>
|
|
```
|
|
- Tracking autentificare la servicii
|
|
- Integration cu X/ChanServ
|
|
- **Fișier**: m_account.c
|
|
|
|
#### **GeoIP** - Location detection
|
|
- Detectare automată locație din IP
|
|
- Afișat în WHOIS (pentru operi)
|
|
- **Feature**: FEAT_GEOIP_ENABLE
|
|
- **Config**: F-line în ircd.conf
|
|
|
|
#### **Host Hiding** - IP cloaking
|
|
- Mascarea IP-ului cu hash
|
|
- Format: A1B2C3.4D5E6F.HASH.IP
|
|
- **Styles**: 3 stiluri disponibile
|
|
- **Feature**: FEAT_HOST_HIDING_STYLE
|
|
|
|
#### **SSL/TLS** - Secure connections
|
|
- Suport conexiuni criptate
|
|
- STARTTLS și SSL direct
|
|
- **Feature**: FEAT_SSL_CERTFILE
|
|
- **Port**: Configurat în Port blocks (ssl = yes)
|
|
|
|
#### **Extended Bans** - Advanced ban masks
|
|
```
|
|
/MODE #channel +b ~a:AccountName (ban by account)
|
|
/MODE #channel +b ~c:#channel (ban if on channel)
|
|
/MODE #channel +b ~r:realname (ban by realname)
|
|
```
|
|
- Ban-uri avansate pe diverse criterii
|
|
- **Feature**: FEAT_EXTBANS
|
|
- **Documentație**: doc/extendedbans.txt
|
|
|
|
#### **Halfops** - Half operators
|
|
- Status @op și +voice
|
|
- Privilegii medii
|
|
- **Feature**: FEAT_HALFOPS
|
|
|
|
#### **Exceptions** - Ban exceptions
|
|
- +e mode pentru except de la bans
|
|
- **Feature**: FEAT_EXCEPTS
|
|
|
|
---
|
|
|
|
### Features ce pot fi Adăugate
|
|
|
|
#### **Cloaking Advanced** - Diverse algoritme
|
|
- Multiple hash algorithms
|
|
- Custom cloaking patterns
|
|
- **Status**: POATE FI ÎMBUNĂTĂȚIT
|
|
|
|
#### **Flood Protection** - Anti-flood automat
|
|
- Detectare automată flood
|
|
- Rate limiting per user/channel
|
|
- **Status**: PARȚIAL (manual cu modes)
|
|
|
|
#### **Bad Words Filter** - Filtrare automată
|
|
- Lista cuvinte interzise
|
|
- Action: warn, kick, ban
|
|
- **Status**: NU IMPLEMENTAT
|
|
|
|
#### **Nick Protection** - Protecție nickname
|
|
- Auto-recover pentru nick-uri rezervate
|
|
- Integration services
|
|
- **Status**: DEPINDE DE SERVICII
|
|
|
|
#### **Channel Logs** - Logging canale
|
|
- Log automat canale specifice
|
|
- Pentru audit/moderare
|
|
- **Status**: NU IMPLEMENTAT
|
|
|
|
#### **Anti-Spam** - Detecție spam avansată
|
|
- Pattern matching
|
|
- Bayesian filtering
|
|
- **Status**: NU IMPLEMENTAT (complex)
|
|
|
|
---
|
|
|
|
## 📖 DOCUMENTAȚIE SUPLIMENTARĂ
|
|
|
|
### Fișiere Doc/ Disponibile
|
|
|
|
- **doc/modes.txt** - Explicații detaliate moduri
|
|
- **doc/extendedbans.txt** - Extended bans examples
|
|
- **doc/readme.features** - Lista features disponibile
|
|
- **doc/features.txt** - Configurare F-lines
|
|
- **doc/readme.who** - Advanced /WHO usage
|
|
- **doc/snomask.txt** - Server notice masks
|
|
- **doc/p10.txt** - Protocol P10 documentation
|
|
|
|
### Markdown Docs (pentru admini)
|
|
|
|
- **SECRET_STEALTH_MODE.md** - Stealth oper features (CONFIDENȚIAL!)
|
|
- **SOLUTIA_FINALA_FLAG_HIDEOPER.md** - Stealth WHOIS implementation
|
|
- **STEALTH_OPER_KILL_MESSAGES.md** - Stealth KILL messages
|
|
- **FIX_HIDE_CHANNELS_STEALTH.md** - Hide channels functionality
|
|
- **WEBIRC_EXPLAINED.md** - WebIRC configuration
|
|
- **SPOOFHOST_EXPLAINED.md** - Spoof host setup
|
|
- **PSEUDO_EXPLAINED.md** - Pseudo commands
|
|
- **SNOMASK_EXPLAINED.md** - Server notice masks
|
|
- **CRULE_EXPLAINED.md** - Connection rules
|
|
|
|
---
|
|
|
|
## 🎯 REZUMAT
|
|
|
|
### Statistici Comenzi
|
|
|
|
- **Comenzi User**: ~50 comenzi disponibile ✅
|
|
- **Comenzi Oper**: ~30 comenzi administrative ✅ **FUNCȚIONALE**
|
|
- **Comenzi SVS***: ~8 comenzi ❌ **NEFUNCȚIONALE** (există cod dar NU sunt activate)
|
|
- **Comenzi Server**: ~25 comenzi interne ✅
|
|
- **TOTAL Funcțional**: ~105 comenzi active
|
|
|
|
⚠️ **NOTĂ IMPORTANTĂ**: Comenzile SVS* (SVSJOIN, SVSPART, SVSNICK, etc.) **NU FUNCȚIONEAZĂ** în versiunea curentă!
|
|
Codul există în fișiere `m_svs*.c` dar comenzile **NU sunt înregistrate în parse.c**!
|
|
|
|
### Statistici Moduri
|
|
|
|
- **User Modes**: 15+ moduri disponibile ✅
|
|
- **Channel Modes**: 30+ moduri disponibile ✅
|
|
- **Extended Bans**: 5+ tipuri ✅
|
|
|
|
### Features Majore
|
|
|
|
- ✅ Stealth Oper Mode (v2.0.1)
|
|
- ✅ SASL Authentication
|
|
- ✅ SSL/TLS Support
|
|
- ✅ GeoIP Location
|
|
- ✅ Host Hiding/Cloaking
|
|
- ✅ Extended Bans
|
|
- ✅ WebIRC Gateway
|
|
- ✅ Services Integration
|
|
|
|
---
|
|
|
|
## 🚀 DEZVOLTARE VIITOARE
|
|
|
|
### Prioritate MAXIMĂ ⚠️ (Cod există, trebuie activat!)
|
|
|
|
1. **SVS* Commands** - Services commands
|
|
- SVSJOIN, SVSPART, SVSNICK, SVSMODE
|
|
- SVSIDENT, SVSQUIT, SWHOIS
|
|
- **Status**: Cod există în `m_svs*.c` dar NU e înregistrat în parse.c
|
|
- **Efort**: SCĂZUT (doar înregistrare în parser)
|
|
- **Impact**: MARE (comenzi esențiale pentru servicii)
|
|
- **Timp estimat**: 2-3 ore (verificare + testare)
|
|
|
|
### Prioritate ÎNALTĂ
|
|
|
|
1. **SPAMFILTER** - Anti-spam automat
|
|
2. **+f mode** - Flood protection channels
|
|
3. **Bad words filter** - Content filtering
|
|
4. **+j mode** - Join throttle
|
|
|
|
### Prioritate MEDIE
|
|
|
|
1. **KNOCK** - Request invite
|
|
2. **SA* aliases** - Simplified commands (SAJOIN, SAPART, etc.) [DEPIND DE SVS*]
|
|
3. **+G mode** - Bad words on channel
|
|
4. **+L mode** - Redirect overflow
|
|
|
|
### Prioritate SCĂZUTĂ
|
|
|
|
1. **Channel logs** - Audit functionality
|
|
2. **Advanced cloaking** - Multiple algorithms
|
|
3. **+B mode** - Bot identification
|
|
4. **DCCALLOW** - DCC whitelist
|
|
|
|
---
|
|
|
|
## ⚠️ ATENȚIE - Comenzi SVS* NEFUNCȚIONALE!
|
|
|
|
### Ce trebuie făcut pentru a activa SVS*:
|
|
|
|
1. **Verificare fișiere**:
|
|
```bash
|
|
ls -la ircd/m_svs*.c ircd/m_swhois.c
|
|
# Ar trebui să existe toate fișierele
|
|
```
|
|
|
|
2. **Verificare Makefile**:
|
|
```bash
|
|
grep "m_svs" ircd/Makefile.in
|
|
# Ar trebui să fie în lista de compilare
|
|
```
|
|
|
|
3. **Adăugare în parse.c**:
|
|
```c
|
|
// În ircd/parse.c, în tabelul de comenzi:
|
|
{ MSG_SVSJOIN, TOK_SVSJOIN, 0, MAXPARA, MFLG_SLOW, 0, {
|
|
m_ignore, m_ignore, ms_svsjoin, m_ignore, m_ignore
|
|
}},
|
|
// Similar pentru toate SVS* commands
|
|
```
|
|
|
|
4. **Recompilare**:
|
|
```bash
|
|
make clean && make
|
|
make install
|
|
```
|
|
|
|
### De ce nu funcționează ACUM:
|
|
|
|
- ✅ Codul **EXISTĂ** în `m_svs*.c` files
|
|
- ❌ Comenzile **NU SUNT ÎNREGISTRATE** în `parse.c`
|
|
- ❌ Parser-ul **NU ȘTIE** de aceste comenzi
|
|
- ❌ Când dai `/SVSJOIN`, primești: **"Unknown command"**
|
|
|
|
### Impact:
|
|
|
|
- **Servicii IRC** (X, ChanServ, NickServ) **NU POT** folosi SVS* pentru control users
|
|
- **Force join/part/nick** **NU FUNCȚIONEAZĂ**
|
|
- **Integration cu Anope/Atheme** **LIMITATĂ**
|
|
|
|
---
|
|
|
|
## 📞 PENTRU ADMINI
|
|
|
|
### Activare Features
|
|
|
|
Majoritatea features se activează în `ircd.conf` prin **F-lines**:
|
|
|
|
```conf
|
|
features {
|
|
"GEOIP_ENABLE" = "TRUE";
|
|
"HOST_HIDING_STYLE" = "3";
|
|
"HALFOPS" = "TRUE";
|
|
"EXTBANS" = "TRUE";
|
|
"EXCEPTS" = "TRUE";
|
|
# etc...
|
|
};
|
|
```
|
|
|
|
### Testing Comenzi
|
|
|
|
```bash
|
|
# În IRC ca oper:
|
|
/STATS m # Command usage
|
|
/STATS f # Features active
|
|
/PRIVS # Your privileges
|
|
```
|
|
|
|
---
|
|
|
|
**Creat de**: Senior Software Architect
|
|
**Data**: 23 Februarie 2026
|
|
**Versiune**: u2.10.12.19+UnderChat(2.0.1)
|
|
**Status**: ✅ DOCUMENTAȚIE COMPLETĂ
|
|
|
|
---
|
|
|
|
**📚 DOCUMENTAȚIE COMPLETĂ PENTRU 100+ COMENZI ȘI 45+ MODURI! 🎉**
|
|
|