rcbench
Servo and ESC test bench: panel, IOmcu and shared C
Loading...
Searching...
No Matches
wa_mdns.h
Go to the documentation of this file.
1
18
19#ifndef RCBENCH_WA_MDNS_H
20#define RCBENCH_WA_MDNS_H
21
22#include <stdbool.h>
23#include <stddef.h>
24#include <stdint.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#define WA_MDNS_PORT 5353u
32#define WA_MDNS_TTL 120u
34#define WA_MDNS_MAX 512u
35
42size_t wa_mdns_reply(const uint8_t *q, size_t n, uint16_t src_port,
43 const char *host, const uint8_t ip[4], uint8_t *out,
44 size_t cap);
45
48size_t wa_mdns_announce(const char *host, const uint8_t ip[4], uint8_t *out,
49 size_t cap);
50
51/*
52 * The responder's starts in one join of the home network. A start that
53 * fails -- no task, no socket, no bind, no group membership -- is tried
54 * again WA_MDNS_RETRIES times, WA_MDNS_RETRY_MS apart; after that the name
55 * stays unanswered until the next join, and the address shown on the panel
56 * still works.
57 */
58#define WA_MDNS_RETRIES 3u
59#define WA_MDNS_RETRY_MS 5000u
60
61typedef struct {
62 uint8_t starts;
63 uint32_t next_ms;
65
68
70bool wa_mdns_tries_due(const wa_mdns_tries_t *t, uint32_t now_ms);
71
73void wa_mdns_tries_started(wa_mdns_tries_t *t, uint32_t now_ms);
74
75#ifdef __cplusplus
76}
77#endif
78
79#endif /* RCBENCH_WA_MDNS_H */
Definition wa_mdns.h:61
uint32_t next_ms
Definition wa_mdns.h:63
uint8_t starts
Definition wa_mdns.h:62
size_t wa_mdns_reply(const uint8_t *q, size_t n, uint16_t src_port, const char *host, const uint8_t ip[4], uint8_t *out, size_t cap)
Definition wa_mdns.c:142
size_t wa_mdns_announce(const char *host, const uint8_t ip[4], uint8_t *out, size_t cap)
Definition wa_mdns.c:175
bool wa_mdns_tries_due(const wa_mdns_tries_t *t, uint32_t now_ms)
Definition wa_mdns.c:192
void wa_mdns_tries_started(wa_mdns_tries_t *t, uint32_t now_ms)
Definition wa_mdns.c:201
void wa_mdns_tries_reset(wa_mdns_tries_t *t)
Definition wa_mdns.c:186