Fri, 06 Jan 2006 04:46:00 +0000
[gaim-migrate @ 15091]
" Adds an emblem to a buddy if they have a queued message
(hidden conversation). In the large buddy list it is
added in the northwest corner, sliding the existing
northwest emblem (if specified) to the northeast
position and discarding the northeast emblem. In the
small buddy list, the emblem is added to the southeast.
Attached is a patch and an emblem image to be dropped
in pixmaps/status/default/. The emblem image is a
scaled down version of the send-im.png image." -- Casey Harkins
as I asked for this patch, and since there don't seem to be objections to
it (yet), I'm going ahead and applying it.
committer: Luke Schierer <lschiere@pidgin.im>
|
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 |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
4 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
5 | * gaim |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
6 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
7 | * Gaim is the legal property of its developers, whose names are too numerous |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
8 | * 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
|
9 | * source distribution. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
10 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
11 | * 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
|
12 | * 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
|
13 | * the Free Software Foundation; either version 2 of the License, or |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
14 | * (at your option) any later version. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
15 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
16 | * 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
|
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
19 | * GNU General Public License for more details. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
20 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
21 | * 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
|
22 | * along with this program; if not, write to the Free Software |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
24 | */ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
25 | #ifndef _GAIM_STUN_H_ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
26 | #define _GAIM_STUN_H_ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
27 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
28 | /**************************************************************************/ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
29 | /** @name STUN API */ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
30 | /**************************************************************************/ |
|
12050
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
31 | /*@{*/ |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
32 | |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
33 | typedef struct _GaimStunNatDiscovery GaimStunNatDiscovery; |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
34 | |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
35 | typedef enum { |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
36 | GAIM_STUN_STATUS_UNDISCOVERED = -1, |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
37 | GAIM_STUN_STATUS_UNKNOWN, /* no STUN server reachable */ |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
38 | GAIM_STUN_STATUS_DISCOVERING, |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
39 | GAIM_STUN_STATUS_DISCOVERED |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
40 | } GaimStunStatus; |
|
11829
8d89f3c00831
[gaim-migrate @ 14120]
Richard Laager <rlaager@pidgin.im>
parents:
11501
diff
changeset
|
41 | |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
42 | typedef enum { |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
43 | GAIM_STUN_NAT_TYPE_PUBLIC_IP, |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
44 | GAIM_STUN_NAT_TYPE_UNKNOWN_NAT, |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
45 | GAIM_STUN_NAT_TYPE_FULL_CONE, |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
46 | GAIM_STUN_NAT_TYPE_RESTRICTED_CONE, |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
47 | GAIM_STUN_NAT_TYPE_PORT_RESTRICTED_CONE, |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
48 | GAIM_STUN_NAT_TYPE_SYMMETRIC |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
49 | } GaimStunNatType; |
|
11829
8d89f3c00831
[gaim-migrate @ 14120]
Richard Laager <rlaager@pidgin.im>
parents:
11501
diff
changeset
|
50 | |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
51 | struct _GaimStunNatDiscovery { |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
52 | GaimStunStatus status; |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
53 | GaimStunNatType type; |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
54 | char publicip[16]; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
55 | }; |
|
12050
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
56 | |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
57 | typedef void (*StunCallback) (GaimStunNatDiscovery *); |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
58 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
59 | /** |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
60 | * Starts a NAT discovery. It returns a GaimStunNatDiscovery if the discovery |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
61 | * 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
|
62 | * and NULL is returned. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
63 | * |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
64 | * @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
|
65 | * discovery would block. If the discovery is done, this is NOT |
|
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
66 | * called. |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
67 | * |
|
12686
ec3e7c4ff045
[gaim-migrate @ 15029]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
68 | * @return a GaimStunNatDiscovery which includes the public IP and the type |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
69 | * of NAT or NULL is discovery would block |
|
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 | GaimStunNatDiscovery *gaim_stun_discover(StunCallback cb); |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
72 | |
|
12323
f52908fb23b0
[gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents:
12050
diff
changeset
|
73 | void gaim_stun_init(void); |
|
12050
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
74 | |
|
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
75 | /*@}*/ |
|
a7d5a2430722
[gaim-migrate @ 14345]
Mark Doliner <markdoliner@pidgin.im>
parents:
11829
diff
changeset
|
76 | |
|
11225
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
77 | #endif /* _GAIM_STUN_H_ */ |