|
| void | coap_proxy_cleanup (coap_context_t *context) |
| | Close down proxy tracking, releasing any memory used.
|
| int | coap_proxy_check_timeouts (coap_context_t *context, coap_tick_t now, coap_tick_t *tim_rem) |
| | Idle timeout inactive proxy sessions as well as return in tim_rem the time to remaining to timeout the inactive proxy.
|
| void | coap_proxy_remove_association (coap_session_t *session, int send_failure) |
| int | coap_proxy_forward_request_lkd (coap_session_t *session, const coap_pdu_t *request, coap_pdu_t *response, coap_resource_t *resource, coap_cache_key_t *cache_key, coap_proxy_server_list_t *server_list) |
| | Forward incoming request upstream to the next proxy/server.
|
| coap_response_t | coap_proxy_forward_response_lkd (coap_session_t *session, const coap_pdu_t *received, coap_cache_key_t **cache_key) |
| | Forward the returning response back to the appropriate client.
|
Internal API for handling CoAP proxies.
Forward incoming request upstream to the next proxy/server.
Possible scenarios: Acting as a reverse proxy - connect to internal server (possibly round robin load balancing over multiple servers). Acting as a forward proxy - connect to host defined in Proxy-Uri or Proxy-Scheme with Uri-Host (and maybe Uri-Port). Acting as a relay proxy - connect to defined upstream server (possibly round robin load balancing over multiple servers).
A request that should go direct to this server is not supported here.
Note: This function must be called in the locked state,
- Parameters
-
| Sessions | The client session. |
| request | The client's request PDU. |
| response | The response PDU that will get sent back to the client. |
| resource | The resource associated with this request. |
| cache_key | A cache key generated from the request PDU or NULL. |
| server_list | The upstream server list to connect to. |
- Returns
1 if success, or 0 if failure (response code set to appropriate value).