libcoap 4.3.3
coap_debug.c File Reference

Debug utilities. More...

#include "coap3/coap_internal.h"
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
+ Include dependency graph for coap_debug.c:

Go to the source code of this file.

Data Structures

struct  packet_num_interval
 

Macros

#define min(a, b)   ((a) < (b) ? (a) : (b))
 
#define INET6_ADDRSTRLEN   46
 
#define COAP_DO_SHOW_OUTPUT_LINE
 

Functions

const char * coap_package_name (void)
 Get the library package name. More...
 
const char * coap_package_version (void)
 Get the library package version. More...
 
const char * coap_package_build (void)
 Get the library package build. More...
 
void coap_set_show_pdu_output (int use_fprintf)
 Defines the output mode for the coap_show_pdu() function. More...
 
coap_log_t coap_get_log_level (void)
 Get the current logging level. More...
 
void coap_set_log_level (coap_log_t level)
 Sets the log level to the specified value. More...
 
COAP_STATIC_INLINE size_t print_timestamp (char *s, size_t len, coap_tick_t t)
 
static size_t strnlen (const char *s, size_t maxlen)
 A length-safe strlen() fake. More...
 
static size_t print_readable (const uint8_t *data, size_t len, unsigned char *result, size_t buflen, int encode_always)
 
size_t coap_print_addr (const coap_address_t *addr, unsigned char *buf, size_t len)
 Print the address into the defined buffer. More...
 
const char * coap_print_ip_addr (const coap_address_t *addr, char *buf, size_t len)
 Print the IP address into the defined buffer. More...
 
static const char * msg_type_string (uint16_t t)
 Returns a textual description of the message type t. More...
 
static const char * msg_code_string (uint16_t c)
 Returns a textual description of the method or response code. More...
 
static const char * msg_option_string (uint8_t code, uint16_t option_type)
 Returns a textual description of the option name. More...
 
static unsigned int print_content_format (unsigned int format_type, unsigned char *result, unsigned int buflen)
 
COAP_STATIC_INLINE int is_binary (int content_format)
 Returns 1 if the given content_format is either unknown or known to carry binary data. More...
 
void coap_show_pdu (coap_log_t level, const coap_pdu_t *pdu)
 Display the contents of the specified pdu. More...
 
void coap_show_tls_version (coap_log_t level)
 Display the current (D)TLS library linked with and built for version. More...
 
char * coap_string_tls_version (char *buffer, size_t bufsize)
 Build a string containing the current (D)TLS library linked with and built for version. More...
 
char * coap_string_tls_support (char *buffer, size_t bufsize)
 Build a string containing the current (D)TLS library support. More...
 
void coap_set_log_handler (coap_log_handler_t handler)
 Add a custom log callback handler. More...
 
void coap_log_impl (coap_log_t level, const char *format,...)
 Writes the given text to COAP_ERR_FD (for level <= COAP_LOG_CRIT) or COAP_DEBUG_FD (for level >= COAP_LOG_ERR). More...
 
int coap_debug_set_packet_loss (const char *loss_level)
 Set the packet loss level for testing. More...
 
int coap_debug_send_packet (void)
 Check to see whether a packet should be sent or not. More...
 

Variables

static coap_log_t maxlog = COAP_LOG_WARN
 
static int use_fprintf_for_show_pdu = 1
 
static const char * loglevels []
 
static coap_log_handler_t log_handler = NULL
 
static struct packet_num_interval packet_loss_intervals [10]
 
static int num_packet_loss_intervals = 0
 
static int packet_loss_level = 0
 
static int send_packet_count = 0
 

Detailed Description

Debug utilities.

Definition in file coap_debug.c.

Macro Definition Documentation

◆ COAP_DO_SHOW_OUTPUT_LINE

#define COAP_DO_SHOW_OUTPUT_LINE
Value:
do { \
fprintf(COAP_DEBUG_FD, "%s", outbuf); \
} \
else { \
coap_log(level, "%s", outbuf); \
} \
} while (0)
static int use_fprintf_for_show_pdu
Definition: coap_debug.c:64
#define COAP_DEBUG_FD
Used for output for COAP_LOG_OSCORE to COAP_LOG_ERR.
Definition: coap_debug.h:31

