annotate man/libirccd-channel.3 @ 1142:c0365364971c release-4.0

misc: create release-4.0 branch
author David Demelier <markand@malikania.fr>
date Thu, 03 Feb 2022 13:13:50 +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: 1013
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-CHANNEL 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-channel
1137
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
22 .Nd channels and their users
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
23 .\" SYNOPSIS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
24 .Sh SYNOPSIS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
25 .In irccd/channel.h
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
26 .Ft "struct irc_channel *"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
27 .Fn irc_channel_new "const char *name, const char *password, int joined"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
28 .Ft void
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
29 .Fn irc_channel_add "struct irc_channel *ch, const char *nickname, int modes"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
30 .Ft "struct irc_channel_user *"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
31 .Fn irc_channel_get "const struct irc_channel *ch, const char *nickname"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
32 .Ft void
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
33 .Fn irc_channel_clear "struct irc_channel *ch"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
34 .Ft void
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
35 .Fn irc_channel_remove "struct irc_channel *ch, const char *nickname"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
36 .Ft void
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
37 .Fn irc_channel_finish "struct irc_channel *ch"
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
38 .\" DESCRIPTION
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
39 .Sh DESCRIPTION
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
40 This family of functions provides channel inspection and their associated
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
41 users. A channel consists of a set of users with their mode and a joined status.
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
42 The daemon tracks nickname changes, channel modes and joining status.
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
43 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
44 The header exposes the following structures:
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
45 .Bd -literal
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
46 struct irc_channel_user {
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
47 char nickname[IRC_NICKNAME_LEN]; /* IRC nickname */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
48 int modes; /* Bitmask modes */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
49 struct irc_channel_user *next; /* next user */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
50 };
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
51 .Ed
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
52 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
53 This structure describe a user.
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
54 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
55 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
56 .Va modes
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
57 field is a bitmask that contains all modes applied to a user in a channel. The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
58 .Vt irc_server_params
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
59 struct (defined in
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
60 .In irccd/server.h )
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
61 contains the array
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
62 .Va prefixes
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
63 which describes every mode and their character prefix. For example, if a user is
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
64 a channel operator and this prefix is the seconth in the
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
65 .Va prefixes
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
66 member, then the
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
67 .Va modes
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
68 field will be set to
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
69 .Em 0x2 .
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
70 .Bd -literal
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
71 struct irc_channel {
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
72 char name[IRC_CHANNEL_LEN]; /* channel name */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
73 char password[IRC_PASSWORD_LEN]; /* optional password */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
74 int joined; /* 1 if joined, 0 otherwise */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
75 struct irc_channel_user *users; /* linked list of users */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
76 struct irc_channel *next; /* next channel */
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
77 };
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
78 .Ed
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
79 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
80 This structure describe a channel and its users.
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
81 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
82 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
83 .Fn irc_channel_new
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
84 function dynamically allocates a channel using
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
85 .Ar name ,
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
86 .Ar password
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
87 and its
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
88 .Ar joined
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
89 status.
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
90 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
91 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
92 .Fn irc_channel_add
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
93 function appends a new user as
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
94 .Ar nickname
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
95 into the channel
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
96 .Ar ch
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
97 if it does not already exist. The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
98 .Ar modes
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
99 argument contains the bitmask modes applied to this user.
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
100 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
101 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
102 .Fn irc_channel_get
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
103 searches for
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
104 .Ar nickname
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
105 user in the channel
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
106 .Ar ch
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
107 and returns it, NULL if not found.
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
108 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
109 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
110 .Fn irc_channel_clear
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
111 removes all users from the channel
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
112 .Ar ch .
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
113 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
114 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
115 .Fn irc_channel_remove
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
116 function removes the user specified by
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
117 .Ar nickname
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
118 from the channel
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
119 .Ar ch .
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
120 .Pp
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
121 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
122 .Fn irc_channel_finish
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
123 function deallocates all memory from the channel
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
124 .Ar ch .
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
125 .\" SEE ALSO
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
126 .Sh SEE ALSO
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
127 .Xr libirccd 3 ,
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
128 .Xr libirccd-irccd 3 ,
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
129 .Xr libirccd-server 3
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
130 .\" AUTHORS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
131 .Sh AUTHORS
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
132 The
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
133 .Nm irccd
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
134 daemon was written by
c165e975f144 man: improvements
David Demelier <markand@malikania.fr>
parents: 1136
diff changeset
135 .An David Demelier Aq Mt markand@malikania.fr .