Skip to content

Commit

Permalink
bdecoder
Browse files Browse the repository at this point in the history
  • Loading branch information
ghazel committed Feb 17, 2018
1 parent 267fce9 commit b856c94
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions dht.c
Original file line number Diff line number Diff line change
Expand Up @@ -2843,7 +2843,8 @@ send_error(const struct sockaddr *sa, int salen,
#undef COPY
#undef ADD_V

long bdecode_int(const unsigned char *str, size_t len, const unsigned char **endptr)
static long
bdecode_int(const unsigned char *str, size_t len, const unsigned char **endptr)
{
long sign = 1;
long value = 0;
Expand All @@ -2861,7 +2862,8 @@ long bdecode_int(const unsigned char *str, size_t len, const unsigned char **end
return sign * value;
}

const unsigned char* bdecode_string(const unsigned char *s, size_t len, size_t *outlen)
static const unsigned char*
bdecode_string(const unsigned char *s, size_t len, size_t *outlen)
{
const unsigned char *e = s + len;
long slen = bdecode_int(s, e - s, &s);
Expand All @@ -2874,7 +2876,8 @@ const unsigned char* bdecode_string(const unsigned char *s, size_t len, size_t *
#define B_ITER(s, e) while(s && s < e && *s != 'e')
#define STR_EQ(s, sl, d, dl) (sl == dl && !strncmp((char*)s, (char*)d, sl))

const unsigned char* bdecode_iter(const unsigned char *s, const unsigned char *e, int depth)
static const unsigned char*
bdecode_iter(const unsigned char *s, const unsigned char *e, int depth)
{
switch(*s) {
case 'i': {
Expand Down Expand Up @@ -2907,7 +2910,8 @@ const unsigned char* bdecode_iter(const unsigned char *s, const unsigned char *e
return (!s || *s != 'e' || s + 1 >= e) ? NULL : s + 1;
}

const unsigned char* bdecode_find_key(const unsigned char *s, size_t len, const char *skey)
static const unsigned char*
bdecode_find_key(const unsigned char *s, size_t len, const char *skey)
{
const unsigned char *e = s + len;
if(s >= e || *s != 'd') {
Expand All @@ -2927,7 +2931,8 @@ const unsigned char* bdecode_find_key(const unsigned char *s, size_t len, const
return NULL;
}

int bdecode_string_for_key_matches(const unsigned char *s, size_t len, const char *key, const char *value)
static int
bdecode_string_for_key_matches(const unsigned char *s, size_t len, const char *key, const char *value)
{
const unsigned char *p = bdecode_find_key(s, len, key);
if(!p)
Expand All @@ -2937,13 +2942,15 @@ int bdecode_string_for_key_matches(const unsigned char *s, size_t len, const cha
return STR_EQ(p, outlen, value, strlen(value));
}

const unsigned char* bdecode_string_for_key(const unsigned char *s, size_t len, const char *search, size_t *outlen)
static const unsigned char*
bdecode_string_for_key(const unsigned char *s, size_t len, const char *search, size_t *outlen)
{
const unsigned char *p = bdecode_find_key(s, len, search);
return p ? bdecode_string(p, len - (p - s), outlen) : NULL;
}

long bdecode_int_for_key(const unsigned char *s, size_t len, const char *search, int *success)
static long
bdecode_int_for_key(const unsigned char *s, size_t len, const char *search, int *success)
{
const unsigned char *p = bdecode_find_key(s, len, search);
*success = 0;
Expand Down

0 comments on commit b856c94

Please sign in to comment.