annotate man/libirccd-rule.3 @ 1141:5959952c24d1 stable-4

misc: create stable-4 branch
author David Demelier <markand@malikania.fr>
date Thu, 03 Feb 2022 13:13:38 +0100
parents c165e975f144
children 1845a0509a93
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1013
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 .\"
1136
f06e9761cc90 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 1073
diff changeset
2 .\" Copyright (c) 2013-2022 David Demelier <markand@malikania.fr>
1013
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 .\"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 .\" Permission to use, copy, modify, and/or distribute this software for any
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 .\" purpose with or without fee is hereby granted, provided that the above
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 .\" copyright notice and this permission notice appear in all copies.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 .\"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 .\"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 .Dd @IRCCD_MAN_DATE@
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 .Dt LIBIRCCD-RULE 3
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 .Os
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 .\" NAME
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 .Sh NAME
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 .Nm libirccd-rule
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 .Nd create and match rules
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 .\" SYNOPSIS
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 .Sh SYNOPSIS
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 .In irccd/rule.h
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 .Ft struct irc_rule *
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 .Fn irc_rule_new "enum irc_rule_action action"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 .Ft int
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 .Fn irc_rule_add "char *list, const char *value"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 .Ft void
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 .Fn irc_rule_remove "char *list, const char *value"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 .Ft int
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 .Fo irc_rule_match
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 .Fa "const struct irc_rule *rule"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 .Fa "const char *server"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 .Fa "const char *channel"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 .Fa "const char *origin"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 .Fa "const char *plugin"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 .Fa "const char *event"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 .Fc
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 .Ft int
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 .Fo irc_rule_matchlist
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 .Fa "const struct irc_rule_list *list"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 .Fa "const char *server"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 .Fa "const char *channel"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 .Fa "const char *origin"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 .Fa "const char *plugin"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 .Fa "const char *event"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 .Fc
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 .Ft void
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 .Fn irc_rule_finish "struct irc_rule *rule"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 .\" DESCRIPTION
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 .Sh DESCRIPTION
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 The function in this header provides rule matching for filtering plugins
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 depending on IRC events.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 Rules are defined in the
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 .Vt "struct irc_rule"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 declared as following:
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 .Bd -literal
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 struct irc_rule {
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 enum irc_rule_action action;
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 char servers[IRC_RULE_LEN];
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 char channels[IRC_RULE_LEN];
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 char origins[IRC_RULE_LEN];
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 char plugins[IRC_RULE_LEN];
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 char events[IRC_RULE_LEN];
1073
f18988efb96b man: update documentation
David Demelier <markand@malikania.fr>
parents: 1032
diff changeset
68 struct irc_rule *next;
f18988efb96b man: update documentation
David Demelier <markand@malikania.fr>
parents: 1032
diff changeset
69 struct irc_rule *prev;
1013
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 };
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 .Ed
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 The fields of
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 .Vt "struct irc_rule"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 are:
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 .Bl -tag -width channels
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 .It Va action
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 One of the
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 .Vt enum irc_rule_action
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 enumeration.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 .It Va servers
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 A colon separated list of servers identifiers to match.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 .It Va channels
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 A colon separated list of channels to match.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 .It Va origins
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 A colon separated list of origins to match.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 .It Va plugins
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 A colon separated list of plugins to match.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 .It Va events
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 A colon separated list of events to match.
1073
f18988efb96b man: update documentation
David Demelier <markand@malikania.fr>
parents: 1032
diff changeset
91 .It Va next
f18988efb96b man: update documentation
David Demelier <markand@malikania.fr>
parents: 1032
diff changeset
92 Pointer to the next rule.
f18988efb96b man: update documentation
David Demelier <markand@malikania.fr>
parents: 1032
diff changeset
93 .It Va perv
f18988efb96b man: update documentation
David Demelier <markand@malikania.fr>
parents: 1032
diff changeset
94 Pointer to the previous rule.
1013
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 .El
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 The
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 .Vt "enum irc_rule_action"
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 is declared as:
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 .Bd -literal
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 enum irc_rule_action {
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 IRC_RULE_ACCEPT,
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 IRC_RULE_DROP
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 };
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 .Ed
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 The following enumerators are available:
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 .Bl -tag -width IRC_RULE_ACCEPT
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 .It Dv IRC_RULE_ACCEPT
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 Allows the current event.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 .It Dv IRC_RULE_DROP
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 Drop the current event.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 .El
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 The
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 .Fn irc_rule_new
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 allocates a new rule with the given
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 .Fa action
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 and return it.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 The
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 .Fn irc_rule_add
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 function adds the new
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 .Fa value
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 to the char array
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 .Fa list
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 which should be one of the member field from the
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 .Vt struct irc_rule .
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 The
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 .Fn irc_rule_remove
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 removes the existing
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 .Fa value
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 from the char array
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 .Fa list .
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 The
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 .Fn irc_rule_match
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 function tests if the criteria given as arguments is allowed for this
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 .Fa rule .
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 All of
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 .Fa server ,
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 .Fa channel ,
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 .Fa origin ,
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 .Fa plugin ,
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 and
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 .Fa event
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 can be NULL, in that case the rule is considered as not matching only if the
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 rule does not contain a criterion for one of each. For example, if the rule must
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 match a server
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 .Dq example
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 and argument
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 .Fa server
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 is NULL, then the rule will not match. Otherwise, if the rule does not have a
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 server criterion then argument
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 .Fa server
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 is ignored entirely and this specific server criterion matches.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 The
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 .Fn irc_rule_matchlist
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 function is similar to
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 .Fn irc_rule_match
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 except that it analyze the whole linked
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 .Fa list
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 instead.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 The
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 .Fn irc_rule_finish
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 clears resources allocated for the
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 .Fa rule .
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 Make sure to remove it from the linked list where it is attached to before
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 calling this function.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 .\" RETURN VALUES
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 .Sh RETURN VALUES
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 The function
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 .Fn irc_rule_add
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 returns 0 on success and -1 on errors. In that case
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 .Va errno
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 is set to indicate the error.
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 .Pp
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 The functions
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 .Fn irc_rule_match
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 and
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 .Fn irc_rule_matchlist
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 returns non-zero if the rule is allowed.
1032
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
186 .\" EXAMPLES
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
187 .Sh EXAMPLES
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
188 Create a rule that matches servers
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
189 .Dq example
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
190 or
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
191 .Dq wanadoo
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
192 on channel
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
193 .Dq #staff
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
194 for the plugin
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
195 .Dq hangman
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
196 and drop it.
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
197 .Bd -literal -offset indent
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
198 struct irc_rule *r;
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
199
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
200 r = irc_rule_new(IRC_RULE_DROP);
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
201 irc_rule_add(r->servers, "example");
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
202 irc_rule_add(r->servers, "wanadoo");
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
203 irc_rule_add(r->channels, "#staff");
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
204 irc_rule_add(r->plugins, "hangman");
06b35c32a179 man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents: 1013
diff changeset
205 .Ed
1013
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 .\" ERRORS
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 .Sh ERRORS
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 The function
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 .Fn irc_rule_add
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 may set one of the following error:
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 .Bl -tag -width Er
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 .It Bq Er ENOMEM
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 When the limit of a rule criterion has been reached, which is
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 .Dv IRC_RULE_LEN .
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 .El
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 .\" SEE ALSO
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 .Sh SEE ALSO
efeb73a9918b man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 .Xr libirccd 3
1137
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
219 .\" AUTHORS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
220 .Sh AUTHORS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
221 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
222 .Nm irccd
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
223 daemon was written by
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
224 .An David Demelier Aq Mt markand@malikania.fr .