+/* Encode one argument to buffer */
+
+SilcBuffer silc_argument_payload_encode_one(SilcBuffer args,
+ unsigned char *arg,
+ SilcUInt32 arg_len,
+ SilcUInt32 arg_type)
+{
+ SilcBuffer buffer = args;
+ int len;
+
+ len = 3 + arg_len;
+ buffer = silc_buffer_realloc(buffer,
+ (buffer ? buffer->truelen + len : len));
+ if (!buffer)
+ return NULL;
+ silc_buffer_pull(buffer, buffer->len);
+ silc_buffer_pull_tail(buffer, len);
+ silc_buffer_format(buffer,
+ SILC_STR_UI_SHORT(arg_len),
+ SILC_STR_UI_CHAR(arg_type),
+ SILC_STR_UI_XNSTRING(arg, arg_len),
+ SILC_STR_END);
+ silc_buffer_push(buffer, buffer->data - buffer->head);
+
+ return buffer;
+}
+