silc_buffer_format
SYNOPSIS
int silc_buffer_format(SilcBuffer dst, ...);
DESCRIPTION
Formats a buffer from a variable argument list. Returns -1 if the system is out of memory and the length of the formatted buffer otherwise. The buffer is enlarged automatically during formatting, if it doesn't already have enough space. Sets silc_errno in case of error.
EXAMPLE
Three basic ways of using silc_buffer_format: // Statically allocated zero size buffer SilcBufferStruct buffer; memset(&buffer, 0, sizeof(buffer)); ret = silc_buffer_format(&buffer, SILC_STR_UINT32(intval), SILC_STR_UINT8(charval), SILC_STR_UINT32(intval), SILC_STR_UINT16(str_len), SILC_STR_DATA(str, str_len), SILC_STR_END); if (ret < 0) error; // Free the allocated data silc_buffer_purge(&buffer); // Dynamically allocated zero size buffer SilcBuffer buf; buf = silc_buffer_alloc(0); ret = silc_buffer_format(buf, SILC_STR_UINT32(intval), SILC_STR_UINT8(charval), SILC_STR_END); if (ret < 0) error; // Free the allocated buffer silc_buffer_free(buf); // Dynamically allocated buffer with enough space SilcBuffer buf; buf = silc_buffer_alloc(2 + str_len); ret = silc_buffer_format(buf, SILC_STR_UINT16(str_len), SILC_STR_DATA(str, str_len), SILC_STR_END); if (ret < 0) error;