Mercurial > irccd
annotate man/libirccd-rule.3 @ 1032:06b35c32a179
man: add example in libirccd-rule
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 02 Mar 2021 20:03:00 +0100 |
parents | efeb73a9918b |
children | f18988efb96b |
rev | line source |
---|---|
1013
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 .\" |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 .\" Copyright (c) 2013-2021 David Demelier <markand@malikania.fr> |
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]; |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 TAILQ_ENTRY(irc_rule) link; |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 }; |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 .Ed |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 The fields of |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 .Vt "struct irc_rule" |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 are: |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 .Bl -tag -width channels |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 .It Va action |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 One of the |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 .Vt enum irc_rule_action |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 enumeration. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 .It Va servers |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 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
|
82 .It Va channels |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 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
|
84 .It Va origins |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 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
|
86 .It Va plugins |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 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
|
88 .It Va events |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 A colon separated list of events to match. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 .It Va link |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 Abstract entry to be used with the |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 .Xr sys/queue 3 |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 macros. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 .El |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 The |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 .Vt "struct irc_rule_list" |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 is an abstract type declared with |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 .Fn TAILQ_HEAD |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 from |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 .Xr queue 3 |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 macros. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 The |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 .Vt "enum irc_rule_action" |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 is declared as: |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 .Bd -literal |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 enum irc_rule_action { |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 IRC_RULE_ACCEPT, |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 IRC_RULE_DROP |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 }; |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 .Ed |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 The following enumerators are available: |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 .Bl -tag -width IRC_RULE_ACCEPT |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 .It Dv IRC_RULE_ACCEPT |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 Allows the current event. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 .It Dv IRC_RULE_DROP |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 Drop the current event. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 .El |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 The |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 .Fn irc_rule_new |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 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
|
125 .Fa action |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 and return it. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 The |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 .Fn irc_rule_add |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 function adds the new |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 .Fa value |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 to the char array |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 .Fa list |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 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
|
135 .Vt struct irc_rule . |
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_remove |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 removes the existing |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 .Fa value |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 from the char array |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 .Fa list . |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 The |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 .Fn irc_rule_match |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 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
|
147 .Fa rule . |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 All of |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 .Fa server , |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 .Fa channel , |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 .Fa origin , |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 .Fa plugin , |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 and |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 .Fa event |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 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
|
156 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
|
157 match a server |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 .Dq example |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 and argument |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 .Fa server |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 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
|
162 server criterion then argument |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 .Fa server |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 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
|
165 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 The |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 .Fn irc_rule_matchlist |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 function is similar to |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 .Fn irc_rule_match |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 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
|
171 .Fa list |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 instead. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 The |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 .Fn irc_rule_finish |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 clears resources allocated for the |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 .Fa rule . |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 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
|
179 calling this function. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 .\" RETURN VALUES |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 .Sh RETURN VALUES |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 The function |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 .Fn irc_rule_add |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 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
|
185 .Va errno |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 is set to indicate the error. |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 .Pp |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 The functions |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 .Fn irc_rule_match |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 and |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 .Fn irc_rule_matchlist |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 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
|
193 .\" EXAMPLES |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
194 .Sh EXAMPLES |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
195 Create a rule that matches servers |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
196 .Dq example |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
197 or |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
198 .Dq wanadoo |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
199 on channel |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
200 .Dq #staff |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
201 for the plugin |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
202 .Dq hangman |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
203 and drop it. |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
204 .Bd -literal -offset indent |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
205 struct irc_rule *r; |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
206 |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
207 r = irc_rule_new(IRC_RULE_DROP); |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
208 irc_rule_add(r->servers, "example"); |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
209 irc_rule_add(r->servers, "wanadoo"); |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
210 irc_rule_add(r->channels, "#staff"); |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
211 irc_rule_add(r->plugins, "hangman"); |
06b35c32a179
man: add example in libirccd-rule
David Demelier <markand@malikania.fr>
parents:
1013
diff
changeset
|
212 .Ed |
1013
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
213 .\" ERRORS |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
214 .Sh ERRORS |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
215 The function |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
216 .Fn irc_rule_add |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
217 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
|
218 .Bl -tag -width Er |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
219 .It Bq Er ENOMEM |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
220 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
|
221 .Dv IRC_RULE_LEN . |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
222 .El |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
223 .\" SEE ALSO |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
224 .Sh SEE ALSO |
efeb73a9918b
man: add C API for what is mostly stabilized
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
225 .Xr libirccd 3 |