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 }
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
}
typedef struct
_PurpleStunNatDiscovery 
PurpleStunNatDiscovery
typedef void(* StunCallback )(PurpleStunNatDiscovery *)
PurpleStunNatDiscovery * purple_stun_discover (StunCallback cb)
 Starts a NAT discovery.
void purple_stun_init (void)


Detailed Description

STUN API.

Definition in 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