Fri, 26 Aug 2005 04:38:36 +0000
[gaim-migrate @ 13565]
Two changes:
1. Fix the "enabled" button in the accounts editor so that unchecking it
will sign off an account. I broke this in one of my commits on
August 17th
2. Some changes from Thomas Butter to finishing initializing Gaim, and THEN
attempt to sign on accounts. This fixes problems with the crypto API
not yet being initialized.
|
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 | /**************************************************************************/ |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
31 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
32 | struct stun_nattype { |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
33 | gint status; // 0 - unknown (no STUN server reachable), 1 - discovering, 2 - discovered |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
34 | gint type; // 0 - public ip |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
35 | // 1 - NAT (unknown type) |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
36 | // 2 - full cone |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
37 | // 3 - restricted cone |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
38 | // 4 - port restricted cone |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
39 | // 5 - symmetric |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
40 | char publicip[16]; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
41 | }; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
42 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
43 | struct stun_header { |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
44 | short type; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
45 | short len; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
46 | int transid[4]; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
47 | }; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
48 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
49 | struct stun_attrib { |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
50 | short type; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
51 | short len; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
52 | }; |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
53 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
54 | typedef void (*StunCallback) (struct stun_nattype *); |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
55 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
56 | /** |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
57 | * Starts a NAT discovery. It returns a struct stun_nattype if the discovery |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
58 | * 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
|
59 | * and NULL is returned. |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
60 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
61 | * @param A callback |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
62 | * |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
63 | * @return a struct stun_nattype which includes the public IP and the type |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
64 | * of NAT or NULL is discovery would block |
|
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 | struct stun_nattype *gaim_stun_discover(StunCallback cb); |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
67 | |
|
e888c207b994
[gaim-migrate @ 13361]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
diff
changeset
|
68 | #endif /* _GAIM_STUN_H_ */ |