Mercurial > pidgin
annotate src/stun.h @ 11684:c1906dc6257c
[gaim-migrate @ 13970]
"This patch fixes the tab-color change prob (hopefully
this is the last one in the series). Bleeter also
thinks I have nailed it this time." -- Sadrul Habib Chowdhury
This also seems to fix a case of it I was having this morning.
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Mon, 17 Oct 2005 16:42:10 +0000 |
| parents | 9563b768e8e2 |
| children | 4669e7461968 |
| 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 { | |
| 33 gint status; // 0 - unknown (no STUN server reachable), 1 - discovering, 2 - discovered | |
| 34 gint type; // 0 - public ip | |
| 35 // 1 - NAT (unknown type) | |
| 36 // 2 - full cone | |
| 37 // 3 - restricted cone | |
| 38 // 4 - port restricted cone | |
| 39 // 5 - symmetric | |
| 40 char publicip[16]; | |
| 41 }; | |
| 42 | |
| 43 struct stun_header { | |
| 44 short type; | |
| 45 short len; | |
| 46 int transid[4]; | |
| 47 }; | |
| 48 | |
| 49 struct stun_attrib { | |
| 50 short type; | |
| 51 short len; | |
| 52 }; | |
| 53 | |
| 11354 | 54 struct stun_change { |
| 55 struct stun_header hdr; | |
| 56 struct stun_attrib attrib; | |
| 57 char value[4]; | |
| 58 }; | |
| 59 | |
| 11225 | 60 typedef void (*StunCallback) (struct stun_nattype *); |
| 61 | |
| 62 /** | |
| 63 * Starts a NAT discovery. It returns a struct stun_nattype if the discovery | |
| 64 * is already done. Otherwise the callback is called when the discovery is over | |
| 65 * and NULL is returned. | |
| 66 * | |
|
11501
9563b768e8e2
[gaim-migrate @ 13746]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
67 * @param cb A callback |
| 11225 | 68 * |
| 69 * @return a struct stun_nattype which includes the public IP and the type | |
| 70 * of NAT or NULL is discovery would block | |
| 71 */ | |
| 72 struct stun_nattype *gaim_stun_discover(StunCallback cb); | |
| 73 | |
| 11424 | 74 void gaim_stun_init(); |
| 11225 | 75 #endif /* _GAIM_STUN_H_ */ |
