mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-28 11:43:50 +00:00
fix iv cache
This commit is contained in:
+17
-9
@@ -87,8 +87,10 @@ int cache_delete(struct cache *cache, int keep_data)
|
||||
} else {
|
||||
HASH_ITER(hh, cache->entries, entry, tmp){
|
||||
HASH_DEL(cache->entries, entry);
|
||||
if (cache->free_cb) {
|
||||
cache->free_cb(entry->data);
|
||||
if (entry->data != NULL) {
|
||||
if (cache->free_cb) {
|
||||
cache->free_cb(entry->data);
|
||||
}
|
||||
}
|
||||
free(entry->key);
|
||||
free(entry);
|
||||
@@ -125,8 +127,12 @@ int cache_remove(struct cache *cache, char *key, size_t key_len)
|
||||
|
||||
if (tmp) {
|
||||
HASH_DEL(cache->entries, tmp);
|
||||
if (cache->free_cb) {
|
||||
cache->free_cb(tmp->data);
|
||||
if (tmp->data != NULL) {
|
||||
if (cache->free_cb) {
|
||||
cache->free_cb(tmp->data);
|
||||
} else {
|
||||
free(tmp->data);
|
||||
}
|
||||
}
|
||||
free(tmp->key);
|
||||
free(tmp);
|
||||
@@ -217,7 +223,7 @@ int cache_insert(struct cache *cache, char *key, size_t key_len, void *data)
|
||||
struct cache_entry *entry = NULL;
|
||||
struct cache_entry *tmp_entry = NULL;
|
||||
|
||||
if (!cache || !data) {
|
||||
if (!cache) {
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
@@ -233,10 +239,12 @@ int cache_insert(struct cache *cache, char *key, size_t key_len, void *data)
|
||||
if (HASH_COUNT(cache->entries) >= cache->max_entries) {
|
||||
HASH_ITER(hh, cache->entries, entry, tmp_entry){
|
||||
HASH_DELETE(hh, cache->entries, entry);
|
||||
if (cache->free_cb) {
|
||||
cache->free_cb(entry->data);
|
||||
} else {
|
||||
free(entry->data);
|
||||
if (entry->data != NULL) {
|
||||
if (cache->free_cb) {
|
||||
cache->free_cb(entry->data);
|
||||
} else {
|
||||
free(entry->data);
|
||||
}
|
||||
}
|
||||
free(entry->key);
|
||||
free(entry);
|
||||
|
||||
Reference in New Issue
Block a user