updates.
[silc.git] / lib / silccore / silccommand.c
index e76ad180f69ee55fa415ef82d8f67edd9de47cd8..e85c72350ff9246daf77e2dea59dafca93848a1c 100644 (file)
@@ -255,6 +255,21 @@ silc_command_reply_payload_encode_va(SilcCommand cmd,
                                     uint32 argc, ...)
 {
   va_list ap;
+  SilcBuffer buffer;
+
+  va_start(ap, argc);
+  buffer = silc_command_reply_payload_encode_vap(cmd, status, ident, argc, ap);
+  va_end(ap);
+
+  return buffer;
+}
+
+SilcBuffer 
+silc_command_reply_payload_encode_vap(SilcCommand cmd, 
+                                     SilcCommandStatus status,
+                                     uint16 ident, uint32 argc, 
+                                     va_list ap)
+{
   unsigned char **argv;
   uint32 *argv_lens = NULL, *argv_types = NULL;
   unsigned char status_data[2];
@@ -264,8 +279,6 @@ silc_command_reply_payload_encode_va(SilcCommand cmd,
   SilcBuffer buffer;
   int i, k;
 
-  va_start(ap, argc);
-
   argc++;
   argv = silc_calloc(argc, sizeof(unsigned char *));
   argv_lens = silc_calloc(argc, sizeof(uint32));
@@ -301,8 +314,6 @@ silc_command_reply_payload_encode_va(SilcCommand cmd,
   silc_free(argv_lens);
   silc_free(argv_types);
 
-  va_end(ap);
-
   return buffer;
 }