stun.h File Reference

STUN API

purple. More...

Go to the source code of this file.

Data Structures

struct  _PurpleStunNatDiscovery

STUN API

typedef _PurpleStunNatDiscovery PurpleStunNatDiscovery
typedef void(* StunCallback )(PurpleStunNatDiscovery *)
enum  PurpleStunStatus { PURPLE_STUN_STATUS_UNDISCOVERED = -1, PURPLE_STUN_STATUS_UNKNOWN, PURPLE_STUN_STATUS_DISCOVERING, PURPLE_STUN_STATUS_DISCOVERED }
enum  PurpleStunNatType {
  PURPLE_STUN_NAT_TYPE_PUBLIC_IP, PURPLE_STUN_NAT_TYPE_UNKNOWN_NAT, PURPLE_STUN_NAT_TYPE_FULL_CONE, PURPLE_STUN_NAT_TYPE_RESTRICTED_CONE,
  PURPLE_STUN_NAT_TYPE_PORT_RESTRICTED_CONE, PURPLE_STUN_NAT_TYPE_SYMMETRIC
}
PurpleStunNatDiscovery * purple_stun_discover (StunCallback cb)
 Starts a NAT discovery.
void purple_stun_init (void)


Detailed Description

STUN API

purple.

Purple is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA


Function Documentation

PurpleStunNatDiscovery* purple_stun_discover StunCallback  cb  ) 
 

Starts a NAT discovery.

It returns a PurpleStunNatDiscovery if the discovery is already done. Otherwise the callback is called when the discovery is over and NULL is returned.

Parameters:
cb The callback to call when the STUN discovery is finished if the discovery would block. If the discovery is done, this is NOT called.
Returns:
a PurpleStunNatDiscovery which includes the public IP and the type of NAT or NULL is discovery would block