From dd0d462afae75ff243f8cd1528963f9ad489706d Mon Sep 17 00:00:00 2001 From: Richard Nyberg Date: Fri, 24 Jun 2005 09:51:38 +0000 Subject: Import btpd-0.1. git-svn-id: file:///home/rnyberg/svngit/btpd/releases/0.1@1 76a1f634-46fa-0310-9943-bd1476092a85 --- misc/benc.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 misc/benc.h (limited to 'misc/benc.h') diff --git a/misc/benc.h b/misc/benc.h new file mode 100644 index 0000000..0cc3873 --- /dev/null +++ b/misc/benc.h @@ -0,0 +1,37 @@ +#ifndef BTPD_BENC_H +#define BTPD_BENC_H + +int benc_validate(const char *p, size_t len); + +size_t benc_length(const char *p); +size_t benc_nelems(const char *p); + +const char *benc_first(const char *p); +const char *benc_next(const char *p); + +int benc_str(const char *p, const char **mem, size_t *len, const char**next); +int benc_stra(const char *p, char **out, size_t *len, const char **next); +int benc_strz(const char *p, char **out, size_t *len, const char **next); +int benc_int64(const char *p, int64_t *out, const char **next); +int benc_uint32(const char *p, uint32_t *out, const char **next); + +#define benc_off benc_int64 + +int benc_dget_any(const char *p, const char *key, const char **val); +int benc_dget_lst(const char *p, const char *key, const char **val); +int benc_dget_dct(const char *p, const char *key, const char **val); +int benc_dget_str(const char *p, const char *key, + const char **val, size_t *len); +int benc_dget_stra(const char *p, const char *key, char **val, size_t *len); +int benc_dget_strz(const char *p, const char *key, char **val, size_t *len); +int benc_dget_int64(const char *p, const char *key, int64_t *val); +int benc_dget_uint32(const char *p, const char *key, uint32_t *val); + +#define benc_dget_off benc_dget_int64 + +int benc_islst(const char *p); +int benc_isdct(const char *p); +int benc_isint(const char *p); +int benc_isstr(const char *p); + +#endif -- cgit 1.4.1