X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcbuffmt.c;h=be83be57936443bcd2af45a64ffba06761f357a0;hb=a818c5b5411bbc4436d1c5f011236985c96bb787;hp=cc1a4ce238ab7f604d6750df0934305fabefc11c;hpb=e5d8d3db6caa344b3d419b884556c21b15e7d123;p=silc.git diff --git a/lib/silcutil/silcbuffmt.c b/lib/silcutil/silcbuffmt.c index cc1a4ce2..be83be57 100644 --- a/lib/silcutil/silcbuffmt.c +++ b/lib/silcutil/silcbuffmt.c @@ -79,7 +79,7 @@ int silc_buffer_format_vp(SilcBuffer dst, va_list ap) case SILC_BUFFER_PARAM_SI16_SHORT: { unsigned char xf[2]; - int16 x = (int16)va_arg(ap, int); + SilcInt16 x = (SilcInt16)va_arg(ap, int); HAS_SPACE(dst, 2); SILC_PUT16_MSB(x, xf); silc_buffer_put(dst, xf, 2); @@ -89,7 +89,7 @@ int silc_buffer_format_vp(SilcBuffer dst, va_list ap) case SILC_BUFFER_PARAM_UI16_SHORT: { unsigned char xf[2]; - uint16 x = (uint16)va_arg(ap, int); + SilcUInt16 x = (SilcUInt16)va_arg(ap, int); HAS_SPACE(dst, 2); SILC_PUT16_MSB(x, xf); silc_buffer_put(dst, xf, 2); @@ -99,7 +99,7 @@ int silc_buffer_format_vp(SilcBuffer dst, va_list ap) case SILC_BUFFER_PARAM_SI32_INT: { unsigned char xf[4]; - int32 x = va_arg(ap, int32); + SilcInt32 x = va_arg(ap, SilcInt32); HAS_SPACE(dst, 4); SILC_PUT32_MSB(x, xf); silc_buffer_put(dst, xf, 4); @@ -109,7 +109,7 @@ int silc_buffer_format_vp(SilcBuffer dst, va_list ap) case SILC_BUFFER_PARAM_UI32_INT: { unsigned char xf[4]; - uint32 x = va_arg(ap, uint32); + SilcUInt32 x = va_arg(ap, SilcUInt32); HAS_SPACE(dst, 4); SILC_PUT32_MSB(x, xf); silc_buffer_put(dst, xf, 4); @@ -119,7 +119,7 @@ int silc_buffer_format_vp(SilcBuffer dst, va_list ap) case SILC_BUFFER_PARAM_SI64_INT: { unsigned char xf[8]; - int64 x = va_arg(ap, int64); + SilcInt64 x = va_arg(ap, SilcInt64); HAS_SPACE(dst, 8); SILC_PUT64_MSB(x, xf); silc_buffer_put(dst, xf, 8); @@ -129,34 +129,38 @@ int silc_buffer_format_vp(SilcBuffer dst, va_list ap) case SILC_BUFFER_PARAM_UI64_INT: { unsigned char xf[8]; - uint64 x = va_arg(ap, uint64); + SilcUInt64 x = va_arg(ap, SilcUInt64); HAS_SPACE(dst, 8); SILC_PUT64_MSB(x, xf); silc_buffer_put(dst, xf, 8); silc_buffer_pull(dst, 8); break; } + case SILC_BUFFER_PARAM_UI8_STRING: case SILC_BUFFER_PARAM_UI16_STRING: case SILC_BUFFER_PARAM_UI32_STRING: + case SILC_BUFFER_PARAM_UI8_STRING_ALLOC: case SILC_BUFFER_PARAM_UI16_STRING_ALLOC: case SILC_BUFFER_PARAM_UI32_STRING_ALLOC: { unsigned char *x = va_arg(ap, unsigned char *); - uint32 tmp_len = strlen(x); + SilcUInt32 tmp_len = strlen(x); HAS_SPACE(dst, tmp_len); silc_buffer_put(dst, x, tmp_len); silc_buffer_pull(dst, tmp_len); break; } + case SILC_BUFFER_PARAM_UI8_NSTRING: case SILC_BUFFER_PARAM_UI16_NSTRING: case SILC_BUFFER_PARAM_UI32_NSTRING: case SILC_BUFFER_PARAM_UI_XNSTRING: + case SILC_BUFFER_PARAM_UI8_NSTRING_ALLOC: case SILC_BUFFER_PARAM_UI16_NSTRING_ALLOC: case SILC_BUFFER_PARAM_UI32_NSTRING_ALLOC: case SILC_BUFFER_PARAM_UI_XNSTRING_ALLOC: { unsigned char *x = va_arg(ap, unsigned char *); - uint32 len = va_arg(ap, uint32); + SilcUInt32 len = va_arg(ap, SilcUInt32); HAS_SPACE(dst, len); silc_buffer_put(dst, x, len); silc_buffer_pull(dst, len); @@ -232,7 +236,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_SI16_SHORT: { - int16 *x = va_arg(ap, int16 *); + SilcInt16 *x = va_arg(ap, SilcInt16 *); HAS_SPACE(src, 2); if (x) SILC_GET16_MSB(*x, src->data); @@ -241,7 +245,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_UI16_SHORT: { - uint16 *x = va_arg(ap, uint16 *); + SilcUInt16 *x = va_arg(ap, SilcUInt16 *); HAS_SPACE(src, 2); if (x) SILC_GET16_MSB(*x, src->data); @@ -250,7 +254,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_SI32_INT: { - int32 *x = va_arg(ap, int32 *); + SilcInt32 *x = va_arg(ap, SilcInt32 *); HAS_SPACE(src, 4); if (x) SILC_GET32_MSB(*x, src->data); @@ -259,7 +263,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_UI32_INT: { - uint32 *x = va_arg(ap, uint32 *); + SilcUInt32 *x = va_arg(ap, SilcUInt32 *); HAS_SPACE(src, 4); if (x) SILC_GET32_MSB(*x, src->data); @@ -268,7 +272,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_SI64_INT: { - int64 *x = va_arg(ap, int64 *); + SilcInt64 *x = va_arg(ap, SilcInt64 *); HAS_SPACE(src, 8); if (x) SILC_GET64_MSB(*x, src->data); @@ -277,16 +281,29 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_UI64_INT: { - uint64 *x = va_arg(ap, uint64 *); + SilcUInt64 *x = va_arg(ap, SilcUInt64 *); HAS_SPACE(src, 8); if (x) SILC_GET64_MSB(*x, src->data); silc_buffer_pull(src, 8); break; } + case SILC_BUFFER_PARAM_UI8_STRING: + { + SilcUInt8 len2; + unsigned char **x = va_arg(ap, unsigned char **); + HAS_SPACE(src, 1); + len2 = (SilcUInt8)src->data[0]; + silc_buffer_pull(src, 1); + HAS_SPACE(src, len2); + if (x) + *x = src->data; + silc_buffer_pull(src, len2); + break; + } case SILC_BUFFER_PARAM_UI16_STRING: { - uint16 len2; + SilcUInt16 len2; unsigned char **x = va_arg(ap, unsigned char **); HAS_SPACE(src, 2); SILC_GET16_MSB(len2, src->data); @@ -297,9 +314,24 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) silc_buffer_pull(src, len2); break; } + case SILC_BUFFER_PARAM_UI8_STRING_ALLOC: + { + SilcUInt8 len2; + unsigned char **x = va_arg(ap, unsigned char **); + HAS_SPACE(src, 1); + len2 = (SilcUInt8)src->data[0]; + silc_buffer_pull(src, 1); + HAS_SPACE(src, len2); + if (x && len2) { + *x = silc_calloc(len2 + 1, sizeof(unsigned char)); + memcpy(*x, src->data, len2); + } + silc_buffer_pull(src, len2); + break; + } case SILC_BUFFER_PARAM_UI16_STRING_ALLOC: { - uint16 len2; + SilcUInt16 len2; unsigned char **x = va_arg(ap, unsigned char **); HAS_SPACE(src, 2); SILC_GET16_MSB(len2, src->data); @@ -314,7 +346,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_UI32_STRING: { - uint32 len2; + SilcUInt32 len2; unsigned char **x = va_arg(ap, unsigned char **); HAS_SPACE(src, 4); SILC_GET32_MSB(len2, src->data); @@ -327,7 +359,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_UI32_STRING_ALLOC: { - uint32 len2; + SilcUInt32 len2; unsigned char **x = va_arg(ap, unsigned char **); HAS_SPACE(src, 4); SILC_GET32_MSB(len2, src->data); @@ -340,11 +372,27 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) silc_buffer_pull(src, len2); break; } + case SILC_BUFFER_PARAM_UI8_NSTRING: + { + SilcUInt8 len2; + unsigned char **x = va_arg(ap, unsigned char **); + SilcUInt8 *len = va_arg(ap, SilcUInt8 *); + HAS_SPACE(src, 1); + len2 = (SilcUInt8)src->data[0]; + silc_buffer_pull(src, 1); + HAS_SPACE(src, len2); + if (len) + *len = len2; + if (x) + *x = src->data; + silc_buffer_pull(src, len2); + break; + } case SILC_BUFFER_PARAM_UI16_NSTRING: { - uint16 len2; + SilcUInt16 len2; unsigned char **x = va_arg(ap, unsigned char **); - uint16 *len = va_arg(ap, unsigned short *); + SilcUInt16 *len = va_arg(ap, SilcUInt16 *); HAS_SPACE(src, 2); SILC_GET16_MSB(len2, src->data); silc_buffer_pull(src, 2); @@ -356,11 +404,29 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) silc_buffer_pull(src, len2); break; } + case SILC_BUFFER_PARAM_UI8_NSTRING_ALLOC: + { + SilcUInt8 len2; + unsigned char **x = va_arg(ap, unsigned char **); + SilcUInt8 *len = va_arg(ap, SilcUInt8 *); + HAS_SPACE(src, 1); + len2 = (SilcUInt8)src->data[0]; + silc_buffer_pull(src, 1); + HAS_SPACE(src, len2); + if (len) + *len = len2; + if (x && len2) { + *x = silc_calloc(len2 + 1, sizeof(unsigned char)); + memcpy(*x, src->data, len2); + } + silc_buffer_pull(src, len2); + break; + } case SILC_BUFFER_PARAM_UI16_NSTRING_ALLOC: { - uint16 len2; + SilcUInt16 len2; unsigned char **x = va_arg(ap, unsigned char **); - uint16 *len = va_arg(ap, uint16 *); + SilcUInt16 *len = va_arg(ap, SilcUInt16 *); HAS_SPACE(src, 2); SILC_GET16_MSB(len2, src->data); silc_buffer_pull(src, 2); @@ -376,9 +442,9 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) } case SILC_BUFFER_PARAM_UI32_NSTRING: { - uint32 len2; + SilcUInt32 len2; unsigned char **x = va_arg(ap, unsigned char **); - uint32 *len = va_arg(ap, uint32 *); + SilcUInt32 *len = va_arg(ap, SilcUInt32 *); HAS_SPACE(src, 4); SILC_GET32_MSB(len2, src->data); silc_buffer_pull(src, 4); @@ -393,7 +459,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) case SILC_BUFFER_PARAM_UI_XNSTRING: { unsigned char **x = va_arg(ap, unsigned char **); - uint32 len = va_arg(ap, uint32); + SilcUInt32 len = va_arg(ap, SilcUInt32); HAS_SPACE(src, len); if (len && x) *x = src->data; @@ -403,7 +469,7 @@ int silc_buffer_unformat_vp(SilcBuffer src, va_list ap) case SILC_BUFFER_PARAM_UI_XNSTRING_ALLOC: { unsigned char **x = va_arg(ap, unsigned char **); - uint32 len = va_arg(ap, uint32); + SilcUInt32 len = va_arg(ap, SilcUInt32); HAS_SPACE(src, len); if (len && x) { *x = silc_calloc(len + 1, sizeof(unsigned char));