19#ifndef PROTOCORE_HAPPY_EYEBALLS_H
20#define PROTOCORE_HAPPY_EYEBALLS_H
24#if PROTOCORE_ENABLE_HAPPY_EYEBALLS
32#ifndef PROTOCORE_HE_MAX
33#define PROTOCORE_HE_MAX 16
37#define PROTOCORE_HE_ATTEMPT_DELAY_MS 250
45} HappyEyeballsPrefArgs;
52} HappyEyeballsOrderArgs;
57 uint32_t last_start_ms;
59 uint32_t attempt_delay_ms;
60} HappyEyeballsAttemptDueArgs;
86 HappyEyeballsPrefArgs pref_args;
87 HappyEyeballsOrderArgs order_args;
88 HappyEyeballsAttemptDueArgs attempt_due_args;
94extern HappyEyeballsVars HappyEyeballsV;
99 void (*
const pref)(uint8_t *work);
100 void (*
const order)(uint8_t *work);
101 void (*
const attempt_due)(uint8_t *work);
106void protocore_happy_eyeballs_pref(uint8_t *work);
107void protocore_happy_eyeballs_order(uint8_t *work);
108void protocore_happy_eyeballs_attempt_due(uint8_t *work);
114static const HappyEyeballsNs HappyEyeballs __attribute__((unused)) = {
115 .pref = protocore_happy_eyeballs_pref,
116 .order = protocore_happy_eyeballs_order,
117 .attempt_due = protocore_happy_eyeballs_attempt_due,
129uint8_t *protocore_happy_eyeballs_span(
void);
Layer 3 (Network) - a family-tagged IP address (IPv4 or IPv6) with RFC-faithful text parsing,...
A v4 or v6 address in network (big-endian) byte order.
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS