ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
network/mdns/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:49
asciichat_error_t asciichat_mdns_update(asciichat_mdns_t *mdns, int timeout_ms)
Process pending mDNS events (must be called regularly)
asciichat_error_t asciichat_mdns_unadvertise(asciichat_mdns_t *mdns, const char *service_name)
Stop advertising a service.
void asciichat_mdns_destroy(asciichat_mdns_t *mdns)
Shutdown mDNS context and cleanup.
void(* asciichat_mdns_discovery_callback_fn)(const asciichat_mdns_discovery_t *service, void *user_data)
Callback for discovered services.
asciichat_mdns_t * asciichat_mdns_init(void)
Initialize mDNS context.
int asciichat_mdns_get_socket(asciichat_mdns_t *mdns)
Get the socket file descriptor for integration with select/poll.
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.
asciichat_error_t asciichat_mdns_advertise(asciichat_mdns_t *mdns, const asciichat_mdns_service_t *service)
Advertise a service on the local network.
ClangTool/LibTooling compatibility shim for stdbool.h.
Discovered service information.
Service information for advertisement.
Internal mDNS context structure.