libcoap 4.3.5-develop-19cef11

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. More...
 
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. More...
 
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. More...
 

Detailed Description

API for Proxies.

Typedef Documentation

◆ coap_proxy_server_list_t

◆ coap_proxy_server_t

Enumeration Type Documentation

◆ 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
sessionThe client session.
requestThe client's request PDU.
responseThe response PDU that will get sent back to the client.
resourceThe resource associated with this request.
cache_keyA cache key generated from the request PDU or NULL.
server_listThe upstream server list to connect to.
Returns
1 if success, or 0 if failure (response code set to appropriate value).

Definition at line 886 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
sessionThe session handling the response.
receivedThe received PDU.
cache_keyUpdated 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 902 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
schemeThe CoAP scheme to check.
Returns
1 if supported, or 0 if not supported.

Definition at line 912 of file coap_proxy.c.