59 if (resp !=
nullptr) {
60 memset(resp, 0,
sizeof(*resp));
68 if (out_net ==
nullptr) {
72 if ((provider ==
nullptr) || (provider->open ==
nullptr) || (policy ==
nullptr)) {
75 return provider->open(provider->ctx, policy, out_net);
90 if ((net->vtable ==
nullptr) || (url ==
nullptr) || (req ==
nullptr) || (buf ==
nullptr) ||
94 return net->vtable->get_buf(net->ctx, url, req, buf, cap, out_len, resp);
105 if (net ==
nullptr) {
108 if ((net->vtable ==
nullptr) || (net->vtable->get_body ==
nullptr) || (url ==
nullptr) ||
109 (req ==
nullptr) || (sink ==
nullptr) || (sink->
reset ==
nullptr) ||
110 (sink->
write ==
nullptr) || (sink->
ctx ==
nullptr)) {
117 return net->vtable->get_body(net->ctx, url, req, sink, out_len, resp);
122 if (net ==
nullptr) {
125 if ((net->vtable !=
nullptr) && (net->vtable->destroy !=
nullptr)) {
126 net->vtable->destroy(net->ctx);
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).
void mdl_net_destroy(mdl_net_iface_t *net)
Deinitialise a caller-owned network interface.
mdl_http_status_t
HTTP statuses that have downloader-specific handling.
@ k_mdl_http_unavailable
Service Unavailable.
@ k_mdl_http_client_error
First client-error status.
@ k_mdl_http_server_error
First server-error status.
@ k_mdl_http_too_many
Too Many Requests.
ra8_err_t priv_mdl_net_classify_http(long status)
Classify one observed HTTP response status.
static void internal_resp_reset(mdl_net_resp_t *resp)
Zero a caller-supplied response block so early returns leave it clean.
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.
Streaming HTTP(S) GET seam (a real function-pointer vtable) for the host manga downloader (v0).
Private HTTP classification shared by downloader network backends.
Annotation-attribute framework macros for ra8-firmware.
#define RA8_PRIV
Module-private helper: shared across TUs but only inside one library.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
@ k_ra8_err_busy
Resource busy – blocking operation cannot proceed.
@ k_ra8_fail
Generic unspecified failure.
@ k_ra8_err_invalid_arg
Invalid function argument.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
@ k_ra8_err_not_found
Requested item not found (lookup / search missed).
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
void * memset(void *dst, int value, size_t n)
Fill memory with a constant byte value.
Caller-owned lifecycle and write seam for one response body.
mdl_net_body_write_fn write
Consume one response chunk.
void * ctx
Caller-owned callback state.
mdl_net_body_reset_fn reset
Clear/abort prior attempt state.
A network backend handle: an immutable method table plus its state.
Session-wide security policy for the network backend.
An injected FACTORY for mdl_net_iface_t: which backend, decided once.
Per-request session parameters.
Per-transfer response metadata surfaced to the politeness governor.