| 1 |
/* |
| 2 |
* doc/resv.txt - Overview of the resv system |
| 3 |
* Lee Hardy <lee@leeh.co.uk> |
| 4 |
* |
| 5 |
* Copyright (c) 2001-2020 ircd-hybrid development team |
| 6 |
* |
| 7 |
* $Id$ |
| 8 |
*/ |
| 9 |
|
| 10 |
RESV |
| 11 |
-======- |
| 12 |
|
| 13 |
- What is resv, and why was it coded? |
| 14 |
|
| 15 |
Resv is a method of 'juping' or 'reserving' nicks and channels, to prevent |
| 16 |
local clients using them. It is commonly used to block channels which |
| 17 |
are home to abusers, and which attract DoS. It can also be used to stop |
| 18 |
people pretending to be services, on a network that doesn't support them. |
| 19 |
|
| 20 |
It was coded to replace the method in ircd-hybrid-6 of blocking channels and |
| 21 |
nicks, and was implemented in a much cleaner way to make it faster. |
| 22 |
|
| 23 |
The ircd-hybrid-6 method used to have to physically create channels, and |
| 24 |
suffered flaws, resv does not. |
| 25 |
|
| 26 |
- How can I create a resv? |
| 27 |
|
| 28 |
There are two types of resv. 'permanent' and 'temporary'. Temporary |
| 29 |
resv's will be erased when a server restarts (they will stay through a |
| 30 |
rehash). Permanent resv's will stay through a restart. |
| 31 |
|
| 32 |
You may add permanent resv's into ircd.conf, but they are deprecated. |
| 33 |
They should have the reason for the resv, followed by the nicks and |
| 34 |
channels being resv'd. The following would block the channel |
| 35 |
#services, the nick 'services' and any nick ending in 'serv' (i.e.: chanserv) |
| 36 |
|
| 37 |
resv { |
| 38 |
reason = "There are no services on this network"; |
| 39 |
channel = "#services"; |
| 40 |
nick = "services"; |
| 41 |
nick = "*serv"; |
| 42 |
}; |
| 43 |
|
| 44 |
All resv's created by RESV are stored in cresv.conf or nresv.conf depending |
| 45 |
on the nature of the RESV. |
| 46 |
|
| 47 |
Syntax: /quote resv <#channel|nick> :<reason> |
| 48 |
|
| 49 |
So to resv #warez: |
| 50 |
/quote resv #warez :No warez on this network. |
| 51 |
|
| 52 |
To resv kiddie01: |
| 53 |
/quote resv kiddie01 :Abuse |
| 54 |
|
| 55 |
To resv clone*: |
| 56 |
/quote resv clone* :clones |
| 57 |
|
| 58 |
If a non-admin does this, he will see: |
| 59 |
-irc.leeh.co.uk- You must be an admin to perform a wildcard RESV |
| 60 |
|
| 61 |
- How do I remove a resv? |
| 62 |
|
| 63 |
If the resv is stored in ircd.conf, then the resv must be removed from there, |
| 64 |
then a /rehash, should do the trick. |
| 65 |
|
| 66 |
If the resv was made using /RESV, then use the unresv command: |
| 67 |
|
| 68 |
Syntax: /quote unresv <#channel|nick> |
| 69 |
|
| 70 |
- Can I make a resv on all servers? |
| 71 |
|
| 72 |
No. In ircd-hybrid, resv's are local only. If a channel is full of abusers, |
| 73 |
the solution is not to just block the channel, the abusers themselves |
| 74 |
should be removed through /kline and /dline. |
| 75 |
|
| 76 |
- How do I list resv's? |
| 77 |
|
| 78 |
To list all current resv's: |
| 79 |
/stats q |
| 80 |
|
| 81 |
Which will give a reply like: |
| 82 |
q #warez No warez *@* |
| 83 |
Q hax No hackers allowed here |
| 84 |
|
| 85 |
If the first letter is a 'q', then the resv is in [cn]resv.conf, if the |
| 86 |
first letter is a 'Q' then the resv is hard-coded (in ircd.conf). |
| 87 |
|
| 88 |
- What does a client see if they try using a channel/nick that is resv'd? |
| 89 |
|
| 90 |
They see the numeric 437 (ERR_UNAVAILRESOURCE) |
| 91 |
|
| 92 |
Other networks (namely IRCNet) use this numeric on a split, to indicate |
| 93 |
the channel cannot be joined, as such it is recognized by a lot of |
| 94 |
clients. |
| 95 |
|
| 96 |
- Can an oper see when someone tries to use a resv'd nick/channel? |
| 97 |
|
| 98 |
No. When there is a valid reason for this, then possibly, but I honestly |
| 99 |
don't see why anyone needs it. |
| 100 |
|
| 101 |
- Do you support wildcard channel resv's? |
| 102 |
|
| 103 |
Yes. For an exact match, wildcard characters can be escaped with a |
| 104 |
backslash. |