ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
upnp.h
Go to the documentation of this file.
1
18#pragma once
19
20#include <stdint.h>
21#include <stdbool.h>
22#include "common.h"
23
33
57asciichat_error_t nat_upnp_open(uint16_t internal_port, const char *description, nat_upnp_context_t **ctx);
58
68
78
89
103asciichat_error_t nat_upnp_get_address(const nat_upnp_context_t *ctx, char *addr, size_t addr_len);
unsigned short uint16_t
Definition common.h:57
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
Handle to UPnP context.
Definition upnp.h:25
uint16_t internal_port
Internal port we're binding to.
Definition upnp.h:28
uint16_t mapped_port
External port that was mapped (may differ from internal)
Definition upnp.h:27
bool is_natpmp
true if NAT-PMP was used, false if UPnP
Definition upnp.h:30
bool is_mapped
true if port mapping is currently active
Definition upnp.h:31
char device_description[256]
Device name for logging (e.g., "TP-Link Archer C7")
Definition upnp.h:29
char external_ip[16]
Detected external/public IP (e.g., "203.0.113.42")
Definition upnp.h:26
asciichat_error_t nat_upnp_refresh(nat_upnp_context_t *ctx)
Refresh port mapping (e.g., for long-running servers)
Definition upnp.c:311
struct nat_upnp_context nat_upnp_context_t
Handle to UPnP context.
bool nat_upnp_is_active(const nat_upnp_context_t *ctx)
Check if port mapping is still active.
Definition upnp.c:304
void nat_upnp_close(nat_upnp_context_t **ctx)
Close port mapping and clean up.
Definition upnp.c:289
asciichat_error_t nat_upnp_open(uint16_t internal_port, const char *description, nat_upnp_context_t **ctx)
Discover and open port via UPnP.
Definition upnp.c:249
asciichat_error_t nat_upnp_get_address(const nat_upnp_context_t *ctx, char *addr, size_t addr_len)
Get the public address (IP:port) for advertising to clients.
Definition upnp.c:323