SYNOPSIS

#include <ixp.h>

void ixp_pstrings(IxpMsg *msg, uint16_t *num, char *strings[], uint max);

DESCRIPTION

Packs or unpacks an array of UTF-8 encoded strings. The packed representation consists of a 16-bit element count followed by an array of strings as packed by ixp_pstring(3). The unpacked representation is an array of nul-terminated character arrays.

If msg->mode is MsgPack, *num strings in the array pointed to by strings are packed into the buffer at msg->pos. If msg->mode is MsgUnpack, *num is loaded with the number of strings unpacked, the array at *strings is loaded with pointers to the unpacked strings, and (*strings)[0] must be freed by the user. In either case, msg->pos is advanced by the number of bytes read or written. If the action would advance msg->pos beyond msg->end, msg->pos is still advanced, but no other action is taken. If *num is greater than max, msg->pos is set beyond msg->end and no other action is taken.

RELATED TO ixp_pstrings…

IxpMsg, ixp_pstring, ixp_pdata