Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
1 | /** |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
2 | * @file stun.h STUN API |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
3 | * @ingroup core |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
6 | /* purple |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
7 | * |
| 15884 | 8 | * Purple is the legal property of its developers, whose names are too numerous |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
10 | * source distribution. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
11 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
12 | * This program is free software; you can redistribute it and/or modify |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
13 | * it under the terms of the GNU General Public License as published by |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
14 | * the Free Software Foundation; either version 2 of the License, or |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
15 | * (at your option) any later version. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
16 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
17 | * This program is distributed in the hope that it will be useful, |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
20 | * GNU General Public License for more details. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
21 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
22 | * You should have received a copy of the GNU General Public License |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
23 | * 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:
15884
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
25 | */ |
| 15884 | 26 | #ifndef _PURPLE_STUN_H_ |
| 27 | #define _PURPLE_STUN_H_ | |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
28 | |
|
14988
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
29 | #ifdef __cplusplus |
|
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
30 | extern "C" { |
|
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
31 | #endif |
|
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
32 | |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
33 | /**************************************************************************/ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
34 | /** @name STUN API */ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
35 | /**************************************************************************/ |
|
12050
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
36 | /*@{*/ |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
37 | |
| 15884 | 38 | typedef struct _PurpleStunNatDiscovery PurpleStunNatDiscovery; |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
39 | |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
40 | typedef enum { |
| 15884 | 41 | PURPLE_STUN_STATUS_UNDISCOVERED = -1, |
| 42 | PURPLE_STUN_STATUS_UNKNOWN, /* no STUN server reachable */ | |
| 43 | PURPLE_STUN_STATUS_DISCOVERING, | |
| 44 | PURPLE_STUN_STATUS_DISCOVERED | |
| 45 | } PurpleStunStatus; | |
|
11829
8d89f3c00831
[gaim-migrate @ 14120]
Richard Laager <rlaager@pidgin.im>
parents:
11501
diff
changeset
|
46 | |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
47 | typedef enum { |
| 15884 | 48 | PURPLE_STUN_NAT_TYPE_PUBLIC_IP, |
| 49 | PURPLE_STUN_NAT_TYPE_UNKNOWN_NAT, | |
| 50 | PURPLE_STUN_NAT_TYPE_FULL_CONE, | |
| 51 | PURPLE_STUN_NAT_TYPE_RESTRICTED_CONE, | |
| 52 | PURPLE_STUN_NAT_TYPE_PORT_RESTRICTED_CONE, | |
| 53 | PURPLE_STUN_NAT_TYPE_SYMMETRIC | |
| 54 | } PurpleStunNatType; | |
|
11829
8d89f3c00831
[gaim-migrate @ 14120]
Richard Laager <rlaager@pidgin.im>
parents:
11501
diff
changeset
|
55 | |
| 15884 | 56 | struct _PurpleStunNatDiscovery { |
| 57 | PurpleStunStatus status; | |
| 58 | PurpleStunNatType type; | |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
59 | char publicip[16]; |
|
12756
b8df02e0c6e5
[gaim-migrate @ 15103]
Daniel Atallah <datallah@pidgin.im>
parents:
12686
diff
changeset
|
60 | char *servername; |
|
b8df02e0c6e5
[gaim-migrate @ 15103]
Daniel Atallah <datallah@pidgin.im>
parents:
12686
diff
changeset
|
61 | time_t lookup_time; |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
62 | }; |
|
12050
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
63 | |
| 15884 | 64 | typedef void (*StunCallback) (PurpleStunNatDiscovery *); |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
65 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
66 | /** |
| 15884 | 67 | * Starts a NAT discovery. It returns a PurpleStunNatDiscovery if the discovery |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
68 | * is already done. Otherwise the callback is called when the discovery is over |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
69 | * and NULL is returned. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
70 | * |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
71 | * @param cb The callback to call when the STUN discovery is finished if the |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
72 | * discovery would block. If the discovery is done, this is NOT |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
73 | * called. |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
74 | * |
| 15884 | 75 | * @return a PurpleStunNatDiscovery which includes the public IP and the type |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
76 | * of NAT or NULL is discovery would block |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
77 | */ |
| 15884 | 78 | PurpleStunNatDiscovery *purple_stun_discover(StunCallback cb); |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
79 | |
| 15884 | 80 | void purple_stun_init(void); |
|
12050
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
81 | |
|
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
82 | /*@}*/ |
|
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
83 | |
|
14988
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
84 | #ifdef __cplusplus |
|
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
85 | } |
|
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
86 | #endif |
|
66b34458d49e
[gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents:
14254
diff
changeset
|
87 | |
| 15884 | 88 | #endif /* _PURPLE_STUN_H_ */ |