stun.h File Reference

STUN API. More...

Go to the source code of this file.

Data Structures

struct  _PurpleStunNatDiscovery

STUN API

enum  PurpleStunStatus {
  PURPLE_STUN_STATUS_UNDISCOVERED = -1, PURPLE_STUN_STATUS_UNKNOWN, PURPLE_STUN_STATUS_DISCOVERING, PURPLE_STUN_STATUS_DISCOVERED,
  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, 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
}
typedef _PurpleStunNatDiscovery PurpleStunNatDiscovery
typedef void(*) StunCallback (PurpleStunNatDiscovery *)
PurpleStunNatDiscoverypurple_stun_discover (StunCallback cb)
 Starts a NAT discovery.
void purple_stun_init (void)


Detailed Description

STUN API.

Definition in file stun.h.


Enumeration Type Documentation

enum PurpleStunNatType

Enumerator:
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 

Definition at line 47 of file stun.h.

enum PurpleStunStatus

Enumerator:
PURPLE_STUN_STATUS_UNDISCOVERED 
PURPLE_STUN_STATUS_UNKNOWN 
PURPLE_STUN_STATUS_DISCOVERING 
PURPLE_STUN_STATUS_DISCOVERED 

Definition at line 40 of file stun.h.


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