ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
mdns.h
Go to the documentation of this file.
1#pragma once
2
49#include <stdint.h>
50#include <stdlib.h>
51#include <stdbool.h>
52#include "common.h"
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
60
64typedef struct {
66 const char *name;
70 const char *type;
72 const char *host;
74 const char **txt_records;
76 size_t txt_count;
78
82typedef struct {
84 char name[256];
86 char type[256];
88 char host[256];
92 char ipv4[16];
94 char ipv6[46];
96 char txt[512];
100
107typedef void (*asciichat_mdns_discovery_callback_fn)(const asciichat_mdns_discovery_t *service, void *user_data);
108
115
122
133
141asciichat_error_t asciichat_mdns_unadvertise(asciichat_mdns_t *mdns, const char *service_name);
142
152asciichat_error_t asciichat_mdns_query(asciichat_mdns_t *mdns, const char *service_type,
153 asciichat_mdns_discovery_callback_fn callback, void *user_data);
154
168
178
179#ifdef __cplusplus
180}
181#endif
unsigned short uint16_t
Definition common.h:57
unsigned int uint32_t
Definition common.h:58
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
asciichat_error_t asciichat_mdns_update(asciichat_mdns_t *mdns, int timeout_ms)
Process pending mDNS events (must be called regularly)
Definition mdns.c:255
asciichat_error_t asciichat_mdns_unadvertise(asciichat_mdns_t *mdns, const char *service_name)
Stop advertising a service.
Definition mdns.c:93
void asciichat_mdns_shutdown(asciichat_mdns_t *mdns)
Shutdown mDNS context and cleanup.
Definition mdns.c:61
void(* asciichat_mdns_discovery_callback_fn)(const asciichat_mdns_discovery_t *service, void *user_data)
Callback for discovered services.
Definition mdns.h:107
asciichat_mdns_t * asciichat_mdns_init(void)
Initialize mDNS context.
Definition mdns.c:30
int asciichat_mdns_get_socket(asciichat_mdns_t *mdns)
Get the socket file descriptor for integration with select/poll.
Definition mdns.c:279
asciichat_error_t asciichat_mdns_query(asciichat_mdns_t *mdns, const char *service_type, asciichat_mdns_discovery_callback_fn callback, void *user_data)
Query for services on the local network.
Definition mdns.c:219
asciichat_error_t asciichat_mdns_advertise(asciichat_mdns_t *mdns, const asciichat_mdns_service_t *service)
Advertise a service on the local network.
Definition mdns.c:75
Discovered service information.
Definition mdns.h:82
Service information for advertisement.
Definition mdns.h:64
const char ** txt_records
Definition mdns.h:74
const char * type
Definition mdns.h:70
const char * host
Definition mdns.h:72
const char * name
Definition mdns.h:66
Internal mDNS context structure.
Definition mdns.c:18