projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
updates.
[silc.git]
/
lib
/
silccore
/
silcpayload.c
diff --git
a/lib/silccore/silcpayload.c
b/lib/silccore/silcpayload.c
index 1d6e99f08f579eeb50de3a3aa7e35a30ea33fd38..294ebac8356d6581dd9c4b160e338e926df417c3 100644
(file)
--- a/
lib/silccore/silcpayload.c
+++ b/
lib/silccore/silcpayload.c
@@
-80,40
+80,36
@@
SilcIDPayload silc_id_payload_parse_data(unsigned char *data,
uint32 len)
{
SilcIDPayload new;
uint32 len)
{
SilcIDPayload new;
- SilcBuffer buffer;
+ SilcBuffer
Struct
buffer;
int ret;
SILC_LOG_DEBUG(("Parsing ID payload"));
int ret;
SILC_LOG_DEBUG(("Parsing ID payload"));
- buffer = silc_buffer_alloc(len);
- silc_buffer_pull_tail(buffer, SILC_BUFFER_END(buffer));
- silc_buffer_put(buffer, data, len);
+ silc_buffer_set(&buffer, data, len);
new = silc_calloc(1, sizeof(*new));
new = silc_calloc(1, sizeof(*new));
- ret = silc_buffer_unformat(buffer,
+ ret = silc_buffer_unformat(
&
buffer,
SILC_STR_UI_SHORT(&new->type),
SILC_STR_UI_SHORT(&new->len),
SILC_STR_END);
if (ret == -1)
goto err;
SILC_STR_UI_SHORT(&new->type),
SILC_STR_UI_SHORT(&new->len),
SILC_STR_END);
if (ret == -1)
goto err;
- silc_buffer_pull(buffer, 4);
+ silc_buffer_pull(
&
buffer, 4);
- if (new->len > buffer
->
len)
+ if (new->len > buffer
.
len)
goto err;
goto err;
- ret = silc_buffer_unformat(buffer,
+ ret = silc_buffer_unformat(
&
buffer,
SILC_STR_UI_XNSTRING_ALLOC(&new->id, new->len),
SILC_STR_END);
if (ret == -1)
goto err;
SILC_STR_UI_XNSTRING_ALLOC(&new->id, new->len),
SILC_STR_END);
if (ret == -1)
goto err;
- silc_buffer_free(buffer);
return new;
err:
return new;
err:
- silc_buffer_free(buffer);
silc_free(new);
return NULL;
}
silc_free(new);
return NULL;
}
@@
-122,43
+118,38
@@
SilcIDPayload silc_id_payload_parse_data(unsigned char *data,
void *silc_id_payload_parse_id(unsigned char *data, uint32 len)
{
void *silc_id_payload_parse_id(unsigned char *data, uint32 len)
{
- SilcBuffer buffer;
+ SilcBuffer
Struct
buffer;
SilcIdType type;
uint16 idlen;
unsigned char *id_data = NULL;
int ret;
void *id;
SilcIdType type;
uint16 idlen;
unsigned char *id_data = NULL;
int ret;
void *id;
- buffer = silc_buffer_alloc(len);
- silc_buffer_pull_tail(buffer, SILC_BUFFER_END(buffer));
- silc_buffer_put(buffer, data, len);
+ silc_buffer_set(&buffer, data, len);
- ret = silc_buffer_unformat(buffer,
+ ret = silc_buffer_unformat(
&
buffer,
SILC_STR_UI_SHORT(&type),
SILC_STR_UI_SHORT(&idlen),
SILC_STR_END);
if (ret == -1)
goto err;
SILC_STR_UI_SHORT(&type),
SILC_STR_UI_SHORT(&idlen),
SILC_STR_END);
if (ret == -1)
goto err;
- silc_buffer_pull(buffer, 4);
+ silc_buffer_pull(
&
buffer, 4);
- if (idlen > buffer
->
len)
+ if (idlen > buffer
.
len)
goto err;
goto err;
- ret = silc_buffer_unformat(buffer,
+ ret = silc_buffer_unformat(
&
buffer,
SILC_STR_UI_XNSTRING_ALLOC(&id_data, idlen),
SILC_STR_END);
if (ret == -1)
goto err;
SILC_STR_UI_XNSTRING_ALLOC(&id_data, idlen),
SILC_STR_END);
if (ret == -1)
goto err;
- silc_buffer_free(buffer);
-
id = silc_id_str2id(id_data, idlen, type);
silc_free(id_data);
return id;
err:
id = silc_id_str2id(id_data, idlen, type);
silc_free(id_data);
return id;
err:
- silc_buffer_free(buffer);
return NULL;
}
return NULL;
}