Loading...
Searching...
No Matches
Proxy
Application API

API for Proxies. More...

Collaboration diagram for Proxy:

## Data Structures

struct | coap_proxy_server_t
struct | coap_proxy_server_list_t

## Typedefs

typedef struct coap_proxy_server_t | coap_proxy_server_t
typedef struct coap_proxy_server_list_t | coap_proxy_server_list_t

## Enumerations

enum | coap_proxy_t { COAP_PROXY_REVERSE , COAP_PROXY_REVERSE_STRIP , COAP_PROXY_FORWARD , COAP_PROXY_FORWARD_STRIP , COAP_PROXY_DIRECT , COAP_PROXY_DIRECT_STRIP }

## Functions

int | coap_verify_proxy_scheme_supported (coap_uri_scheme_t scheme)
| Verify that the CoAP Scheme is supported for an ongoing proxy connection.
int COAP_API | coap_proxy_forward_request (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_API | coap_proxy_forward_response (coap_session_t *session, const coap_pdu_t *received, coap_cache_key_t **cache_key)
| Forward the returning response back to the appropriate client.

## Detailed Description

API for Proxies.

## Typedef Documentation

## coap_proxy_server_list_t

typedef struct coap_proxy_server_list_t coap_proxy_server_list_t

## coap_proxy_server_t

typedef struct coap_proxy_server_t coap_proxy_server_t

## Enumeration Type Documentation

## coap_proxy_t

enum coap_proxy_t

Enumerator
COAP_PROXY_REVERSE | Act as a reverse proxy.
COAP_PROXY_REVERSE_STRIP | Act as a reverse proxy, strip out proxy options.
COAP_PROXY_FORWARD | Act as a forward proxy.
COAP_PROXY_FORWARD_STRIP | Act as a forward proxy, strip out proxy options.
COAP_PROXY_DIRECT | Act as a direct proxy.
COAP_PROXY_DIRECT_STRIP | Act as a direct proxy, strip out proxy options.

Definition at line 27 of file coap_proxy.h.

## Function Documentation

## coap_proxy_forward_request()

int COAP_API coap_proxy_forward_request | ( | 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.

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.

Parameters

  session | 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).

Definition at line 879 of file coap_proxy.c.

## coap_proxy_forward_response()

coap_response_t COAP_API coap_proxy_forward_response | ( | coap_session_t * | session,
|  | const coap_pdu_t * | received,
|  | coap_cache_key_t ** | cache_key )

Forward the returning response back to the appropriate client.

Parameters

  session | The session handling the response.
  received | The received PDU.
  cache_key | Updated with the cache key pointer provided to coap_proxy_forward_request(). The caller should delete this cach key (unless the client request set up an Observe and there will be unsolicited responses).

Returns
  One of COAP_RESPONSE_FAIL or COAP_RESPONSE_OK.

Definition at line 895 of file coap_proxy.c.

## coap_verify_proxy_scheme_supported()

int coap_verify_proxy_scheme_supported | ( | coap_uri_scheme_t | scheme | ) |

Verify that the CoAP Scheme is supported for an ongoing proxy connection.

Parameters

  scheme | The CoAP scheme to check.

Returns
  `1` if supported, or `0` if not supported.

Definition at line 905 of file coap_proxy.c.