]> jfr.im git - solanum.git/blame - doc/monitor.txt
Add ratelimit for high-bandwidth commands.
[solanum.git] / doc / monitor.txt
CommitLineData
212380e3
AC
1MONITOR - Protocol for notification of when clients become online/offline
2 Lee Hardy <lee -at- leeh.co.uk>
8aba962d 3$Id: monitor.txt 3520 2007-06-30 22:15:35Z jilles $
212380e3
AC
4-------------------------------------------------------------------------
5
6Currently, ISON requests by clients use a large amount of bandwidth. It is
7expected that it is more efficient for this to be done by the server at the
8expense of cpu cycles. The WATCH implementation that was designed to counter
9this is (in my opinion) severely flawed. This protocol was designed to
10provide a cleaner implementation.
11
12The command used throughout this specification is "MONITOR".
13
14Each use of the MONITOR command takes a special modifier, indicating
15the operation being performed. The client MUST NOT attempt to specify
16more than one modifier. Only one special modifier may be used per MONITOR
17command.
18
19Thus it is impossible to combine additions to the list with removals from
20the list -- these MUST be done with two seperate commands.
21
22A client MUST NOT issue the MONITOR command more than once per second.
23Any attempts to do so will generate an error.
24
25In commands and numerics where multiple nicknames may occur, the length of
26the nickname list is limited only by the buffer size of 512 chars, as
27defined in RFC1459.
28
29Support of this specification is indicated by the MONITOR token in
30RPL_ISUPPORT (005). This token takes an optional parameter, of the maximum
31amount of nicknames a client may have in their monitor list. If no
32parameter is specified, there is no limit. A typical token would be:
33MONITOR=100
34
35MONITOR + nick[,nick2]*
36-----------------------
37Adds the given list of nicknames to the list of nicknames being monitored.
38
39If any of the nicknames being added are online, the server will generate
40RPL_MONONLINE numerics listing those nicknames that are online.
41
42If any of the nicknames being added are offline, the server will generate
43RPL_MONOFFLINE numerics listing those nicknames that are offline.
44
45MONITOR - nick[,nick2]*
46-----------------------
47Removes the given list of nicknames from the list of nicknames being
48monitored. No output will be returned for use of this command.
49
50MONITOR C
51---------
52Clears the list of nicknames being monitored. No output will be returned
53for use of this command.
54
55MONITOR L
56---------
57Outputs the current list of nicknames being monitored. All output will use
58RPL_MONLIST, and the output will be terminated with RPL_ENDOFMONLIST
59
60MONITOR S
61---------
62Outputs for each nickname in the list being monitored, whether the client is
63online or offline. All nicks that are online will be sent using
64RPL_MONONLINE, all nicks that are offline will be sent using RPL_MONOFFLINE.
212380e3
AC
65
66
67Numeric replies
68---------------
69
70730 - RPL_MONONLINE
71-------------------
72:<server> 730 <nick> :nick!user@host[,nick!user@host]*
73
74This numeric is used to indicate to a client that either a nickname has just
75become online, or that a nickname they have added to their monitor list is
76online.
77
8aba962d
JT
78The server may send "*" instead of the target nick (<nick>). (This makes it
79possible to send the exact same message to all clients monitoring a certain
80nick.)
81
212380e3
AC
82731 - RPL_MONOFFLINE
83--------------------
84:<server> 731 <nick> :nick[,nick1]*
85
86This numeric is used to indicate to a client that either a nickname has just
87left the irc network, or that a nickname they have added to their monitor
88list is offline.
89
90The argument is a chained list of nicknames that are offline.
91
8aba962d
JT
92As with 730 the server may send "*" instead of the target nick.
93
212380e3
AC
94732 - RPL_MONLIST
95-----------------
96:<server> 732 <nick> :nick[,nick1]*
97
98This numeric is used to indicate to a client the list of nicknames they have
99in their monitor list.
100
101733 - RPL_ENDOFMONLIST
102------------------------
103:<server> 733 <nick> :End of MONITOR list
104
105This numeric is used to indicate to a client the end of a monitor list.
106
107734 - ERR_MONLISTFULL
108---------------------
109:<server> 734 <nick> <limit> <nicks> :Monitor list is full.
110
111This numeric is used to indicate to a client that their monitor list is
112full, so the command failed. The <limit> parameter is the maximum number of
113nicknames a client may have in their list, the <nicks> parameter is the list
114of nicknames, as the client sent them, that cannot be added.
115
116