libpurple/protocols/irc/irc.h

Tue, 19 May 2020 10:29:23 +0000

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 19 May 2020 10:29:23 +0000
changeset 40417
48c621e76141
parent 39961
d508d5b5dd22
child 40500
81417b812648
permissions
-rw-r--r--

Merged in default (pull request #697)

simple: Fix search for message headers

Approved-by: Gary Kramlich

6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
1 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15516
diff changeset
2 * purple
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
3 *
32117
6d49fa9e996c Remove periodic WHO on IRC.
Ethan Blanton <elb@pidgin.im>
parents: 31929
diff changeset
4 * Copyright (C) 2003, 2012 Ethan Blanton <elb@pidgin.im>
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12210
diff changeset
5 *
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
9 * (at your option) any later version.
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
10 *
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
14 * GNU General Public License for more details.
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
15 *
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16993
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
19 */
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
20
39819
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39669
diff changeset
21 #ifndef PURPLE_IRC_IRC_H
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39669
diff changeset
22 #define PURPLE_IRC_IRC_H
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
23
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
24 #include <glib.h>
37418
28302ab00d1a Include gmodule.h in each protocol's eponymous header because they all
Michael McConville <mmcco@mykolab.com>
parents: 37016
diff changeset
25 #include <gmodule.h>
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
26
33404
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
27 #ifdef HAVE_CYRUS_SASL
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
28 #include <sasl/sasl.h>
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
29 #endif
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
30
39961
d508d5b5dd22 Update the irc prpl to only use purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 39819
diff changeset
31 #include <purple.h>
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
32
36579
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
33 #define IRC_TYPE_PROTOCOL (irc_protocol_get_type())
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
34 #define IRC_PROTOCOL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), IRC_TYPE_PROTOCOL, IRCProtocol))
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
35 #define IRC_PROTOCOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), IRC_TYPE_PROTOCOL, IRCProtocolClass))
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
36 #define IRC_IS_PROTOCOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), IRC_TYPE_PROTOCOL))
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
37 #define IRC_IS_PROTOCOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), IRC_TYPE_PROTOCOL))
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
38 #define IRC_PROTOCOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), IRC_TYPE_PROTOCOL, IRCProtocolClass))
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
39
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
40 #define IRC_DEFAULT_SERVER "irc.freenode.net"
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
41 #define IRC_DEFAULT_PORT 6667
10365
5b329161c730 [gaim-migrate @ 11583]
Daniel Atallah <datallah@pidgin.im>
parents: 10208
diff changeset
42 #define IRC_DEFAULT_SSL_PORT 994
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
43
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
44 #define IRC_DEFAULT_CHARSET "UTF-8"
23906
6962e96ddd38 This adds an "auto-detect UTF-8" option to IRC which, when enabled,
Ethan Blanton <elb@pidgin.im>
parents: 23895
diff changeset
45 #define IRC_DEFAULT_AUTODETECT FALSE
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15516
diff changeset
46 #define IRC_DEFAULT_ALIAS "purple"
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
47
11763
1470108bf1ac [gaim-migrate @ 14054]
Will Thompson <resiak@pidgin.im>
parents: 11073
diff changeset
48 #define IRC_DEFAULT_QUIT "Leaving."
11073
e4f03d4a4dca [gaim-migrate @ 13082]
Lalo Martins
parents: 10712
diff changeset
49
38758
5ef4de93fc90 fixes to IRC buffer handling
Shivaram Lingamneni <slingamn@cs.stanford.edu>
parents: 37954
diff changeset
50 #define IRC_BUFSIZE_INCREMENT 1024
5ef4de93fc90 fixes to IRC buffer handling
Shivaram Lingamneni <slingamn@cs.stanford.edu>
parents: 37954
diff changeset
51 #define IRC_MAX_BUFSIZE 16384
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
52
37954
b76dd48063d6 Fix issue #4753 with IRC message truncation
Senya <senya@riseup.net>
parents: 35182
diff changeset
53 #define IRC_MAX_MSG_SIZE 512
b76dd48063d6 Fix issue #4753 with IRC message truncation
Senya <senya@riseup.net>
parents: 35182
diff changeset
54
15516
07e9a078cc06 This makes IRC /names handling generally more robust, as well as
Ethan Blanton <elb@pidgin.im>
parents: 15508
diff changeset
55 #define IRC_NAMES_FLAG "irc-namelist"
07e9a078cc06 This makes IRC /names handling generally more robust, as well as
Ethan Blanton <elb@pidgin.im>
parents: 15508
diff changeset
56
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
57 enum { IRC_USEROPT_SERVER, IRC_USEROPT_PORT, IRC_USEROPT_CHARSET };
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
58 enum irc_state { IRC_STATE_NEW, IRC_STATE_ESTABLISHED };
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
59
39556
622bf98df0ac Remove unnecessary struct tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39324
diff changeset
60 typedef struct
36579
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
61 {
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
62 PurpleProtocol parent;
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
63 } IRCProtocol;
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
64
39556
622bf98df0ac Remove unnecessary struct tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39324
diff changeset
65 typedef struct
36579
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
66 {
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
67 PurpleProtocolClass parent_class;
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
68 } IRCProtocolClass;
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
69
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
70 struct irc_conn {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15516
diff changeset
71 PurpleAccount *account;
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
72 GHashTable *msgs;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
73 GHashTable *cmds;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
74 char *server;
37667
4523af5dc59c irc: Port to use Gio directly for the main connection
Mike Ruprecht <cmaiku@gmail.com>
parents: 37418
diff changeset
75 GSocketConnection *conn;
4523af5dc59c irc: Port to use Gio directly for the main connection
Mike Ruprecht <cmaiku@gmail.com>
parents: 37418
diff changeset
76 GCancellable *cancellable;
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
77 guint timer;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
78 GHashTable *buddies;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
79
21736
8de85200908d applied changes from 5dc4cf40c038206bcf06fe7407e1e308b0264e32
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20217
diff changeset
80 gboolean ison_outstanding;
31284
893f2d78d438 Prevent sending ISON messages larger than 512 bytes. Fixes #9692.
Jeffrey Honig <jch@honig.net>
parents: 28118
diff changeset
81 GList *buddies_outstanding;
21736
8de85200908d applied changes from 5dc4cf40c038206bcf06fe7407e1e308b0264e32
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20217
diff changeset
82
37667
4523af5dc59c irc: Port to use Gio directly for the main connection
Mike Ruprecht <cmaiku@gmail.com>
parents: 37418
diff changeset
83 GDataInputStream *input;
4523af5dc59c irc: Port to use Gio directly for the main connection
Mike Ruprecht <cmaiku@gmail.com>
parents: 37418
diff changeset
84 PurpleQueuedOutputStream *output;
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
85
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
86 GString *motd;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
87 GString *names;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
88 struct _whois {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
89 char *nick;
35182
639ec03ba1ba Improve IRC whois command
Andy Spencer <andy753421@gmail.com>
parents: 33544
diff changeset
90 char *real;
639ec03ba1ba Improve IRC whois command
Andy Spencer <andy753421@gmail.com>
parents: 33544
diff changeset
91 char *login;
639ec03ba1ba Improve IRC whois command
Andy Spencer <andy753421@gmail.com>
parents: 33544
diff changeset
92 char *ident;
639ec03ba1ba Improve IRC whois command
Andy Spencer <andy753421@gmail.com>
parents: 33544
diff changeset
93 char *host;
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
94 char *away;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
95 char *server;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
96 char *serverinfo;
25703
5e04772797b3 applied changes from 0064869870b3507952491598f4d4b8d4a99fbc6b
Ethan Blanton <elb@pidgin.im>
parents: 24574
diff changeset
97 GString *channels;
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
98 int ircop;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
99 int identified;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
100 int idle;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
101 time_t signon;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
102 } whois;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15516
diff changeset
103 PurpleRoomlist *roomlist;
9440
4415b7348579 [gaim-migrate @ 10261]
Ethan Blanton <elb@pidgin.im>
parents: 9248
diff changeset
104
4415b7348579 [gaim-migrate @ 10261]
Ethan Blanton <elb@pidgin.im>
parents: 9248
diff changeset
105 gboolean quitting;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 12210
diff changeset
106
14544
847944da3ca0 [gaim-migrate @ 17201]
Daniel Atallah <datallah@pidgin.im>
parents: 14324
diff changeset
107 time_t recv_time;
16167
8536102557ba Make non-standard mode characters support connection-specific instead of
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
108
8536102557ba Make non-standard mode characters support connection-specific instead of
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
109 char *mode_chars;
23118
7ba846a8187f Fix irc nick collision handling, as requested by that demanding user elb.
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22798
diff changeset
110 char *reqnick;
7ba846a8187f Fix irc nick collision handling, as requested by that demanding user elb.
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22798
diff changeset
111 gboolean nickused;
33404
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
112 #ifdef HAVE_CYRUS_SASL
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
113 sasl_conn_t *sasl_conn;
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
114 const char *current_mech;
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
115 GString *sasl_mechs;
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
116 gboolean mech_works;
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
117 sasl_callback_t *sasl_cb;
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
118 #endif
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
119 };
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
120
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
121 struct irc_buddy {
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
122 char *name;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
123 gboolean online;
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
124 gboolean flag;
31284
893f2d78d438 Prevent sending ISON messages larger than 512 bytes. Fixes #9692.
Jeffrey Honig <jch@honig.net>
parents: 28118
diff changeset
125 gboolean new_online_status;
28118
ba26e203a9ca irc: Handle a buddy appearing in multiple groups properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 25703
diff changeset
126 int ref;
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
127 };
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
128
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
129 typedef int (*IRCCmdCallback) (struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
130
36775
5e59f252d777 Added G_MODULE_EXPORT declaration to protocol get_type() functions
Ankit Vani <a@nevitus.org>
parents: 36688
diff changeset
131 G_MODULE_EXPORT GType irc_protocol_get_type(void);
36579
37b5e4a9e18e Refactored irc to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 34570
diff changeset
132
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
133 int irc_send(struct irc_conn *irc, const char *buf);
31929
3c1f2bba1933 Fix races between irc_send_raw() and normal prpl-internal sends.
Ethan Blanton <elb@pidgin.im>
parents: 31565
diff changeset
134 int irc_send_len(struct irc_conn *irc, const char *buf, int len);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
135 gboolean irc_blist_timeout(struct irc_conn *irc);
31565
1138b2c998ec propagate from branch 'im.pidgin.pidgin' (head e131c2da768d5bd01e4bcb33b488a43ffd378208)
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31451
diff changeset
136 gboolean irc_who_channel_timeout(struct irc_conn *irc);
31284
893f2d78d438 Prevent sending ISON messages larger than 512 bytes. Fixes #9692.
Jeffrey Honig <jch@honig.net>
parents: 28118
diff changeset
137 void irc_buddy_query(struct irc_conn *irc);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
138
20217
9249f67ef61e applied changes from 6c08c628ee64e16c824829c25befc0ca09338f9d
Luke Schierer <lschiere@pidgin.im>
parents: 19859
diff changeset
139 char *irc_escape_privmsg(const char *text, gssize length);
9249f67ef61e applied changes from 6c08c628ee64e16c824829c25befc0ca09338f9d
Luke Schierer <lschiere@pidgin.im>
parents: 19859
diff changeset
140
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
141 char *irc_mirc2html(const char *string);
8529
a598c585c575 [gaim-migrate @ 9268]
Ethan Blanton <elb@pidgin.im>
parents: 8351
diff changeset
142 char *irc_mirc2txt(const char *string);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
143
24574
4ee71b4f335f Strip multiple leading mode characters from incoming nicknames.
Marcos García Ochoa <magao@bigfoot.com>
parents: 23906
diff changeset
144 const char *irc_nick_skip_mode(struct irc_conn *irc, const char *string);
4ee71b4f335f Strip multiple leading mode characters from incoming nicknames.
Marcos García Ochoa <magao@bigfoot.com>
parents: 23906
diff changeset
145
10208
b6cafee18b0d [gaim-migrate @ 11330]
Ethan Blanton <elb@pidgin.im>
parents: 9466
diff changeset
146 gboolean irc_ischannel(const char *string);
b6cafee18b0d [gaim-migrate @ 11330]
Ethan Blanton <elb@pidgin.im>
parents: 9466
diff changeset
147
9130
2e67295dd047 [gaim-migrate @ 9908]
Nathan Walp <nwalp@pidgin.im>
parents: 9030
diff changeset
148 void irc_register_commands(void);
36663
c61b6dbc1f03 Make protocols unregister their commands when being removed
Ankit Vani <a@nevitus.org>
parents: 36638
diff changeset
149 void irc_unregister_commands(void);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
150 void irc_msg_table_build(struct irc_conn *irc);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
151 void irc_parse_msg(struct irc_conn *irc, char *input);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
152 char *irc_parse_ctcp(struct irc_conn *irc, const char *from, const char *to, const char *msg, int notice);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
153 char *irc_format(struct irc_conn *irc, const char *format, ...);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
154
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
155 void irc_msg_default(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
156 void irc_msg_away(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
157 void irc_msg_badmode(struct irc_conn *irc, const char *name, const char *from, char **args);
10633
ac455de21138 [gaim-migrate @ 12113]
Ethan Blanton <elb@pidgin.im>
parents: 10564
diff changeset
158 void irc_msg_badnick(struct irc_conn *irc, const char *name, const char *from, char **args);
22798
a501b4137c64 Handle IRC ban lists in-channel. Channels which are not joined are
Ethan Blanton <elb@pidgin.im>
parents: 21736
diff changeset
159 void irc_msg_ban(struct irc_conn *irc, const char *name, const char *from, char **args);
10659
caf16376fba0 [gaim-migrate @ 12192]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10633
diff changeset
160 void irc_msg_banfull(struct irc_conn *irc, const char *name, const char *from, char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
161 void irc_msg_banned(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
162 void irc_msg_chanmode(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
163 void irc_msg_endwhois(struct irc_conn *irc, const char *name, const char *from, char **args);
15501
8547fa591578 Recognize non-standard mode characters communicated in an 005 numeric for IRC
Ethan Blanton <elb@pidgin.im>
parents: 15435
diff changeset
164 void irc_msg_features(struct irc_conn *irc, const char *name, const char *from, char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
165 void irc_msg_invite(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
166 void irc_msg_inviteonly(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
167 void irc_msg_ison(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
168 void irc_msg_join(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
169 void irc_msg_kick(struct irc_conn *irc, const char *name, const char *from, char **args);
8114
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
170 void irc_msg_list(struct irc_conn *irc, const char *name, const char *from, char **args);
15508
51a669b06193 This should fix up IRC logins for servers which do not provide an
Ethan Blanton <elb@pidgin.im>
parents: 15501
diff changeset
171 void irc_msg_luser(struct irc_conn *irc, const char *name, const char *from, char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
172 void irc_msg_mode(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
173 void irc_msg_motd(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
174 void irc_msg_names(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
175 void irc_msg_nick(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
176 void irc_msg_nickused(struct irc_conn *irc, const char *name, const char *from, char **args);
7877
e523a7081aaf [gaim-migrate @ 8531]
Ethan Blanton <elb@pidgin.im>
parents: 6718
diff changeset
177 void irc_msg_nochan(struct irc_conn *irc, const char *name, const char *from, char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
178 void irc_msg_nonick(struct irc_conn *irc, const char *name, const char *from, char **args);
6718
c535c7b09353 [gaim-migrate @ 7245]
Ethan Blanton <elb@pidgin.im>
parents: 6714
diff changeset
179 void irc_msg_nochangenick(struct irc_conn *irc, const char *name, const char *from, char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
180 void irc_msg_nosend(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
181 void irc_msg_notice(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
182 void irc_msg_notinchan(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
183 void irc_msg_notop(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
184 void irc_msg_part(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
185 void irc_msg_ping(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
186 void irc_msg_pong(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
187 void irc_msg_privmsg(struct irc_conn *irc, const char *name, const char *from, char **args);
16993
536c1485c139 Handle channel joins when registration is required more gracefully.
Ethan Blanton <elb@pidgin.im>
parents: 16474
diff changeset
188 void irc_msg_quit(struct irc_conn *irc, const char *name, const char *from, char **args);
6714
414a52265486 [gaim-migrate @ 7240]
Ethan Blanton <elb@pidgin.im>
parents: 6415
diff changeset
189 void irc_msg_regonly(struct irc_conn *irc, const char *name, const char *from, char **args);
10564
1ee5ae99711d [gaim-migrate @ 11946]
Don Seiler <rizzo@gentoo.org>
parents: 10365
diff changeset
190 void irc_msg_time(struct irc_conn *irc, const char *name, const char *from, char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
191 void irc_msg_topic(struct irc_conn *irc, const char *name, const char *from, char **args);
33544
3780e4cb9738 Print topic setter information at channel join.
Ethan Blanton <elb@pidgin.im>
parents: 33404
diff changeset
192 void irc_msg_topicinfo(struct irc_conn *irc, const char *name, const char *from, char **args);
10712
2aded9e9abd4 [gaim-migrate @ 12306]
Richard Laager <rlaager@pidgin.im>
parents: 10659
diff changeset
193 void irc_msg_unavailable(struct irc_conn *irc, const char *name, const char *from, char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
194 void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
195 void irc_msg_wallops(struct irc_conn *irc, const char *name, const char *from, char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
196 void irc_msg_whois(struct irc_conn *irc, const char *name, const char *from, char **args);
31565
1138b2c998ec propagate from branch 'im.pidgin.pidgin' (head e131c2da768d5bd01e4bcb33b488a43ffd378208)
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31451
diff changeset
197 void irc_msg_who(struct irc_conn *irc, const char *name, const char *from, char **args);
33404
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
198 #ifdef HAVE_CYRUS_SASL
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
199 void irc_msg_cap(struct irc_conn *irc, const char *name, const char *from, char **args);
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
200 void irc_msg_auth(struct irc_conn *irc, char *arg);
38908
86e7c9ca0bcd irc: handle AUTHENTICATE as a normal command with server prefix
dx <dx@dxzone.com.ar>
parents: 38758
diff changeset
201 void irc_msg_authenticate(struct irc_conn *irc, const char *name, const char *from, char **args);
33404
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
202 void irc_msg_authok(struct irc_conn *irc, const char *name, const char *from, char **args);
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
203 void irc_msg_authtryagain(struct irc_conn *irc, const char *name, const char *from, char **args);
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
204 void irc_msg_authfail(struct irc_conn *irc, const char *name, const char *from, char **args);
bbd52f93184e Implement SASL support for IRC, using Cyrus.
Thijs Alkemade <thijsalkemade@gmail.com>
parents: 32117
diff changeset
205 #endif
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
206
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
207 void irc_cmd_table_build(struct irc_conn *irc);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
208
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
209 int irc_cmd_default(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
210 int irc_cmd_away(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
23895
4d883627111f /ctcp command for IRC
Vladislav Guberinic <neosisani@gmail.com>
parents: 23118
diff changeset
211 int irc_cmd_ctcp(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
212 int irc_cmd_ctcp_action(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
13943
79a311d7a211 [gaim-migrate @ 16361]
Ethan Blanton <elb@pidgin.im>
parents: 13201
diff changeset
213 int irc_cmd_ctcp_version(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
214 int irc_cmd_invite(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
215 int irc_cmd_join(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
216 int irc_cmd_kick(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
8114
201c03cf6c5f [gaim-migrate @ 8818]
Tim Ringenbach <marv@pidgin.im>
parents: 7877
diff changeset
217 int irc_cmd_list(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
218 int irc_cmd_mode(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
219 int irc_cmd_names(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
220 int irc_cmd_nick(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
221 int irc_cmd_op(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
222 int irc_cmd_privmsg(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
223 int irc_cmd_part(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
224 int irc_cmd_ping(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
225 int irc_cmd_quit(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
226 int irc_cmd_quote(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
227 int irc_cmd_query(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
228 int irc_cmd_remove(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
12210
d7e2c9f73e16 [gaim-migrate @ 14512]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12143
diff changeset
229 int irc_cmd_service(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
10564
1ee5ae99711d [gaim-migrate @ 11946]
Don Seiler <rizzo@gentoo.org>
parents: 10365
diff changeset
230 int irc_cmd_time(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
231 int irc_cmd_topic(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
232 int irc_cmd_wallops(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
233 int irc_cmd_whois(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
16474
bc8580a69dba /whowas for IRC. Thanks, achris.
Ethan Blanton <elb@pidgin.im>
parents: 16167
diff changeset
234 int irc_cmd_whowas(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
6333
551f4a5b3c33 [gaim-migrate @ 6832]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
235
39669
bab07ecb9330 Make PurpleXfer a derivable type and create subclasses in all the protocols that support file transfers
Gary Kramlich <grim@reaperworld.com>
parents: 39556
diff changeset
236 #define IRC_TYPE_XFER (irc_xfer_get_type())
bab07ecb9330 Make PurpleXfer a derivable type and create subclasses in all the protocols that support file transfers
Gary Kramlich <grim@reaperworld.com>
parents: 39556
diff changeset
237 G_DECLARE_FINAL_TYPE(IrcXfer, irc_xfer, IRC, XFER, PurpleXfer);
bab07ecb9330 Make PurpleXfer a derivable type and create subclasses in all the protocols that support file transfers
Gary Kramlich <grim@reaperworld.com>
parents: 39556
diff changeset
238
bab07ecb9330 Make PurpleXfer a derivable type and create subclasses in all the protocols that support file transfers
Gary Kramlich <grim@reaperworld.com>
parents: 39556
diff changeset
239 void irc_xfer_register(GTypeModule *module);
bab07ecb9330 Make PurpleXfer a derivable type and create subclasses in all the protocols that support file transfers
Gary Kramlich <grim@reaperworld.com>
parents: 39556
diff changeset
240
38841
518362268798 make sure all the PurpleProtocolXfer parameters are named prplxfer
Gary Kramlich <grim@reaperworld.com>
parents: 38835
diff changeset
241 PurpleXfer *irc_dccsend_new_xfer(PurpleProtocolXfer *prplxfer, PurpleConnection *gc, const char *who);
518362268798 make sure all the PurpleProtocolXfer parameters are named prplxfer
Gary Kramlich <grim@reaperworld.com>
parents: 38835
diff changeset
242 void irc_dccsend_send_file(PurpleProtocolXfer *prplxfer, PurpleConnection *gc, const char *who, const char *file);
8351
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8114
diff changeset
243 void irc_dccsend_recv(struct irc_conn *irc, const char *from, const char *msg);
39819
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39669
diff changeset
244
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39669
diff changeset
245 #endif /* PURPLE_IRC_IRC_H */

mercurial