Loading...
Searching...
No Matches
coap_cache_internal.h
Go to the documentation of this file.
/*
* coap_cache_internal.h -- Cache functions for libcoap
*
* Copyright (C) 2019--2023 Olaf Bergmann <bergmann@tzi.org> and others
*
* SPDX-License-Identifier: BSD-2-Clause
*
* This file is part of the CoAP library libcoap. Please see README for terms
* of use.
*/
#ifndef COAP_CACHE_INTERNAL_H_
#define COAP_CACHE_INTERNAL_H_
#include "coap_internal.h"
#include "coap_io.h"
#include "coap_uthash_internal.h"
#if COAP_SERVER_SUPPORT
/* Holds a digest in binary typically sha256 except for notls */
typedef struct coap_digest_t {
uint8_t key[32];
} coap_digest_t;
struct coap_cache_key_t {
uint8_t key[32];
};
struct coap_cache_entry_t {
UT_hash_handle hh;
coap_cache_key_t *cache_key;
coap_session_t *session;
coap_pdu_t *pdu;
void *app_data;
coap_tick_t expire_ticks;
unsigned int idle_timeout;
coap_cache_app_data_free_callback_t callback;
};
void coap_expire_cache_entries(coap_context_t *context);
typedef void coap_digest_ctx_t;
coap_digest_ctx_t *coap_digest_setup(void);
void coap_digest_free(coap_digest_ctx_t *digest_ctx);
int coap_digest_update(coap_digest_ctx_t *digest_ctx,
const uint8_t *data,
size_t data_len
);
int coap_digest_final(coap_digest_ctx_t *digest_ctx,
coap_digest_t *digest_buffer);
#endif /* COAP_SERVER_SUPPORT */
#endif /* COAP_CACHE_INTERNAL_H_ */
coap_internal.h
Pulls together all the internal only header files.
coap_io.h
Default network I/O functions.
coap_digest_free
void coap_digest_free(coap_digest_ctx_t *digest_ctx)
Free off coap_digest_ctx_t.
coap_digest_final
int coap_digest_final(coap_digest_ctx_t *digest_ctx, coap_digest_t *digest_buffer)
Finalize the coap_digest information into the provided digest_buffer.
coap_digest_update
int coap_digest_update(coap_digest_ctx_t *digest_ctx, const uint8_t *data, size_t data_len)
Update the coap_digest information with the next chunk of data.
coap_digest_ctx_t
void coap_digest_ctx_t
Definition coap_cache_internal.h:61
coap_expire_cache_entries
void coap_expire_cache_entries(coap_context_t *context)
Expire coap_cache_entry_t entries.
coap_digest_setup
coap_digest_ctx_t * coap_digest_setup(void)
Initialize a coap_digest.
coap_cache_app_data_free_callback_t
void(* coap_cache_app_data_free_callback_t)(void *data)
Callback to free off the app data when the cache-entry is being deleted / freed off.
Definition coap_cache.h:35
coap_tick_t
uint64_t coap_tick_t
This data type represents internal timer ticks with COAP_TICKS_PER_SECOND resolution.
Definition coap_time.h:144
coap_cache_entry_t
Definition coap_cache_internal.h:41
coap_cache_entry_t::session
coap_session_t * session
Definition coap_cache_internal.h:44
coap_cache_entry_t::callback
coap_cache_app_data_free_callback_t callback
Definition coap_cache_internal.h:49
coap_cache_entry_t::expire_ticks
coap_tick_t expire_ticks
Definition coap_cache_internal.h:47
coap_cache_entry_t::app_data
void * app_data
Definition coap_cache_internal.h:46
coap_cache_entry_t::idle_timeout
unsigned int idle_timeout
Definition coap_cache_internal.h:48
coap_cache_entry_t::cache_key
coap_cache_key_t * cache_key
Definition coap_cache_internal.h:43
coap_cache_entry_t::pdu
coap_pdu_t * pdu
Definition coap_cache_internal.h:45
coap_cache_entry_t::hh
UT_hash_handle hh
Definition coap_cache_internal.h:42
coap_cache_key_t
Definition coap_cache_internal.h:37
coap_cache_key_t::key
uint8_t key[32]
Definition coap_cache_internal.h:38
coap_context_t
The CoAP stack's global state is stored in a coap_context_t object.
Definition coap_net_internal.h:49
coap_digest_t
Definition coap_cache_internal.h:33
coap_digest_t::key
uint8_t key[32]
Definition coap_cache_internal.h:34
coap_pdu_t
structure for CoAP PDUs
Definition coap_pdu_internal.h:119
coap_session_t
Abstraction of virtual session that can be attached to coap_context_t (client) or coap_endpoint_t (se...
Definition coap_session_internal.h:68