summaryrefslogtreecommitdiff
path: root/event_tagging.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-07-20 14:55:35 +0000
committerNick Mathewson <nickm@torproject.org>2009-07-20 14:55:35 +0000
commite8400a43ca3f67e44e7593907353c6e5335c304e (patch)
tree5e5b0f616b62c3f9aedefcf1067a0ee81a2c8cc2 /event_tagging.c
parentdc031990e083bef785ec107271559ccc60705873 (diff)
downloadlibevent-e8400a43ca3f67e44e7593907353c6e5335c304e.tar.gz
Rename encode_int(64) to avoid polluting the global namespace.
They're now called evtag_encode_int(64). The old names are available as macros in event2/tag_compat.h. Also, add unit tests for encode/decode_int64. svn:r1365
Diffstat (limited to 'event_tagging.c')
-rw-r--r--event_tagging.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/event_tagging.c b/event_tagging.c
index c18b93f2..c5654d30 100644
--- a/event_tagging.c
+++ b/event_tagging.c
@@ -68,6 +68,7 @@
#include "util-internal.h"
int evtag_decode_int(ev_uint32_t *pnumber, struct evbuffer *evbuf);
+int evtag_decode_int64(ev_uint64_t *pnumber, struct evbuffer *evbuf);
int evtag_encode_tag(struct evbuffer *evbuf, ev_uint32_t tag);
int evtag_decode_tag(ev_uint32_t *ptag, struct evbuffer *evbuf);
@@ -123,7 +124,7 @@ encode_int64_internal(ev_uint8_t *data, ev_uint64_t number)
}
void
-encode_int(struct evbuffer *evbuf, ev_uint32_t number)
+evtag_encode_int(struct evbuffer *evbuf, ev_uint32_t number)
{
ev_uint8_t data[5];
int len = encode_int_internal(data, number);
@@ -131,7 +132,7 @@ encode_int(struct evbuffer *evbuf, ev_uint32_t number)
}
void
-encode_int64(struct evbuffer *evbuf, ev_uint64_t number)
+evtag_encode_int64(struct evbuffer *evbuf, ev_uint64_t number)
{
ev_uint8_t data[9];
int len = encode_int64_internal(data, number);
@@ -221,7 +222,7 @@ evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag,
const void *data, ev_uint32_t len)
{
evtag_encode_tag(evbuf, tag);
- encode_int(evbuf, len);
+ evtag_encode_int(evbuf, len);
evbuffer_add(evbuf, (void *)data, len);
}
@@ -230,7 +231,7 @@ evtag_marshal_buffer(struct evbuffer *evbuf, ev_uint32_t tag,
struct evbuffer *data)
{
evtag_encode_tag(evbuf, tag);
- encode_int(evbuf, evbuffer_get_length(data));
+ evtag_encode_int(evbuf, evbuffer_get_length(data));
evbuffer_add_buffer(evbuf, data);
}
@@ -242,7 +243,7 @@ evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag, ev_uint32_t integer)
int len = encode_int_internal(data, integer);
evtag_encode_tag(evbuf, tag);
- encode_int(evbuf, len);
+ evtag_encode_int(evbuf, len);
evbuffer_add(evbuf, data, len);
}
@@ -254,7 +255,7 @@ evtag_marshal_int64(struct evbuffer *evbuf, ev_uint32_t tag,
int len = encode_int64_internal(data, integer);
evtag_encode_tag(evbuf, tag);
- encode_int(evbuf, len);
+ evtag_encode_int(evbuf, len);
evbuffer_add(evbuf, data, len);
}
@@ -340,6 +341,16 @@ evtag_decode_int(ev_uint32_t *pnumber, struct evbuffer *evbuf)
}
int
+evtag_decode_int64(ev_uint64_t *pnumber, struct evbuffer *evbuf)
+{
+ int res = decode_int64_internal(pnumber, evbuf, 0);
+ if (res != -1)
+ evbuffer_drain(evbuf, res);
+
+ return (res == -1 ? -1 : 0);
+}
+
+int
evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag)
{
return (decode_tag_internal(ptag, evbuf, 0 /* dodrain */));