Function silc_channel_name_check
SYNOPSIS
unsigned char *
silc_channel_name_check(const unsigned char *identifier,
SilcUInt32 identifier_len,
SilcStringEncoding identifier_encoding,
SilcUInt32 max_allowed_length,
SilcUInt32 *out_len);
DESCRIPTION
Checks that the 'identifier' string is valid channel name string
and does not contain any unassigned or prohibited character.
If the 'max_allowed_length' is non-zero the identifier cannot be
longer than that, and NULL is returned if it is. If zero (0), no
length limit exist. For channel names the max length must be 256
bytes.
Returns the validated string, that the caller must free. Returns
NULL if the identifier string is not valid or contain unassigned or
prohibited characters. Such identifier strings must not be used
SILC protocol. The returned string is always in UTF-8 encoding.
The length of the returned string is in 'out_len'.
NOTES
In addition of validating the channel name string, this function
may map characters to other characters or remove characters from the
original string. This is done as defined in the SILC protocol. Error
is returned only if the string contains unassigned or prohibited
characters. The original 'identifier' is not modified at any point.
|