Mercurial > pidgin
annotate src/stun.h @ 11980:67fbd2ff4c4e
[gaim-migrate @ 14273]
Mono cleanup patch from Eoin Coffey
First, I changed mono_loader_ to ml_, since I was
getting sick of typing mono_loader_ :-D
Moved the mono runtime init and deinit code out of
mono.c into ml_init and ml_uninit in mono-helper.c
Added api/Status.cs and loader/status-glue.c so the
.net api now knows very little (as in the 'id') of
statuses.
committer: Tailor Script <tailor@pidgin.im>
| author | Gary Kramlich <grim@reaperworld.com> |
|---|---|
| date | Sat, 05 Nov 2005 02:09:30 +0000 |
| parents | 4669e7461968 |
| children | 90d7e0f342fa |
| rev | line source |
|---|---|
| 11225 | 1 /** |
| 2 * @file stun.h STUN API | |
| 3 * @ingroup core | |
| 4 * | |
| 5 * gaim | |
| 6 * | |
| 7 * Gaim is the legal property of its developers, whose names are too numerous | |
| 8 * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 9 * source distribution. | |
| 10 * | |
| 11 * This program is free software; you can redistribute it and/or modify | |
| 12 * it under the terms of the GNU General Public License as published by | |
| 13 * the Free Software Foundation; either version 2 of the License, or | |
| 14 * (at your option) any later version. | |
| 15 * | |
| 16 * This program is distributed in the hope that it will be useful, | |
| 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 19 * GNU General Public License for more details. | |
| 20 * | |
| 21 * You should have received a copy of the GNU General Public License | |
| 22 * along with this program; if not, write to the Free Software | |
| 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 24 */ | |
| 25 #ifndef _GAIM_STUN_H_ | |
| 26 #define _GAIM_STUN_H_ | |
| 27 | |
| 28 /**************************************************************************/ | |
| 29 /** @name STUN API */ | |
| 30 /**************************************************************************/ | |
| 31 | |
| 32 struct stun_nattype { | |
|
11829
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
33 gint status; /* 0 - unknown (no STUN server reachable) */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
34 /* 1 - discovering */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
35 /* 2 - discovered */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
36 |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
37 gint type; /* 0 - public ip */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
38 /* 1 - NAT (unknown type) */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
39 /* 2 - full cone */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
40 /* 3 - restricted cone */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
41 /* 4 - port restricted cone */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
42 /* 5 - symmetric */ |
|
4669e7461968
[gaim-migrate @ 14120]
Richard Laager <rlaager@wiktel.com>
parents:
11501
diff
changeset
|
43 |
| 11225 | 44 char publicip[16]; |
| 45 }; | |
| 46 | |
| 47 struct stun_header { | |
| 48 short type; | |
| 49 short len; | |
| 50 int transid[4]; | |
| 51 }; | |
| 52 | |
| 53 struct stun_attrib { | |
| 54 short type; | |
| 55 short len; | |
| 56 }; | |
| 57 | |
| 11354 | 58 struct stun_change { |
| 59 struct stun_header hdr; | |
| 60 struct stun_attrib attrib; | |
| 61 char value[4]; | |
| 62 }; | |
| 63 | |
| 11225 | 64 typedef void (*StunCallback) (struct stun_nattype *); |
| 65 | |
| 66 /** | |
| 67 * Starts a NAT discovery. It returns a struct stun_nattype if the discovery | |
| 68 * is already done. Otherwise the callback is called when the discovery is over | |
| 69 * and NULL is returned. | |
| 70 * | |
|
11501
9563b768e8e2
[gaim-migrate @ 13746]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
71 * @param cb A callback |
| 11225 | 72 * |
| 73 * @return a struct stun_nattype which includes the public IP and the type | |
| 74 * of NAT or NULL is discovery would block | |
| 75 */ | |
| 76 struct stun_nattype *gaim_stun_discover(StunCallback cb); | |
| 77 | |
| 11424 | 78 void gaim_stun_init(); |
| 11225 | 79 #endif /* _GAIM_STUN_H_ */ |