Definition at line 676 of file coap_debug.c.

◆ INET6_ADDRSTRLEN

#define INET6_ADDRSTRLEN   46

Definition at line 211 of file coap_debug.c.

◆ min

#define min (   a,
 
)    ((a) < (b) ? (a) : (b))

Definition at line 207 of file coap_debug.c.

Function Documentation

◆ coap_debug_send_packet()

int coap_debug_send_packet ( void  )

Check to see whether a packet should be sent or not.

Internal function

Returns
1 if packet is to be sent, 0 if packet is to be dropped.

Definition at line 1285 of file coap_debug.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_debug_set_packet_loss()

int coap_debug_set_packet_loss ( const char *  loss_level)

Set the packet loss level for testing.

This can be in one of two forms.

Percentage : 0% to 100%. Use the specified probability. 0% is send all packets, 100% is drop all packets.

List: A comma separated list of numbers or number ranges that are the packets to drop.

Parameters
loss_levelThe defined loss level (percentage or list).
Returns
1 If loss level set, 0 if there is an error.

Definition at line 1244 of file coap_debug.c.

◆ is_binary()

COAP_STATIC_INLINE int is_binary ( int  content_format)

Returns 1 if the given content_format is either unknown or known to carry binary data.

The return value 0 hence indicates printable data which is also assumed if content_format is 01.

Definition at line 668 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ msg_code_string()

static const char * msg_code_string ( uint16_t  c)
static

Returns a textual description of the method or response code.

Definition at line 492 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ msg_option_string()

static const char * msg_option_string ( uint8_t  code,
uint16_t  option_type 
)
static

Returns a textual description of the option name.

Definition at line 513 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ msg_type_string()

static const char * msg_type_string ( uint16_t  t)
static

Returns a textual description of the message type t.

Definition at line 484 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ print_content_format()

static unsigned int print_content_format ( unsigned int  format_type,
unsigned char *  result,
unsigned int  buflen 
)
static

Definition at line 608 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ print_readable()

static size_t print_readable ( const uint8_t *  data,
size_t  len,
unsigned char *  result,
size_t  buflen,
int  encode_always 
)
static

Definition at line 169 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ print_timestamp()

COAP_STATIC_INLINE size_t print_timestamp ( char *  s,
size_t  len,
coap_tick_t  t 
)

Definition at line 137 of file coap_debug.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ strnlen()

static size_t strnlen ( const char *  s,
size_t  maxlen 
)
inlinestatic

A length-safe strlen() fake.

Parameters
sThe string to count characters != 0.
maxlenThe maximum length of s.
Returns
The length of s.

Definition at line 160 of file coap_debug.c.

Variable Documentation

◆ log_handler

coap_log_handler_t log_handler = NULL
static

Definition at line 1179 of file coap_debug.c.

◆ loglevels

const char* loglevels[]
static
Initial value:
= {
"EMRG", "ALRT", "CRIT", "ERR ", "WARN", "NOTE", "INFO", "DEBG", "OSC ",
"Emrg", "Alrt", "Crit", "Err ", "Warn", "Note", "Info", "Debg"
}

Definition at line 104 of file coap_debug.c.

◆ maxlog

coap_log_t maxlog = COAP_LOG_WARN
static

Definition at line 61 of file coap_debug.c.

◆ num_packet_loss_intervals

int num_packet_loss_intervals = 0
static

Definition at line 1239 of file coap_debug.c.

◆ packet_loss_intervals

struct packet_num_interval packet_loss_intervals[10]
static

◆ packet_loss_level

int packet_loss_level = 0
static

Definition at line 1240 of file coap_debug.c.

◆ send_packet_count

int send_packet_count = 0
static

Definition at line 1241 of file coap_debug.c.

◆ use_fprintf_for_show_pdu

int use_fprintf_for_show_pdu = 1
static

Definition at line 64 of file coap_debug.c.