|
|
|
@ -234,6 +234,11 @@ static inline char *bencode_dictionary_get_string(bencode_item_t *dict, const ch |
|
|
|
* may be NULL. */ |
|
|
|
static inline char *bencode_dictionary_get_str(bencode_item_t *dict, const char *key, str *str); |
|
|
|
|
|
|
|
/* Looks up the given key in the dictionary and compares the corresponding value to the given |
|
|
|
* null-terminated string. Returns 2 if the key isn't found or if the value isn't a string, otherwise |
|
|
|
* returns according to strcmp(). */ |
|
|
|
static inline int bencode_dictionary_get_strcmp(bencode_item_t *dict, const char *key, const char *str); |
|
|
|
|
|
|
|
/* Identical to bencode_dictionary_get() but returns the string in a newly allocated buffer (using the |
|
|
|
* BENCODE_MALLOC function), which remains valid even after bencode_buffer_t is destroyed. */ |
|
|
|
static inline char *bencode_dictionary_get_string_dup(bencode_item_t *dict, const char *key, int *len); |
|
|
|
@ -375,5 +380,12 @@ static inline int bencode_strcmp(bencode_item_t *a, const char *b) { |
|
|
|
return 1; |
|
|
|
return memcmp(a->iov[1].iov_base, b, len); |
|
|
|
} |
|
|
|
static inline int bencode_dictionary_get_strcmp(bencode_item_t *dict, const char *key, const char *str) { |
|
|
|
bencode_item_t *i; |
|
|
|
i = bencode_dictionary_get(dict, key); |
|
|
|
if (!i) |
|
|
|
return 2; |
|
|
|
return bencode_strcmp(i, str); |
|
|
|
} |
|
|
|
|
|
|
|
#endif |