diff options
| author | Richard Nyberg <rnyberg@murmeldjur.se> | 2006-02-05 17:08:39 +0000 |
|---|---|---|
| committer | Richard Nyberg <rnyberg@murmeldjur.se> | 2006-02-05 17:08:39 +0000 |
| commit | 01c92051d5eda1c5fe44c7a84766afbd6774ff24 (patch) | |
| tree | fcf31e1029b3e0590393ca32ed03a21d0df262e9 /misc/benc.h | |
| parent | 6559fcb9a42e241979e845bb574bdf3b38e03b90 (diff) | |
| download | btpd-01c92051d5eda1c5fe44c7a84766afbd6774ff24.tar.gz btpd-01c92051d5eda1c5fe44c7a84766afbd6774ff24.zip | |
o Changed the benc_ api to make it easier to use.
o Lot of work on the cli and its communication with btpd.
Diffstat (limited to 'misc/benc.h')
| -rw-r--r-- | misc/benc.h | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/misc/benc.h b/misc/benc.h index 8088190..69c5f57 100644 --- a/misc/benc.h +++ b/misc/benc.h @@ -1,7 +1,21 @@ #ifndef BTPD_BENC_H #define BTPD_BENC_H +enum be_type { + BE_ANY, + BE_DCT, + BE_INT, + BE_LST, + BE_STR +}; + int benc_validate(const char *p, size_t len); +int benc_dct_chk(const char *p, int count, ...); + +int benc_islst(const char *p); +int benc_isdct(const char *p); +int benc_isint(const char *p); +int benc_isstr(const char *p); size_t benc_length(const char *p); size_t benc_nelems(const char *p); @@ -9,29 +23,17 @@ 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); +long long benc_int(const char *p, const char **next); +const char *benc_mem(const char *p, size_t *len, const char **next); +char *benc_mema(const char *p, size_t *len, const char **next); +char *benc_str(const char *p, size_t *len, const char **next); + +const char *benc_dget_any(const char *p, const char *key); +const char *benc_dget_lst(const char *p, const char *key); +const char *benc_dget_dct(const char *p, const char *key); +long long benc_dget_int(const char *p, const char *key); +const char *benc_dget_mem(const char *p, const char *key, size_t *len); +char *benc_dget_mema(const char *p, const char *key, size_t *len); +char *benc_dget_str(const char *p, const char *key, size_t *len); #endif |