X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilccore%2Fsilccommand.c;h=e76ad180f69ee55fa415ef82d8f67edd9de47cd8;hp=6722761a40f206213a2063a9d8d35175fcbbbc07;hb=e5d8d3db6caa344b3d419b884556c21b15e7d123;hpb=3c736833b33f77e7b553f4220a71d59e98e30842 diff --git a/lib/silccore/silccommand.c b/lib/silccore/silccommand.c index 6722761a..e76ad180 100644 --- a/lib/silccore/silccommand.c +++ b/lib/silccore/silccommand.c @@ -189,44 +189,10 @@ SilcBuffer silc_command_payload_encode_va(SilcCommand cmd, uint32 argc, ...) { va_list ap; - unsigned char **argv; - uint32 *argv_lens = NULL, *argv_types = NULL; - unsigned char *x; - uint32 x_len; - uint32 x_type; SilcBuffer buffer; - int i, k; va_start(ap, argc); - - argv = silc_calloc(argc, sizeof(unsigned char *)); - argv_lens = silc_calloc(argc, sizeof(uint32)); - argv_types = silc_calloc(argc, sizeof(uint32)); - - for (i = 0, k = 0; i < argc; i++) { - x_type = va_arg(ap, uint32); - x = va_arg(ap, unsigned char *); - x_len = va_arg(ap, uint32); - - if (!x_type || !x || !x_len) - continue; - - argv[k] = silc_calloc(x_len + 1, sizeof(unsigned char)); - memcpy(argv[k], x, x_len); - argv_lens[k] = x_len; - argv_types[k] = x_type; - k++; - } - - buffer = silc_command_payload_encode(cmd, k, argv, argv_lens, - argv_types, ident); - - for (i = 0; i < k; i++) - silc_free(argv[i]); - silc_free(argv); - silc_free(argv_lens); - silc_free(argv_types); - + buffer = silc_command_payload_encode_vap(cmd, ident, argc, ap); va_end(ap); return buffer;