Data Structures
stun.h File Reference
libpurple

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. More...
void | purple_stun_init (void)

## Detailed Description

STUN API.

Definition in file stun.h.

## Function Documentation

## ◆ purple_stun_discover()

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