92typedef enum : uint16_t {
152 const uint8_t* bytes,
154 uint32_t* out_written);
ra8_err_t(* mdl_net_body_write_fn)(void *ctx, const uint8_t *bytes, uint32_t length, uint32_t *out_written)
Consume one bounded response-body chunk.
ra8_err_t mdl_net_get_buf(mdl_net_iface_t *net, const char *url, const mdl_net_req_t *req, char *buf, size_t cap, size_t *out_len, mdl_net_resp_t *resp)
GET url fully into a caller buffer (used for HTML pages).
ra8_err_t(* mdl_net_body_reset_fn)(void *ctx)
Reset one caller-owned response-body sink before a transfer attempt.
void mdl_net_destroy(mdl_net_iface_t *net)
Deinitialise a caller-owned network interface.
mdl_net_resp_size_t
Captured-response-field buffer sizes.
@ k_mdl_last_mod_max
Raw Last-Modified header value buffer bytes.
@ k_mdl_content_type_max
Raw Content-Type header value buffer bytes.
@ k_mdl_retry_after_max
Raw Retry-After header value buffer bytes.
@ k_mdl_etag_max
Raw ETag header value buffer bytes.
ra8_err_t mdl_net_get_body(mdl_net_iface_t *net, const char *url, const mdl_net_req_t *req, mdl_net_body_sink_t *sink, size_t *out_len, mdl_net_resp_t *resp)
GET url and stream its body through a caller-owned sink.
ra8_err_t mdl_net_provider_open(const mdl_net_provider_t *provider, const mdl_net_policy_t *policy, mdl_net_iface_t *out_net)
Open a transport through an injected provider.
struct mdl_net_iface mdl_net_iface_t
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Caller-owned lifecycle and write seam for one response body.
void * ctx
Caller-owned callback state.
mdl_net_body_reset_fn reset
Clear/abort prior attempt state.
Read-only caller-owned byte view retained by a network backend.
const uint8_t * data
First caller-owned byte, or NULL when empty.
size_t length
Exact readable byte count at data.
A network backend handle: an immutable method table plus its state.
const mdl_net_vtable_t * vtable
Backend method table (never NULL).
void * ctx
Backend-private state passed to methods.
Session-wide security policy for the network backend.
mdl_net_bytes_t cookies
Newline-delimited input cookies.
bool allow_cross_host_redirect
Permit a redirect to a different host.
uint64_t max_response_bytes
Per-response byte cap (0 = unlimited).
const char * socks5
SOCKS5 proxy URL, or NULL for none.
mdl_net_bytes_t ca_pem
Complete PEM CA bundle, or an empty view.
const char * proxy
HTTP/HTTPS proxy URL, or NULL for none.
bool allow_private_hosts
Permit loopback/private/link-local peers.
An injected FACTORY for mdl_net_iface_t: which backend, decided once.
ra8_err_t(* open)(void *ctx, const mdl_net_policy_t *policy, mdl_net_iface_t *out_net)
Open one hardened interface over the factory's private storage.
void * ctx
Factory-private state; the dispatcher only forwards it.
Per-request session parameters.
const char * referer
Referer header value, or NULL to omit.
const char * if_none_match
If-None-Match conditional header (ETag), or NULL.
const char * if_modified_since
If-Modified-Since header (Last-Modified), or NULL.
const char * user_agent
Session User-Agent; never per-request random.
uint32_t timeout_ms
Whole-request time budget, milliseconds.
Per-transfer response metadata surfaced to the politeness governor.
long status
Finished transfer's HTTP status, 0 if none.
char retry_after[k_mdl_retry_after_max]
Raw Retry-After value, "" when absent.
char etag[k_mdl_etag_max]
Raw ETag value, "" when absent.
char last_modified[k_mdl_last_mod_max]
Raw Last-Modified value, "" when absent.
char content_type[k_mdl_content_type_max]
Raw Content-Type value, "" when absent.
Method table one network backend registers (Dependency Inversion).
ra8_err_t(* get_buf)(void *ctx, const char *url, const mdl_net_req_t *req, char *buf, size_t cap, size_t *out_len, mdl_net_resp_t *resp)
GET url fully into a caller buffer (used for HTML pages).
ra8_err_t(* get_body)(void *ctx, const char *url, const mdl_net_req_t *req, mdl_net_body_sink_t *sink, size_t *out_len, mdl_net_resp_t *resp)
GET url and stream the body through an injected sink.
void(* destroy)(void *ctx)
Release the backend-private state (called by mdl_net_destroy).